AIOps 一场颠覆传统运维的盛筵
1071
2022-10-03
k8s系列-11-基于kubespary的集群运维
集群节点类型
PS:需要注意的是,不管新增还是修改,都别忘记修改hosts,下面每一步都需要修改该配置,就不单独写了,如下哈。
[root@node1 kubespray-2.18.0]# vim inventory/mycluster/hosts.yamlall: hosts: node1: ansible_host: 192.168.112.130 ip: 192.168.112.130 access_ip: 192.168.112.130 node2: ansible_host: 192.168.112.131 ip: 192.168.112.131 access_ip: 192.168.112.131 node3: ansible_host: 192.168.112.132 ip: 192.168.112.132 access_ip: 192.168.112.132
Master节点
1、增加一个master节点:
# 编辑host文件,需要在最开始安装的目录下尽心修改[root@node1 kubespray-2.18.0]# pwd/root/jier/kubespray-2.18.0[root@node1 kubespray-2.18.0]# vim inventory/mycluster/hosts.yaml # 新增节点写到下面即可,例如新增node4,就在node2下面写node4即可 kube_control_plane: hosts: node1: node2:# 执行[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml cluster.yml -b -v# 重启[root@node1 kubespray-2.18.0]# crictl ps | grep -E "nginx|proxy"| awk '{print $1}' | xargs crictl restart
2、删除master节点
2.1 如果你删除的master节点是配置文件中的第一个节点,需要将配置下移,再重新运行一下cluster.yml,保持和2.2的状态一致,再操作,举例如下:
[root@node1 kubespray-2.18.0]# vim inventory/mycluster/hosts.yaml # 原状态 children: kube_control_plane: hosts: node1: node2: node3:# 需要改成下面的样子 children: kube_control_plane: hosts: node2: node3: node1:# 生效[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml -b cluster.yml
2.2 删除的master不是配置文件中的第一个节点,这种情况下不要直接修改配置文件,应该先使用命令删除节点之后,再修改配置文件:
# 比如移除master节点之node1[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml remove-node.yml -b -v -e "node=node1"# 修改配置文件,和现有集群保持一致[root@node1 kubespray-2.18.0]# vim inventory/mycluster/hosts.yaml # 原配置文件 children: kube_control_plane: hosts: node2: node3: node1:# 需要改成 children: kube_control_plane: hosts: node2: node3:[root@node1 kubespray-2.18.0]#
Worker节点
1、增加worker节点
# 刷新缓存[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml facts.yml -b -v# 编辑配置文件[root@node1 kubespray-2.18.0]# vim inventory/mycluster/hosts.yaml # 原配置 kube_node: hosts: node1: node2: node3:# 需要改成 kube_node: hosts: node1: node2: node3: node4:# 生效[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml scale.yml --limit=node4 -b -v
2、删除worker节点
# 下线worker节点,且会清理该节点上的所有容器,如果是多个节点,以逗号分割开就行[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml remove-node.yml -b -v -e "node=node1,node2,..."# 修改配置文件进行下线[root@node1 kubespray-2.18.0]# vim inventory/mycluster/hosts.yaml # 原配置 kube_node: hosts: node1: node2: node3:# 需要改成 kube_node: hosts: node1: node2: [root@node1 kubespray-2.18.0]#
Etcd节点
PS:如果要变更的etcd节点同时也是master或worker节点,需要先将master或者worker节点按照咱们前面写的步骤操作下线,保留纯粹的etcd节点。
1、增加etcd节点
# 编辑配置[root@node1 kubespray-2.18.0]# vim inventory/mycluster/hosts.yaml # 原配置 etcd: hosts: node1: node2: node3:# 修改成 etcd: hosts: node1: node2: node3: node4:# 更新[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml upgrade-cluster.yml --limit=etcd,kube_control_plane -e ignore_assert_errors=yes -e etcd_retries=10
2、删除etcd节点
# 下线[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml remove-node.yml -b -v -e "node=NODE-NAME"# 编辑配置[root@node1 kubespray-2.18.0]# vim inventory/mycluster/hosts.yaml# 重新生成配置[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml -b cluster.yml
其他
1、集群重置
# 清理集群[root@node1 kubespray-2.18.0]# ansible-playbook -i inventory/mycluster/hosts.yaml -b -v reset.yml
2、自定义起始点
# 当我们执行ansible-playbook的时候,如果中途有问题# 我们需要重新执行,如果重头来,太慢了,这个时候我们可以指定从哪儿开始# 通过--start-at-task指定从哪个task处开始执行[root@node1 kubespray-2.18.0]# ansible-playbook --start-at-task="reset | gather mounted kubelet dirs"
至此,本文结束。
下面我们将写一下如何使用二进制的方式,部署kubernetes,使用二进制比较困难和繁琐,但是学习嘛~~~有长进。
往期推荐k8s系列-09-一键部署k8s集群之kubespary必备技能之python正则表达式(二)14-docker系列-docker之harbor仓库的使用
发表评论
暂时没有评论,来抢沙发吧~