《Kubernetes部署篇:基于x86_64+aarch64架构CPU+containerd一键离线部署容器版K8S1.33.3高可用集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级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集群运维实战