其他分享
首页 > 其他分享> > 二进制部署K8s集群第24节平滑切换版本技巧

二进制部署K8s集群第24节平滑切换版本技巧

作者:互联网

一、K8s平滑切换版本技巧

1.1 升级方法

二进制部署K8s集群第23节addons之安装部署dashboard

1 一台服务器操作完成切换,再操作第二台、第三台...

2、删除一台node节点

3、关闭升级机器负载匀衡

4、删除老版本软链接,新版本做软链接

5、拷贝老版本重启脚本证书到新软版本软件目录

6、重启kubelet、kube-scheduler、kube-apiserver、kube-proxy、kube-controller-manager

1.2 删除Node节点

hdss7-21执行

[root@hdss7-21 opt]# kubectl get nodes -o wide
NAME                STATUS   ROLES    AGE    VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION           CONTAINER-RUNTIME
hdss7-21.host.com   Ready    <none>   3d7h   v1.19.2   10.4.7.21     <none>        CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64   docker://19.3.13
hdss7-22.host.com   Ready    master   3d7h   v1.19.2   10.4.7.22     <none>        CentOS Linux 7 (Core)   3.10.0-1127.el7.x86_64  
[root@hdss7-21 opt]# kubectl delete nodes hdss7-21.host.com
node "hdss7-21.host.com" deleted
[root@hdss7-21 opt]# kubectl get nodes 
NAME                STATUS   ROLES    AGE    VERSION
hdss7-22.host.com   Ready    master   3d7h   v1.19.2

1.3 注释反代

hdss7-11和hdss7-12执行

[root@hdss7-11 ~]# grep -w " server 10.4.7.21:6443"  /etc/nginx/nginx.conf
#        server 10.4.7.21:6443     max_fails=3 fail_timeout=30s;
nginx -s reload

1.4 切目录重启

hdss7-21执行

[root@hdss7-21 ~]# mkdir /opt/net_version;cd /opt/net_version;
[root@hdss7-21 new_version]# ll
总用量 434140
-rw-r--r-- 1 root root 444555407 10月  8 2020 kubernetes-server-linux-amd64.tar.gz
tar xf kubernetes-server-linux-amd64.tar.gz 
[root@hdss7-21 new_version]# ll
总用量 434140
drwxr-xr-x 4 root root        79 5月   6 13:55 kubernetes
-rw-r--r-- 1 root root 444555407 10月  8 2020 kubernetes-server-linux-amd64.tar.gz
[root@hdss7-21 new_version]# mv kubernetes /opt/kubernetes-v1.15.12
[root@hdss7-21 new_version]# cd /opt/kubernetes-v1.15.12/
[root@hdss7-21 kubernetes-v1.15.12]# rm -rf kubernetes-src.tar.gz
[root@hdss7-21 kubernetes-v1.15.12]# cd server/bin
[root@hdss7-21 bin]# rm -f *.tar *_tag
[root@hdss7-21 bin]# cp -rf /opt/kubernetes-v1.19.2/server/bin/conf .
[root@hdss7-21 bin]# cp -rf /opt/kubernetes-v1.19.2/server/bin/certs .
[root@hdss7-21 bin]# cp /opt/kubernetes-v1.19.2/server/bin/kubelet.sh .
[root@hdss7-21 opt]# ln -sf /opt/kubernetes-v1.15.12 /opt/kubernetes
[root@hdss7-21 opt]# supervisorctl status kube-apiserver-7-21  kube-controller-manager-7-21 kube-proxy-7-21  kube-scheduler-7-21  
kube-apiserver-7-21              STOPPED   Oct 06 08:01 AM
kube-controller-manager-7-21     STOPPED   Oct 06 08:02 AM
kube-proxy-7-21                  STOPPED   Oct 06 08:02 AM
kube-scheduler-7-21              STOPPED   Oct 06 08:02 AM
[root@hdss7-21 opt]# supervisorctl start kube-apiserver-7-21  kube-controller-manager-7-21 kube-proxy-7-21  kube-scheduler-7-21 kube-kubelet-7-21
[root@hdss7-21 bin]# supervisorctl status                 
etcd-server-7-21                 RUNNING   pid 36332, uptime 2 days, 17:43:39
flanneld-7-21                    RUNNING   pid 130301, uptime 2 days, 12:33:31
kube-apiserver-7-21              RUNNING   pid 63354, uptime 0:09:44
kube-controller-manager-7-21     RUNNING   pid 63378, uptime 0:09:13
kube-kubelet-7-21                FATAL     Exited too quickly (process log may have details)
kube-proxy-7-21                  RUNNING   pid 63398, uptime 0:08:43
kube-scheduler-7-21              RUNNING   pid 63522, uptime 0:08:12

1.5 开启Kubelet报错

估计是关闭kubelet没关好

看启动报错日志提示删除文件再重启
Please drain this node and delete the CPU manager checkpoint file "/data/kubelet/cpu_manager_state" before restarting Kubelet.
F1006 08:07:22.483670   62266 server.go:273] failed to run Kubelet: could not initialize checkpoint manager: could not restore state from checkpoint: checkpoint is corrupted
Please drain this node and delete the CPU manager checkpoint file "/data/kubelet/cpu_manager_state" before restarting K
[root@hdss7-21 bin]# rm -rf /data/kubelet/cpu_manager_state
[root@hdss7-21 bin]# supervisorctl start kube-kubelet-7-21 
[root@hdss7-21 bin]# supervisorctl status
etcd-server-7-21                 RUNNING   pid 36332, uptime 2 days, 17:44:39
flanneld-7-21                    RUNNING   pid 130301, uptime 2 days, 12:34:31
kube-apiserver-7-21              RUNNING   pid 63354, uptime 0:10:44
kube-controller-manager-7-21     RUNNING   pid 63378, uptime 0:10:13
kube-kubelet-7-21                RUNNING   pid 65092, uptime 0:00:37
kube-proxy-7-21                  RUNNING   pid 63398, uptime 0:09:43
kube-scheduler-7-21              RUNNING   pid 63522, uptime 0:09:12
[root@hdss7-21 bin]# kubectl get nodes
NAME                STATUS   ROLES    AGE         VERSION
hdss7-21.host.com   Ready    <none>   <invalid>   v1.15.12   # 已切换版本
hdss7-22.host.com   Ready    master   3d8h        v1.19.2

1.6 开启反代

hdss7-11和hdss7-12执行

[root@hdss7-11 ~]# grep -w " server 10.4.7.21:6443"  /etc/nginx/nginx.conf
        server 10.4.7.21:6443     max_fails=3 fail_timeout=30s;
nginx -s reload

标签:24,hdss7,kube,21,kubernetes,二进制,opt,K8s,root
来源: https://blog.51cto.com/yht1990/2540396