Kubeasz快速部署k8s混合架构集群

#作者:曹付江

文章目录

前言

混合架构集群这里是指集群中既有linux amd64架构机器,也有linux arm64架构机器;这里只记录一个简单的操作说明,实际操作注意风险。

1.部署思路

  1. 先选定一台amd64架构的机器做"amd64部署机",使用它先部署amd64架构的集群
  2. 选一台arm64架构的机器做"arm64部署机",复制amd64部署机的/etc/kubeasz目录文件(除去目录中的bin、down子目录),然后重新下载arm64架构的二进制和镜像,然后添加arm64节点到原有集群即可

2.操作步骤

2.1.假设已经正常部署了amd64架构的三节点集群

2.2.在"amd64部署机"

目录 /etc/kubeasz 中移除子目录 bin 和 down,然后把整体/etc/kubeasz 目录复制到"arm64部署机"

复制代码
# 登录amd64部署机
cd /etc/kubeasz; mv bin down /tmp/; scp -r /etc/kubeasz root@{_ip_arm64}:/etc/
# 复制完成后找回 bin 和 down 子目录
mv /tmp/bin /etc/kubeasz/; mv /tmp/down /etc/kubeasz/

2.3.登录"arm64部署机",执行下载,其他准备工作

复制代码
cd /etc/kubeasz
# 下载基础部分
./ezdown -D
# 下载额外部分(如有)
./ezdown -X ...
# 运行部署容器
./ezdown -S
# 配置机器ssh免密码登录,集群所有节点都免密,包括待新增arm64节点
ssh-copy-id xx.xx.xx.xx
ssh-copy-id ...
# 复制kubeconfig
mkdir /root/.kube/; cp clusters/default/kubectl.kubeconfig /root/.kube/config

2.4.添加arm64新节点到集群

复制代码
source ~/.bashrc
# 添加新节点 x.x.x.x
dk ezctl add-node default x.x.x.x

2.5.验证

复制代码
$ kubectl get node -owide
NAME           STATUS   ROLES    AGE    VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION       CONTAINER-RUNTIME
k8s-x.x.x-19   Ready    master   5d8h   v1.33.1   x.x.x.19   <none>        Ubuntu 20.04.4 LTS   5.4.0-122-generic    containerd://2.1.1
k8s-x.x.x-90   Ready    node     5d8h   v1.33.1   x.x.x.90   <none>        Ubuntu 22.04.5 LTS   5.15.0-134-generic   containerd://2.1.1
k8s-x.x.x-91   Ready    node     5d8h   v1.33.1   x.x.x.91   <none>        Ubuntu 22.04.5 LTS   5.15.0-134-generic   containerd://2.1.1
k8s-x.x.x-93   Ready    node     79s    v1.33.1   x.x.x.93   <none>        Ubuntu 22.04.5 LTS   5.15.0-140-generic   containerd://2.1.1

$ kubectl describe node|grep beta.kubernetes.io/arch
Labels:             beta.kubernetes.io/arch=amd64
Labels:             beta.kubernetes.io/arch=amd64
Labels:             beta.kubernetes.io/arch=amd64
Labels:             beta.kubernetes.io/arch=arm64

3.小结

通过以上步骤,我们就成功实现了在amd64集群中添加arm64节点;充分利用了kubeasz 项目部署集群的灵活性和可配置性;

部署过程中ansible执行的过程性输出内容,以近乎白盒的方式展示每一个细节;假如出错有详细的说明,帮助定位,并且随时可以修改执行脚本,安装的幂等性保证随时可以重新安装以修复错误

相关推荐
IT一氪2 小时前
K8s Admin:一个轻量级的多集群 Kubernetes 管理平台
云原生·容器·kubernetes
小江的记录本2 小时前
【Spring注解】Spring生态常见注解——面试高频考点总结
java·spring boot·后端·spring·面试·架构·mvc
qqacj2 小时前
SpringBoot3.3.0集成Knife4j4.5.0实战
java
煎饼皮皮侠2 小时前
利用 AQS 构建一个自己的公平共享锁
java·aqs·公平共享锁
大新新大浩浩2 小时前
Deerflow部署-X86架构-在ubuntu2204操作系统上使用docker模式部署
docker·容器·架构
梁山话事人2 小时前
Spring IOC
java·数据库·spring
计算机学姐2 小时前
基于SpringBoot的奶茶店点餐系统【协同过滤推荐算法+数据可视化统计】
java·vue.js·spring boot·mysql·信息可视化·tomcat·推荐算法
@土豆2 小时前
Java JVM参数环境变量详解及SkyWalking Agent集成技术文档
java·jvm·skywalking
Yupureki2 小时前
《Linux系统编程》19.线程同步与互斥
java·linux·服务器·c语言·开发语言·数据结构·c++
又来敲代码了2 小时前
Zrlog博客的系统部署
java·linux·运维·mysql·apache·tornado