新聞中心
Kubernetes 1.18.3高可用集群快速升級及擴容過程

在 Kubernetes 集群中,高可用性是非常重要的一個特性,當集群中的某個組件出現(xiàn)故障時,我們需要確保整個集群仍然能夠正常運行,本文將介紹如何在 Kubernetes 1.18.3 版本中實現(xiàn)高可用集群的快速升級及擴容過程。
準備工作
在進行任何升級或擴容操作之前,我們需要確保集群中的各個組件都已經升級到最新版本,可以通過以下命令查看集群中的組件版本:
kubectl get nodes kubectl get pods --all-namespaces kubectl get deployments --all-namespaces kubectl get services --all-namespaces
升級 Kubernetes 集群
1、更新控制平面組件
我們需要更新控制平面組件,包括 etcd、API Server、Controller Manager 和 kube-proxy,可以通過以下命令分別更新這些組件:
更新 etcd
etcd_version=$(kubectl get componentstatuses | grep etcd | awk '{print $4}')
echo "當前 etcd 版本:${etcd_version}"
curl -L https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz | tar xz && sudo mv etcd-v3.5.0-linux-amd64/etcd* /usr/local/bin/ && sudo rm -rf etcd-v3.5.0-linux-amd64
sudo systemctl restart etcd
更新 API Server
kubectl apply -f https://raw.githubusercontent.com/kubernetes/api/v1.22.0/deploy/kube-apiserver.yaml
更新 Controller Manager
kubectl apply -f https://raw.githubusercontent.com/kubernetes/controller-manager/v1.22.0/deploy/kube-controller-manager.yaml
更新 kube-proxy
kubectl apply -f https://raw.githubusercontent.com/kubernetes/kubernetes/master/staging/src/k8s.io/apiserver/components/v1alpha1/proxy/configmap.yaml
2、更新非控制平面組件
除了控制平面組件之外,我們還需要更新其他非控制平面組件,如 kubelet、kubeadm、kubectl 等,可以通過以下命令分別更新這些組件:
更新 kubelet sudo apt-get update && sudo apt-get install -y kubeadm=1.22.0-00 kubelet=1.22.0-00 kubectl=1.22.0-00 kubernetes-cni=0.7.5-00 linux-headers-$(uname -r) build-essential libssl1.1 libffi6 libsnappy3 python3 python3-pip git make cmake jq
擴容集群
1、添加新的節(jié)點
在擴容集群時,我們需要添加一個新的節(jié)點,可以通過以下步驟添加新的節(jié)點:
(1) 在新節(jié)點上安裝操作系統(tǒng)并配置網絡。
(2) 將新節(jié)點加入到集群中,首先停止新節(jié)點上的 kubelet 服務:
systemctl stop kubelet
然后在新節(jié)點上運行 kubeadm init –pod-network-cidr=192.168.0.0/16 –upload-certs –control-plane –certificate-key
(3) 在初始化過程中,kubeadm 將輸出一些信息,我們需要根據這些信息完成后續(xù)操作,我們需要將新節(jié)點的加入信息提供給其他節(jié)點:
kubeadm token create --print-join-command > join_cmd.sh chmod +x join_cmd.sh
(4) 在其他節(jié)點上運行 join_cmd.sh,將新節(jié)點加入到集群中:
source/admin.conf && kubeadm join :6443 --token --discovery-token-ca-cert-hash --control-plane --certificate-key > kubeadm_join.log 2>&1 &
2、將工作負載遷移到新節(jié)點上
在將工作負載遷移到新節(jié)點上之前,我們需要確保新節(jié)點已經成功加入到集群中,可以通過以下命令檢查新節(jié)點的狀態(tài):
kubectl get nodes
接下來,我們需要將工作負載遷移到新節(jié)點上,這通常需要修改部署和服務的配置文件,將 Pod 調度到新節(jié)點上,如果我們有一個名為 myapp 的部署,可以使用以下命令將其遷移到新節(jié)點上:
分享文章:Kubernetes1.18.3高可用集群快速升級及擴容過程
標題鏈接:http://m.5511xx.com/article/dpdhdhc.html


咨詢
建站咨詢
