使用kubeadm部署一套高可用k8s集群 for CentOS
基于 centos 使用 kubeadm 搭建集群, ubuntu部署文档, 有疑问的地方可以看 官方文档 准备机器 我的机器详情如下, 配置至少为 4C4G hostname IP 作用 public 10.0.0.3 ingress 和 apiserver 的负载均衡,nfs 存储 master1 10.0.0.11 k8s master 节点 master2 10.0.0.12 k8s master 节点 master3 10.0.0.13 k8s master 节点 worker1 10.0.0.21 k8s worker 节点 worker2 10.0.0.22 k8s worker 节点 每台机器都做域名解析,或者绑定 hosts(可选但建议) 123456vim /etc/hosts10.0.0.3 public kube-apiserver10.0.0.11 master110.0.0.12 master210.0.0.13 master3 每台机器都关闭防火墙和 SELinux 负载均衡机器必须要关闭,因为...
配置树莓派关机时正常停转移动硬盘
将闲置的树莓派做个共享服务器,在家里面存一些文件用。将树莓派和移动硬盘盒都已经改装好了,固定在了一起,用一块 12864 来显示一些信息,比如磁盘空间占用等。 树莓派 3B+ 的千兆网口和 usb 接口相当于是一个 usb2.0 hub 分出来的, 速度根本达不到千兆,还抢占 usb 的带宽。实测速度 20M/s 左右(硬盘速度能跑到 100M/s) 遇到的问题每次关机或者重启的时候,都会遇到硬盘吱~的一声,这种情况是操作系统关机的时候没有通知硬盘磁头归位直接断电, 这样硬盘会自己将磁头归位,就会有声音。时间久了对机械硬盘是一种损伤。 参考http://www.linux-ata.org/shutdown.html 解决方案查找硬盘启停配置在 linux 系统里面,一切皆文件,硬盘的各种信息也不列外。我们可以到 /sys/class/scsi_disk/ 找自己的硬盘,可以通过查看硬盘的型号来确定 1cat /sys/class/scsi_disk/0:0:0:0/device/model 文件 manage_start_stop...
Kubernetes集群调度之节点亲和性、Pod亲和性、污点与容忍
调度器Scheduler 是 Kubernetes 的调度器,主要的任务是把定义的 pod 分配到集群的节点上。听起来非常简单,但有很多要考虑的问题: 公平:如何保证每个节点都能被分配资源 资源高效利用:集群所有资源最大化被使用 效率:调度的性能要好,能够尽快地对大批量的 pod 完成调度工作 灵活:允许用户根据自己的需求控制调度的逻辑 k Scheduler 是作为单独的程序运行的,启动之后会一直监听 API Server,获取 PodSpec.NodeName 为空的 pod,对每个 pod 都会创建一个 binding(必须遵守的),表明该 pod 应该放到哪个节点上 调度过程调度分为几个步骤: 首先是过滤掉不满足条件的节点,这个过程称为 predicate(预选); 然后对通过的节点按照优先级排序,这个是 priority(优选); 最后从中选择优先级最高的节点。 Predicate(预选)有一系列的算法可以使用: 算法 说明 PodFitsResources 节点上剩余的资源是否大于 pod 请求的资源 PodFitsHost 如果 pod...
使用acme.sh来自动更新https证书
使用 acme.sh 可以自动申请 let’s encrypt 证书,并且可以自动配置到 nginx,整个过程可以全自动。也可以使用 certbot,certbot 基于 acme.sh使用certbot自动申请ssl证书 安装推荐安装 socat 1sudo apt install socat 安装 acme.sh 1curl https://get.acme.sh | sh 退出终端,重新登陆后,执行 acme.sh 有输出,说明安装成功了。 配置邮箱1acme.sh --register-account -m "iuxt@qq.com" 配置默认 CA新版默认 zerossl,也可以手动切换为 let’s encrypt 12# acme.sh --set-default-ca --server letsencrypt# acme.sh --set-default-ca --server zerossl 申请证书acme.sh 实现了 acme 协议支持的所有验证协议.一般有两种方式验证: http 和 dns 验证. 使用 dns api...
MySQL主从同步配置
主从同步可以相当于实时备份,读写分离还能提高数据库的性能,记录一下主从同步的配置 不停机增加从库可以查看 优雅地给正在运行的MySQL添加从库 一.准备 主从数据库版本最好一致 保证数据库的 uuid 不一致 服务器 ip 地址 MySQL Master 192.168.21.53 MySQL Slave 192.168.21.54 二.操作主数据库操作开启 binlog123[mysqld]log_bin=mysql-binserver-id=1 这里注意 server-id 主从不能一样, 配置完成重启 mysql 创建用于同步的用户账号登陆数据库 1mysql -hlocalhost -uroot -ppassword 创建用户并授权 1CREATE USER 'repl'@'%' IDENTIFIED BY 'A4MyDNdzpHvg5M02KRtm'; 授权 12GRANT REPLICATION SLAVE ON *.* TO...
Docker容器间优雅的互联
本文主要介绍如何优雅的让 Docker 容器和 Docker 容器之间相互通信,以及 Docker 容器如何和宿主机进行网络通信。 容器间网络通信docker 容器间通信常见的方式是使用 –link 进行连接,但是 Docker 已经弃用这种方式,并且容器数量一旦一多,–link 会显得很乱。官方推荐使用自定义网络来进行互联。 创建自定义网络1docker network create my-network 创建容器使用自定义 network比如一个 nginx 容器需要访问 php 容器 12docker run -p 80:80 --network my-network nginxdocker run --name php --network my-network php 这个时候 nginx 可以直接通过 php 来访问 php 容器,打开/etc/hosts 可以发现是 docker 自动帮你添加了解析 容器访问主机服务可以使用容器的网关 IP 来访问(nat 网络),不过使用 ip 不优雅,旧版本的 Docker 可以使用...
Elasticsearch常用API操作
如果有 Kibana 的话,以下所有操作都可以在 Kibana 的 DevTools 页面进行调试,可以免去认证操作。 接口 功能 /_cat/health?v 集群健康状态 /_cat/shards 分片信息 /_cat/nodes 节点信息 /_cat/indices 索引信息 /_cat/allocation?v 磁盘占用 /索引名字/_mapping?pretty 查看 mapping(索引字段类型等) ?v 是详细信息输出 索引12345678# 查看有哪些索引curl -u elastic:password localhost:9200/_cat/indices# 创建索引curl -u elastic:password -X PUT "localhost:9200/索引名字?pretty"# 删除索引curl -u elastic:password -s -XDELETE...
MySQL常用操作记录
记录一下日常工作中常用到的 MySQL 语句和一些配置等,方便日后查询 用户授权相关创建用户123-- CREATE USER 'root'@'%' IDENTIFIED BY '123456';CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 修改密码123-- ALTER USER 'root'@'%' IDENTIFIED BY '123456';ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; 授权1Grant all privileges on *.* to 'root'@'%' with...
Kubernetes使用ingress反向代理外部IP
我们平常使用 k8s 的 service 都是自动发现增加 endpoint 的,但是有的时候集群外的服务我们又想用 k8s 的 ingress 来统一做入口,就会涉及到自定义 endpoint 创建 service123456789101112apiVersion: v1kind: Servicemetadata: name: kibana namespace: opsspec: type: ClusterIP ports: - name: kibana port: 80 protocol: TCP targetPort: 80 创建 endpoint12345678910111213apiVersion: v1kind: Endpointsmetadata: name: kibana namespace: opssubsets:- addresses: - ip: 10.0.0.12 - ip: 10.0.0.13 ports: - name: kibana port: 5601 protocol: TCP 创建...
Kafka常用操作记录
经常用到的 Kafka 命令记录以下,方便查找。kafka 的搭建可以参考这篇文章 Kafka和zookeeper搭建 注意: –bootstrap-server 参数配置的 kafka 地址需要根据 kafka 监听地址来判断, 如果监听的是自己的 ip 而不是 0.0.0.0, 那就不要配置 localhost, 改用 ip 地址. Topic 操作123456789101112131415161718# 创建topicbin/kafka-topics.sh --bootstrap-server localhost:9092 --create --replication-factor 1 --partitions 3 --topic test_topic# 查看topic具体信息bin/kafka-topics.sh --bootstrap-server localhost:9092 --describe --topic test_topic# 查看所有的topic列表bin/kafka-topics.sh --bootstrap-server...