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

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

更多详细内容请参考:企业级K8s集群运维实战


一、部署背景

由于业务系统的特殊性,我们需要针对不同的客户环境部署基于containerd容器版 K8S 1.26.15集群,由于大都数用户都是专网环境,无法使用外网,为了更便捷,高效的部署,针对业务系统的特性,我这边编写了一键离线部署容器版K8S集群自动化工具。

说明:如果有兴趣,可以从工具下载中获取下载链接,此工具可帮助你快速了解一个自动化部署工具是如何编写的?


二、工具下载

基于Kylin V10+ARM64架构CPU+containerd一键离线部署容器版K8S1.26.15高可用集群工具


三、工具介绍

实现功能如下:

1、当前一键部署工具仅支持 ARM64架构 Kylin Linux Advanced Server V10操作系统。
2、支持 单机、一主多从、三主多从等部署架构 K8S 1.26.15容器版(containerd)离线集群,且 证书有效期为99年
3、支持一键部署、集群检查、集群移除等功能。
4、支持一主多从、三主多从部署架构的worker节点 一键扩容和移除。

说明:如果想要当前此工具支持其它操作系统,只需要修改basic-env/init_env.sh脚本,根据当当前操作系统修改成符合当前操作系统的命令。其它的containerd、kubeadm、kubectl、kubelet、nginx都是采用二进制安装方式,是通用的。


四、工具使用

说明:由于篇幅有限,这里以三主多从架构为例,像大家介绍K8S1.26.15高可用集群部署步骤!

4.1、部署前

1、更新libseccomp(部署前)

说明:以下操作所有K8S集群主机都需执行。

方法一:

[root@ecs-c391-0003 kubernete-tools]# rpm -qa | grep libseccomp
libseccomp-2.4.1-3.ky10.aarch64
[root@ecs-c391-0003 kubernete-tools]# rpm -e `rpm -qa | grep libseccomp` --nodeps
[root@ecs-c391-0003 kubernete-tools]# cp libseccomp.so.2 /usr/lib64/

部署包包含libseccomp.so.2文件,你也可在安装containerd容器引擎中手动编译安装,如下图所示:
在这里插入图片描述

方法二:

rpm -e `rpm -qa | grep libseccomp` --nodeps
yum install gperf -y
wget https://github.com/seccomp/libseccomp/releases/download/v2.5.4/libseccomp-2.5.4.tar.gz
tar axf libseccomp-2.5.4.tar.gz && cd libseccomp-2.5.4
./configure && make && make install
ln -s /usr/local/lib/libseccomp.so.2 /usr/lib64/libseccomp.so.2

总结: 经过多次试验,安装k8s1.26.15版本时,如果libseccomp版本为2.4.1,则会报错unable to retrieve OCI runtime error。


2、查看帮助命令

如下图所示:
在这里插入图片描述

部署命令可参考如下:

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.2、部署中

2、编辑变量文件

[root@ecs-c391-0003 kubernete-tools]# cp cluster.conf.tpl cluster.conf
[root@ecs-c391-0003 kubernete-tools]# vim cluster.conf

如下图所示:

# 适用模式:支持一主多从集群模式和三主多从集群模式
#   1.一主多从: API_SERVER_HOST_01、API_SERVER_HOST_02、API_SERVER_HOST_03 填写相同的IP地址
#   2.三主多从: API_SERVER_HOST_01、API_SERVER_HOST_02、API_SERVER_HOST_03 填写不同的IP地址
#   3.安装顺序为:API_SERVER_HOST_01节点 > API_SERVER_HOST_02节点 > API_SERVER_HOST_03节点
# 三台API SERVER主机IP地址
export API_SERVER_HOST_01="192.168.1.156"
export API_SERVER_HOST_02="192.168.1.171"
export API_SERVER_HOST_03="192.168.1.238"

# Nginx代理IP地址和代理端口,端口不冲突情况下,建议不修改
export API_SERVER_PROXY_HOST="${API_SERVER_HOST_01}"
export API_SERVER_PROXY_PORT="8443"

