總結:整理不易,如果對你有幫助,可否點贊關注一下?
更多詳細內容請參考:企業級K8s集群運維實戰
一、部署背景
由于業務系統的特殊性,我們需要針對不同的客戶環境部署基于containerd容器版 K8S 1.33.3集群,為了更便捷,高效的部署,針對業務系統的特性,我這邊編寫了一鍵離線部署容器版K8S集群自動化工具。
說明:如果有興趣,可以從工具下載中獲取下載鏈接,此工具可幫助你快速了解一個自動化部署工具是如何編寫的?
二、工具下載
基于x86_64+aarch64架構CPU+containerd一鍵離線部署容器版K8S1.33.3高可用集群工具
三、工具介紹
實現功能如下:
1、支持 X86_64架構、aarch64架構的 Ubuntu 22.04操作系統。
2、支持 X86_64架構、aarch64架構的 Kylin Linux Advanced Server V10操作系統。
3、支持 單機、一主多從、三主多從等部署架構 K8S 1.33.3容器版(containerd)離線集群,且 證書有效期為9年。
4、支持一鍵部署、集群檢查、集群移除等功能。
5、支持一主多從、三主多從部署架構的worker節點 一鍵擴容和移除。
四、工具使用
說明:由于篇幅有限,這里以三主多從架構為例,像大家介紹K8S1.33.3高可用集群部署步驟!
1、查看幫助命令
如下圖所示:
部署命令可參考如下:
a、單機部署
./kubernetes_tools.sh deploy single-node
b、一主多從部署
# 1、master節點部署
./kubernetes_tools.sh deploy master# 2、worker節點部署
./kubernetes_tools.sh deploy node --join-as-worker
c、三主多從部署
# 1、master節點部署
./kubernetes_tools.sh deploy master
./kubernetes_tools.sh deploy node --join-as-master
./kubernetes_tools.sh deploy node --join-as-master# 2、worker節點部署
./kubernetes_tools.sh deploy node --join-as-worker
4.1、部署中
2、編輯變量文件
root@ecs-9ebe-0001:/opt/kubernete-tools# cp cluster.conf.tpl cluster.conf
root@ecs-9ebe-0001:/opt/kubernete-tools# vim cluster.conf
如下圖所示:
3、部署 第一個 master節點
root@ecs-9ebe-0001:/opt/kubernete-tools# ./kubernetes_tools.sh deploy master
執行結果,如下圖所示:
4、第一個master節點部署完成后,將部署包分別拷貝到其它master節點和worker節點。
root@k8s-master-58:/opt# scp -r kubernete-tools root@192.168.0.59:/opt
root@k8s-master-58:/opt# scp -r kubernete-tools root@192.168.0.60:/opt
root@k8s-master-58:/opt# scp -r kubernete-tools root@192.168.0.61:/opt
5、部署第二個master節點
說明:第二個master節點的部署只需要修改cluster.conf文件中的NODE_NAME和APISERVER_ADVERTISE_ADDRESS變量,其它變量無需修改。
1、修改cluster.conf文件
root@ecs-9ebe-0002:/opt/kubernete-tools# vim cluster.conf
如下圖所示:
2、執行部署
root@ecs-9ebe-0002:/opt/kubernete-tools# ./kubernetes_tools.sh deploy node --join-as-master
執行結果,如下圖所示:
6、部署第三個 master節點
說明:第三個master節點的部署只需要修改cluster.conf文件中的NODE_NAME和APISERVER_ADVERTISE_ADDRESS變量,其它變量無需修改。
1、修改cluster.conf文件
root@ecs-9ebe-0003:/opt/kubernete-tools# vim cluster.conf
如下圖所示:
2、執行部署
root@ecs-9ebe-0003:/opt/kubernete-tools# ./kubernetes_tools.sh deploy node --join-as-master
執行結果,如下圖所示:
7、部署 worker節點
說明:依次類推,其它worker節點的部署只需要修改cluster.conf文件中的NODE_NAME和APISERVER_ADVERTISE_ADDRESS變量,其它變量無需修改。
1、修改cluster.conf文件
root@ecs-9ebe-0004:/opt/kubernete-tools# vim cluster.conf
如下圖所示:
2、執行部署
root@ecs-9ebe-0004:/opt/kubernete-tools# ./kubernetes_tools.sh deploy node --join-as-worker
執行結果,如下圖所示:
8、重啟k8s主機
說明:集群部署完后,無論是master節點還是worker節點均需重啟。
reboot
4.2、部署后
1、檢查集群狀態
root@k8s-master-58:/opt/kubernete-tools# ./kubernetes_tools.sh check
如下圖所示:
2、檢查證書有效時間
root@k8s-master-58:/opt/kubernete-tools# kubeadm certs check-expiration
如下圖所示:
3、集群DNS測試
說明:worker節點導入測試容器鏡像。
1、worker節點導入測試容器鏡像
root@k8s-worker-61:/opt/kubernete-tools/test/x86_64/test# ./load_images.sh
2、master節點執行如下命令,這里默認在k8s-master-58節點
root@k8s-master-58:/opt/kubernete-tools# kubectl run busybox --image busybox:1.34 --restart=Never --rm -it busybox -- sh
如下圖所示:
4、集群功能測試
說明:master節點執行如下命令,這里默認在k8s-master-58節點
root@k8s-master-58:/opt/kubernete-tools/test/x86_64/test# kubectl apply -f nginx.yaml
如下圖所示:
在瀏覽器上訪問Nginx,如下所示:
總結:整理不易,如果對你有幫助,可否點贊關注一下?
更多詳細內容請參考:企業級K8s集群運維實戰