总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:企业级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、单机部署
bash
./kubernetes_tools.sh deploy single-node
b、一主多从部署
bash
# 1、master节点部署
./kubernetes_tools.sh deploy master
# 2、worker节点部署
./kubernetes_tools.sh deploy node --join-as-worker
c、三主多从部署
bash
# 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、编辑变量文件
bash
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节点
bash
root@ecs-9ebe-0001:/opt/kubernete-tools# ./kubernetes_tools.sh deploy master
执行结果,如下图所示:
4、第一个master节点部署完成后,将部署包分别拷贝到其它master节点和worker节点。
bash
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文件
bash
root@ecs-9ebe-0002:/opt/kubernete-tools# vim cluster.conf
如下图所示:
2、执行部署
bash
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文件
bash
root@ecs-9ebe-0003:/opt/kubernete-tools# vim cluster.conf
如下图所示:
2、执行部署
bash
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文件
bash
root@ecs-9ebe-0004:/opt/kubernete-tools# vim cluster.conf
如下图所示:
2、执行部署
bash
root@ecs-9ebe-0004:/opt/kubernete-tools# ./kubernetes_tools.sh deploy node --join-as-worker
执行结果,如下图所示:
8、重启k8s主机
说明:集群部署完后,无论是master节点还是worker节点均需重启。
bash
reboot
4.2、部署后
1、检查集群状态
bash
root@k8s-master-58:/opt/kubernete-tools# ./kubernetes_tools.sh check
如下图所示:
2、检查证书有效时间
bash
root@k8s-master-58:/opt/kubernete-tools# kubeadm certs check-expiration
如下图所示:
3、集群DNS测试
说明:worker节点导入测试容器镜像。
1、worker节点导入测试容器镜像
bash
root@k8s-worker-61:/opt/kubernete-tools/test/x86_64/test# ./load_images.sh
2、master节点执行如下命令,这里默认在k8s-master-58节点
bash
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节点
bash
root@k8s-master-58:/opt/kubernete-tools/test/x86_64/test# kubectl apply -f nginx.yaml
如下图所示:
在浏览器上访问Nginx,如下所示:
总结:整理不易,如果对你有帮助,可否点赞关注一下?
更多详细内容请参考:企业级K8s集群运维实战