# 建议填写为当前磁盘最大存储空间目录,如果系统盘空间最大,建议填写为/data,如果挂在盘空间最大,建议填写为挂载目录
export BASE_DIR="/data"

# containerd数据目录,默认不修改
export CONTAINERD_STORAGE_DIR="${BASE_DIR}/basic-data/containerd"

# kubernetes version,默认不修改
export KUBERNETES_VERSION="v1.26.15"

# 当前机器的节点名称,一般为 xxx-cluster-master-01、xx-cluster-node-01
# 部署过程中,此参数会作为主机名,只能由小写字母、数字、.和-组成,且只能以小写字母/数字开头或结尾
export NODE_NAME="k8s-master-156"

# 填写本机地址即可
export APISERVER_ADVERTISE_ADDRESS="192.168.1.156"

# 镜像仓库地址,默认不修改
export IMAGE_REPOSITORY="registry.cn-hangzhou.aliyuncs.com/google_containers"

# 集群Pod网段,可根据实际情况修改
export POD_NETWORK_CIDR="10.48.0.0/16"

# 集群Service网段,可根据实际情况修改
export SERVICE_CIDR="10.96.0.0/16"

# kubernetes node port range,默认不修改
export SERVICE_NODE_POD_RANGE="30000-36000"

3、部署 第一个 master节点

[root@ecs-c391-0003 kubernete-tools]# ./kubernetes_tools.sh deploy master

4、第一个master节点部署完成后的部署包分别拷贝到其它master节点和worker节点。

[root@k8s-master-156 pkgs]# scp -r kubernete-tools/ root@172.18.1.171:/data/pkgs
[root@k8s-master-156 pkgs]# scp -r kubernete-tools/ root@172.18.1.238:/data/pkgs
[root@k8s-master-156 pkgs]# scp -r kubernete-tools/ root@172.18.1.66:/data/pkgs

5、部署第二个master节点

说明:第二个节点的部署只需要修改当前节点的名称,也就是主机名。

# 1、编辑cluster.conf文件
[root@ecs-c391-0001 kubernete-tools]# vim cluster.conf 
# 当前机器的节点名称,一般为 xxx-cluster-master-01、xx-cluster-node-01
# 部署过程中,此参数会作为主机名,只能由小写字母、数字、.和-组成,且只能以小写字母/数字开头或结尾
export NODE_NAME="k8s-master-171"

# 填写本机地址即可
export APISERVER_ADVERTISE_ADDRESS="192.168.1.171"

# 2、以master角色加入kubernetes集群
[root@ecs-c391-0001 kubernete-tools]# ./kubernetes_tools.sh deploy node --join-as-master

6、部署 第三个 master节点

说明:第三个节点的部署只需要修改当前节点的名称,也就是主机名。

# 1、编辑cluster.conf文件
[root@ecs-c391-0004 kubernete-tools]# vim cluster.conf
# 当前机器的节点名称,一般为 xxx-cluster-master-01、xx-cluster-node-01
# 部署过程中,此参数会作为主机名,只能由小写字母、数字、.和-组成,且只能以小写字母/数字开头或结尾
export NODE_NAME="k8s-master-238" 

# 填写本机地址即可
export APISERVER_ADVERTISE_ADDRESS="192.168.1.238"

# 2、以master角色加入kubernetes集群
[root@ecs-c391-0004 kubernete-tools]# ./kubernetes_tools.sh deploy node --join-as-master

7、部署 worker节点

说明:依次类推,其它节点的部署只需要修改当前节点的名称,也就是主机名。

# 1、编辑cluster.conf文件
[root@ecs-c391-0002 kubernete-tools]# vim cluster.conf 
# 当前机器的节点名称,一般为 xxx-cluster-master-01、xx-cluster-node-01
# 部署过程中,此参数会作为主机名,只能由小写字母、数字、.和-组成,且只能以小写字母/数字开头或结尾
export NODE_NAME="k8s-worker-66"

# 填写本机地址即可
export APISERVER_ADVERTISE_ADDRESS="192.168.1.66"

