k8s-kubeasz项目后期添加节点及k8s版本升级

kubeasz后期添加master、node节点

添加master节点

https://github.com/easzlab/kubeasz/blob/master/docs/op/op-master.md

新增kube-master节点大致流程为:tools/03.addmaster.yml
[可选]新节点安装 chrony 时间同步
新节点预处理 prepare
新节点安装 docker 服务
新节点安装 kube-master 服务
新节点安装 kube-node 服务
新节点安装网络插件相关
禁止业务 pod调度到新master节点
更新 node 节点 haproxy 负载均衡并重启

首先配置 ssh 免密码登录新增节点

需要在有ansible的master节点执行:
1、easzctl add-master 192.168.3.143    #添加master;del-master,删除master

添加node节点

需要在有ansible的master节点执行:
1、easzctl add-node 192.168.3.146      #del-node,删除node

升级k8s集群

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.17.md#downloads-for-v1174 #k8s-1.17.4下载地址

https://github.com/easzlab/kubeasz/blob/master/docs/op/upgrade.md #升级k8s集群

升级k8s集群时,不要跳大版本升级,如1.17版本,不要直接升级到1.18,每个大版本的配置参数都可能会不一致;可以升级1.17的小版本

需要在有ansible的master节点执行:
1、cd /usr/local/src

2、ll               #需要有这4个包
kubernetes-client-linux-amd64.tar.gz
kubernetes-node-linux-amd64.tar.gz
kubernetes-server-linux-amd64.tar.gz
kubernetes.tar.gz

3、tar xf kubernetes-server-linux-amd64.tar.gz

4、mkdir /opt/k8s-1.17.{2,4}

5、cd /etc/ansible/bin/

6、cp kubectl kube-apiserver kube-proxy kube-controller-manager kubelet kube-scheduler /opt/k8s-1.17.2/
#将原有二进制文件拷贝到指定目录下,做备份,当升级错误时,还可以做恢复

7、cd /usr/local/src/kubernetes/server/bin

8、cp kubectl kube-apiserver kube-proxy kube-controller-manager kubelet kube-scheduler /opt/k8s-1.17.4/
#备份当前版本

9、cd /opt/k8s-1.17.4

10、cp ./* /etc/ansible/bin/     #替换旧版本二进制程序

11、easzctl upgrade              #升级集群,此升级不会中断业务应用

12、kubectl get node             #查看是否升级成功

注意事项

如果手动执行替换二进制程序的方式进行集群升级,则需要先把服务停掉(master 5个服务,node 2个服务),如果不停服务,二进制程序是无法被替换的,因为当前进程正在加载这些二进制程序
原文地址:https://www.cnblogs.com/dongzhanyi123/p/13330207.html