二、k8s集群维护(升级,添加,删除)
k8s版本升级
温馨提示 : k8s升级一定要测试环境测试好,最好不要跨大版本,而且需要停止服务 首先进入官网找到需要下载的版本
https://github.com/kubernetes/kubernetes/releases 下面是我们需要升级的版本 1.21.4,需要把安装包down下来,选择amd.tar.gz 下载好之后上传至部署节点 https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.21.md#downloads-for-v1214
上传安装包
root@k8s-master1:~# cd /usr/local/src/ root@k8s-master1:/usr/local/src# ls kubernetes-v1.21.4-client-linux-amd64.tar.gz kubernetes-v1.21.4-node-linux-amd64.tar.gz kubernetes-v1.21.4-server-linux-amd64.tar.gz kubernetes-v1.21.4.tar.gz $解压安装包 root@k8s-master1:/usr/local/src# tar xf kubernetes-v1.21.4-client-linux-amd64.tar.gz root@k8s-master1:/usr/local/src# tar xf kubernetes-v1.21.4-node-linux-amd64.tar.gz troot@k8s-master1:/usr/local/src# tar xf kubernetes-v1.21.4-server-linux-amd64.tar.gz root@k8s-master1:/usr/local/src# tar xf kubernetes-v1.21.4.tar.gz
进入解压目录,里面存放这我们需要升级的server以及node文件
root@k8s-master1:/usr/local/src# cd kubernetes/ root@k8s-master1:/usr/local/src/kubernetes# ls addons cluster hack LICENSES README.md version client docs kubernetes-src.tar.gz node server
升级master
首先我们需要知道Server上都有哪些组件需要升级 ,分别是:
kuber-scheduler
kuber-contoller-manager
apiextensions-apiserver
kube-proxy
kubelete
kuberctlroot@k8s-master1:/usr/local/src/kubernetes# cd server/bin/ root@k8s-master1:/usr/local/src/kubernetes/server/bin# ll
先停止一台master,为了保证集群的可用性,主节点挂了之后我们的负载均衡器会调度另一台为主节点
如果保险起见可以进入负载均衡器,把需要升级的一台注释,然后批量升级在取消注释
停止服务
root@k8s-master1:# systemctl stop kube-apiserver.service kube-proxy.service kube-controller-manager.service kubelet.service kube-scheduler.service
拷贝二进制
# pwd
/usr/local/src/kubernetes/server/bin
root@k8s-master1:/usr/local/src/kubernetes/server/bin# cp kube-apiserver kube-proxy kube-controller-manager kube-scheduler kubelet /usr/bin/
root@k8s-master1:/usr/local/src/kubernetes/server/bin# systemctl start kube-apiserver.service kube-proxy.service kube-controller-manager.service kubelet.service kube-scheduler.service
验证是否升级成功
如果升级成功其他master按照此操作批量操作,或者写脚本一键升级
root@k8s-master1:/usr/local/src/kubernetes/server/bin# kubectl get node
NAME STATUS ROLES AGE VERSION
10.0.0.18 Ready,SchedulingDisabled master 6d19h v1.21.4
升级node
> node需要升级的几个组件,分别是:
kubectl
kubelete
kube-proxy
先升级其中一台node测试,主节点把安装包拷贝过来,一定要先停服务在master节点拷贝数据包
root@k8s-node1:~# systemctl stop kubelet kube-proxy
root@k8s-master1:/usr/local/src/kubernetes/server/bin# scp kubelet kube-proxy kubectl 10.0.0.48:/usr/bin
root@k8s-node1:~# systemctl start kubelet kube-proxy
在master节点查看是否升级成功,版本显示成功就没问题,然后就可以批量升级
$ kubectl get node
10.0.0.48 Ready node 6d18h v1.21.4
更换主节点系统版本
为了保证我们后期添加节点版本一致,所以安装节点需要替换原始版本
强制替换
#cp kube-apiserver kube-proxy kube-controller-manager kube-scheduler kubelet /etc/kubeasz/bin/
检查版本是否替换成功至1.21.4
root@k8s-master1:~# cd /etc/kubeasz/bin/
root@k8s-master1:/etc/kubeasz/bin# ./kubelet –version
Kubernetes v1.21.4
添加node节点
需要免密先提前做好
cd /etc/kubeasz/
./ezctl add-node k8s-01 10.0.0.81
成功之后就使用kubectl 测试是否加入成功
添加master节点
需要注意时间需要一致,负载均衡器会把master的配置文件重新推送
./ezctl add-master k8s-01 10.0.0.89
添加成功之后可以在负载均衡配置文件看到添加好的信息
root@k8s-master1:/etc/kubeasz# cat /etc/kube-lb/conf/kube-lb.conf
删除节点
按照上面操作很简单
del-etcd <cluster> <ip> to delete a etcd-node from the etcd cluster
del-master <cluster> <ip> to delete a master node from the k8s cluster
del-node <cluster> <ip> to delete a work node from the k8s cluster
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Mr.yang 个人博客!
评论