前言
注意:根据不同的业务选择流量低谷的时候操作,比如游戏公司,肯定不能晚上12点停服升级,可以选择凌晨四五点。像银行,就可以选择晚上升级。

1、查看节点状态

kubectl get nodes
image.png

2、查看pod状态

kubectl get pod -n kube-system -o wide
image.png

3、删除节点(首先删除节点上服务最少的那个)

执行:kubectl delete node hdss7-22.host.com
image.png

kubectl get node
image.png

再次查看pod状态
kubectl get pod -n kube-system -o wide

可以看到,之前在7-22节点上的pod,已经自动迁移到7-21节点上。

查看服务是否受影响。
[root@hdss7-21 ~]# dig -t A kubernetes.default.svc.cluster.local @192.168.0.2 +short
192.168.0.1

4、注释nginx和conf文件对应内容并重启相应的服务

[root@hdss7-11 conf.d]# vim /etc/nginx/nginx.conf
# server 10.4.7.22:6443 max_fails=3 fail_timeout=30s;

[root@hdss7-11 conf.d]# vim /etc/nginx/cond.f/jack.com.conf
# server 10.4.7.22:81 max_fails=3 fail_timeout=10s;

[root@hdss7-11 conf.d]# nginx -t
[root@hdss7-11 conf.d]# nginx -s reload

5、下载配置新的kubernetes

[root@hdss7-21 /]# cd opt
[root@hdss7-21 opt]# mkdir kubernetes-v1.18.0
cd /opt/src
下载:wget https://dl.k8s.io/v1.18.0/kubernetes-server-linux-amd64.tar.gz
解压:tar xf kubernetes-server-linux-amd64.tar.gz -C /opt/kubernetes-v1.18.0
删除之前kubernetes软连接:rm -fr kubernetes
新的软链接:ln -s /opt/kubernetes-v1.18.0/ /opt/kubernetes
cd kubernetes

删除kubernetes下的源码:
[root@hdss7-21 kubernetes]# rm -fr kubernetes-src.tar.gz

进入kubernetes的server目录下的bin文件夹:
删除所有压缩包: rm -f .tar
删除所有tag:rm -f
_tag

mkdir cert
mkdir conf

cd cert
cp /opt/kubernetes-v1.15.4/server/bin/cert/* .

cd ..
cd conf
cp /opt/kubernetes-v1.15.4/server/bin/conf/* .

cd .. 进入bin目录
cp /opt/kubernetes-v1.15.4/server/bin/*.sh .

supervisorctl restart all

查看有没有开启新的node
kubectl get nodes

查看服务状态:superstorctl status

ps aux | grep kubectl

kill -9 进程id

如果有失败服务:superstorctl start 服务名