k8s系列-11-基于kubespary的集群运维

网友投稿 1071 2022-10-03

本站部分文章、图片属于网络上可搜索到的公开信息,均用于学习和交流用途,不能代表睿象云的观点、立场或意见。我们接受网民的监督,如发现任何违法内容或侵犯了您的权益,请第一时间联系小编邮箱jiasou666@gmail.com 处理。

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仓库的使用

上一篇:为什么要搞数据库运维平台,附带招聘信息
下一篇:实践中的微服务:从架构到自动化运维(上)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~