# 2、以worker角色加入kubernetes集群
[root@ecs-c391-0002 kubernete-tools]# ./kubernetes_tools.sh deploy node --join-as-worker

8、重启k8s主机

说明:集群部署完后,无论是master节点还是worker节点均需重启。

reboot

4.2、部署后

1、检查集群状态

[root@k8s-master-156 kubernete-tools]# ./kubernetes_tools.sh check

如下图所示:
在这里插入图片描述


2、检查证书有效时间

[root@k8s-master-156 kubernete-tools]# kubeadm certs  check-expiration

如下图所示:
在这里插入图片描述


3、集群DNS测试

[root@k8s-master-156 kubernete-tools]# cd test/busybox/
[root@k8s-master-156 busybox]# ./test.sh 

如下图所示:
在这里插入图片描述


4、集群功能测试

[root@k8s-master-156 kubernete-tools]# cd test/nginx/
[root@k8s-master-156 nginx]# kubectl apply -f nginx.yaml 

如下图所示:
在这里插入图片描述

在浏览器上访问Nginx,如下所示:
在这里插入图片描述


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

更多详细内容请参考:企业级K8s集群运维实战


  • 14
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 18
    评论
### 回答1: kylin-desktop-v10-sp1-kirin990-release-20211228-arm64.iso是一种中文操作系统的镜像文件。该镜像文件的命名中包含了以下几个关键信息: - "kylin-desktop"表示这是一个名为"麒麟桌面"的操作系统,麒麟桌面是中国自主开发的一款基于Linux的操作系统,集成了许多特色应用和功能,旨在提供稳定、安全和易用的桌面环境。 - "v10"表示这个本是第10个重要的本更新。本的迭代更新通常会带来一些新的功能、优化和修复之前本的问题。 - "sp1"指的是此本为麒麟桌面v10的第一个补丁。补丁通常用于修复或改进操作系统中的一些错误或缺陷。 - "kirin990"是指该本是专为搭载麒麟990芯片的设备而设计的。麒麟990芯片是华为公司自家研发的一款高性能移动处理器,具有较强的计算和图形处理能力。 - "release-20211228"表示此本的发布日期是2021年12月28日。发布日期可以反映出该本是最新的或最近更新的本。 - "arm64.iso"表示此镜像文件是基于ARM64架构的操作系统镜像。ARM64是一种适用于移动设备和嵌入式系统的处理器架构,具有更低功耗和更高的运行效率。 总体而言,kylin-desktop-v10-sp1-kirin990-release-20211228-arm64.iso是一款在2021年12月28日发布的,基于ARM64架构、专为麒麟990芯片设备定制的麒麟桌面操作系统的镜像文件。它的命名反映了操作系统的名称、本、补丁、芯片架构和发布日期等重要信息。 ### 回答2: kylin-desktop-v10-sp1-kirin990-release-20211228-arm64.iso是一个针对麒麟990移动处理器的典型桌面操作系统的映像文件。它是基于kylin Desktop v10的第一个服务包的本,并针对于搭载华为自家研发芯片麒麟990的设备进行了优化。这个操作系统是基于ARM64架构的,适用于支持ARM指令集的设备。 使用这个iso文件,你可以在配备麒麟990芯片的设备上安装kylin桌面操作系统,获得与kylin Desktop v10相同的使用体验,并享受到针对麒麟990处理器的优化性能。这个本的操作系统于2021年12月28日发布,其中包含了一些修复和更新,以提供更稳定和流畅的用户体验。 麒麟990芯片是华为公司开发的一款高性能处理器,具备先进的AI和计算能力,能够满足复杂计算和图形处理等各种任务的需求。kylin-desktop-v10-sp1-kirin990-release-20211228-arm64.iso能够充分发挥麒麟990芯片的潜力,提供更高的响应速度和更流畅的界面操作,从而提升用户的工作效率和体验。 总之,kylin-desktop-v10-sp1-kirin990-release-20211228-arm64.iso是为了麒麟990芯片设计的kylin桌面操作系统的映像文件,将为使用麒麟990芯片的用户提供一种更优化、更高效、更流畅的桌面操作体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东城绝神

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值