1.查看原集群的Node节点的版本号
[root@hdss7-22 opt]# kubectl get node -o wide
2.将要升级的kubernetes版本上传到node节点上并解压(v1.15.2升至v1.15.4)
[root@hdss7-22 opt]# mkdir kubernetes-v1.15.4 [root@hdss7-22 opt]# tar zxvf kubernetes-server-linux-amd64-v1.15.4.tar.gz -C ../kubernetes-v1.15.4 [root@hdss7-22 opt]# cd kubernetes-v1.15.4/kubernetes [root@hdss7-22 kubernetes]# mv ./* ../ [root@hdss7-22 kubernetes]# cd ../ && rm -rf kubernetes [root@hdss7-22 kubernetes]# cd server/bin/ [root@hdss7-22 bin]# rm -rf *.tar *_tag *_tar [root@hdss7-22 bin]# mkdir certs && cd certs [root@hdss7-22 certs]# cp /opt/kubernetes/server/bin/certs/* . [root@hdss7-22 bin]# mkdir conf && cd conf/ [root@hdss7-22 conf]# cp /opt/kubernetes/server/bin/conf/* . [root@hdss7-22 bin]# cp /opt/kubernetes/server/bin/*.sh .
3.将四层和七层代理进行注释(删除某台node节点就注释某个对应的IP地址)
在HDSS7-11.host.com上:
[root@hdss7-11 conf.d]# vim fx.com.conf upstream default_backend_traefik { server 10.4.7.21:81 max_fails=3 fail_timeout=10s; # server 10.4.7.22:81 max_fails=3 fail_timeout=10s; } server { server_name *.fx.com; location / { proxy_pass http://default_backend_traefik; proxy_set_header Host $http_host; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; } } [root@hdss7-11 nginx]# vim nginx.conf } stream { log_format proxy '$time_local|$remote_addr|$upstream_addr|$protocol|$status|' '$session_time|$upstream_connect_time|$bytes_sent|$bytes_received|' '$upstream_bytes_sent|$upstream_bytes_received' ; upstream kube-apiserver { server 10.4.7.21:6443 max_fails=3 fail_timeout=30s; # server 10.4.7.22:6443 max_fails=3 fail_timeout=30s; } server { listen 7443; proxy_connect_timeout 2s; proxy_timeout 900s; proxy_pass kube-apiserver; access_log /var/log/nginx/proxy.log proxy; } } [root@hdss7-11 nginx]# nginx -t [root@hdss7-11 nginx]# nginx -s reload
注:HDSS7-12.host.com nginx也需要修改
4.将node节点从集群中删除
[root@hdss7-22 bin]# kubectl delete node hdss7-22.host.com
5.将kubernetes链接指向新版本的kubernetes-v1.15.4
[root@hdss7-22 opt]# ln -s /opt/kubernetes-v1.15.4 /opt/kubernetes
6.将k8s集群重新启动
[root@hdss7-22 opt]# supervisorctl restart all
7.查询集群的node节点是否已经升级到最新版(v1.15.4)
[root@hdss7-22 opt]# kubectl get node NAME STATUS ROLES AGE VERSION hdss7-21.host.com Ready <none> 63m v1.15.4 hdss7-22.host.com Ready <none> 33m v1.15.4
8.对node节点打标签
[root@hdss7-22 opt]# kubectl label node hdss7-22.host.com node-role.kubernetes.io/master= [root@hdss7-22 opt]# kubectl label node hdss7-22.host.com node-role.kubernetes.io/node=
9.将前面在四层和七层代理注释的内容把注释去掉并重启nginx
[root@hdss7-11 conf.d]# vim fx.com.conf upstream default_backend_traefik { server 10.4.7.21:81 max_fails=3 fail_timeout=10s; server 10.4.7.22:81 max_fails=3 fail_timeout=10s; } server { server_name *.fx.com; location / { proxy_pass http://default_backend_traefik; proxy_set_header Host $http_host; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; } } [root@hdss7-11 nginx]# vim nginx.conf stream { log_format proxy '$time_local|$remote_addr|$upstream_addr|$protocol|$status|' '$session_time|$upstream_connect_time|$bytes_sent|$bytes_received|' '$upstream_bytes_sent|$upstream_bytes_received' ; upstream kube-apiserver { server 10.4.7.21:6443 max_fails=3 fail_timeout=30s; server 10.4.7.22:6443 max_fails=3 fail_timeout=30s; } server { listen 7443; proxy_connect_timeout 2s; proxy_timeout 900s; proxy_pass kube-apiserver; access_log /var/log/nginx/proxy.log proxy; } } [root@hdss7-11 conf.d]# nginx -t [root@hdss7-11 conf.d]# nginx -s reload