背景:外部部署的三節點etcd, kubeadm部署雙master,多node的k8s環境,由于版本迭代原因需要升級k8s
思路:
1、etcd資料備份(防止升級失敗導致資料丟失)
2、升級master節點
3、升級node節點
4、驗證集群狀態
1、資料備份
etcdctl --cacert=/opt/kubernetes/ssl/ca.pem --cert=/opt/kubernetes/ssl/server.pem --key=/opt/kubernetes/ssl/server-key.pem --endpoints=https://192.168.1.36:2379 snapshot save /data/etcd_backup_dir/etcd-snapshot-`date +%Y%m%d`.db
2、升級master節點
1、查看kubeadm版本,并更新
yum list --showduplicates kubeadm
yum install -y kubeadm-1.23.x-0
2、驗證升級計劃
kubeadm upgrade plan
3、選擇要升級到的目標版本(apiserver、controller-manager、scheduler、kube-proxy)
kubeadm upgrade apply v1.23.x
4、node標記為不可調度,騰空節點
kubectl drain <node_name> --ignore-daemonsets
5、升級kubelet 和 kubectl
yum install -y kubelet-1.23.x-0 kubectl-1.23.x-0
6、重啟
sudo systemctl daemon-reload
sudo systemctl restart kubelet
7、將節點標記為可調度,讓其重新上線
kubectl uncordon <node_name>
升級其他控制節點與第一個控制面節點相同,但是使用
kubeadm upgrade node
3、升級node節點
:
1、更新kubeadm
yum install -y kubeadm-1.23.x-0
2、對于作業節點,下面的命令會升級本地的 kubelet 配置
kubeadm upgrade node
3、騰空節點
kubectl drain <node-to-drain> --ignore-daemonsets
4、升級 kubelet 和 kubectl
yum install -y kubelet-1.23.x-0 kubectl-1.23.x-0
5、重啟 kubelet
sudo systemctl daemon-reload
sudo systemctl restart kubelet
6、取消對節點的保護
kubectl uncordon <node_name>
4、驗證集群的狀態
kubectl get nodes
kubeadm upgrade 原理(來自k8s官網):

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/431069.html
標籤:其他
上一篇:科研團隊如何探索商業化落地?這家語音AI公司用十年科學試驗打了樣
下一篇:資料中臺到底是解決什么問題的
