一、前置条件
-
硬件与系统要求
- 飞腾D2000服务器(ARM64架构,aarch64)
- 操作系统:openEuler 22.03 LTS 或更高版本
- 最小配置:2核CPU/4GB内存/50GB磁盘
- 确保节点间网络互通,且能访问互联网以下载依赖
-
依赖安装
# 安装基础工具 sudo dnf install -y curl wget tar git conntrack socat # 关闭防火墙和SELinux(测试环境建议操作) sudo systemctl stop firewalld && sudo systemctl disable firewalld sudo setenforce 0 sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
二、安装KubeOperator
1. 下载KubeOperator离线包(ARM64适配版)
# 替换为实际支持的ARM64版本(需确认官方或社区是否提供)
wget https://github.com/KubeOperator/KubeOperator/releases/download/v4.0.0/kubeoperator-arm64.tar.gz
tar -zxvf kubeoperator-arm64.tar.gz
cd kubeoperator
2. 安装依赖组件
# 安装Docker(需ARM64版本)
sudo dnf install -y docker
sudo systemctl start docker && sudo systemctl enable docker
# 安装Python3和依赖
sudo dnf install -y python3 python3-pip
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
3. 启动KubeOperator
# 修改配置文件(若需要)
vim config/production.py # 调整数据库、端口等配置
# 初始化数据库
python3 manage.py migrate
# 启动服务(后台运行)
nohup python3 manage.py runserver 0.0.0.0:8080 > /dev/null 2>&1 &
三、通过KubeOperator部署单Master集群
1. 访问KubeOperator Web界面
- 浏览器访问
http://<服务器IP>:8080
- 初始账号:
admin
/kubeoperator@admin123
2. 配置主机
- 导航路径:
主机管理
→添加主机
- 填写信息:
- IP地址:当前飞腾D2000节点的IP
- 端口:22
- 用户名:root 或具有sudo权限的用户
- 密码/SSH密钥:选择认证方式
- 验证连接:点击“测试连接”确保成功
3. 创建集群
- 导航路径:
集群管理
→创建集群
- 集群配置:
- 架构选择:ARM64(确保KubeOperator支持ARM调度)
- Kubernetes版本:选择ARM兼容版本(如 v1.24.3+)
- 网络插件:Calico/Flannel(需确认ARM镜像可用)
- 单节点模式:勾选“单Master节点”
- 容器运行时:Containerd(推荐,ARM兼容性更好)
- 节点分配:
- 将已添加的飞腾D2000主机作为Master节点
4. 自定义参数(关键步骤)
- 修改容器镜像仓库:
- 替换默认的amd64镜像为ARM64镜像源(如华为云SWR镜像仓库):
# 在"集群参数"中调整以下内容 kubelet: image_repository: "swr.cn-north-4.myhuaweicloud.com/kubeoperator" calico: image_repository: "swr.cn-north-4.myhuaweicloud.com/calico-arm64"
- 替换默认的amd64镜像为ARM64镜像源(如华为云SWR镜像仓库):
- 配置本地存储(可选):
storage: enabled: true type: local path: /data/k8s-storage
5. 开始部署
- 点击“部署”按钮,等待任务执行完成(约10-15分钟)
- 监控日志输出,处理可能的ARM架构相关错误
四、验证集群
-
获取kubeconfig
- 在KubeOperator界面下载集群的kubeconfig文件
mkdir -p ~/.kube cp kubeconfig.yaml ~/.kube/config
-
检查节点状态
kubectl get nodes -o wide # 应显示节点状态为Ready,且ARCH为arm64
-
部署测试应用
kubectl create deployment nginx --image=swr.cn-north-4.myhuaweicloud.com/arm64/nginx:alpine kubectl expose deployment nginx --port=80 kubectl get pods -o wide
五、常见问题处理
1. 镜像拉取失败
- 现象:Pod状态为
ImagePullBackOff
- 解决:
- 替换Deployment中的镜像为ARM64版本:
image: swr.cn-north-4.myhuaweicloud.com/arm64/nginx:alpine
- 手动拉取镜像并重新打标签:
docker pull arm64v8/nginx:alpine docker tag arm64v8/nginx:alpine nginx:alpine
- 替换Deployment中的镜像为ARM64版本:
2. Kubelet启动失败(架构不兼容)
- 现象:kubelet日志报错
exec format error
- 解决:
- 确认KubeOperator配置中Kubernetes版本为ARM64编译版本
- 手动替换二进制文件:
wget https://dl.k8s.io/v1.24.3/kubernetes-server-linux-arm64.tar.gz tar -xzvf kubernetes-server-linux-arm64.tar.gz cp kubernetes/server/bin/kube* /opt/kubeoperator/data/kubernetes/bin/
3. 网络插件异常
- 现象:Calico Pod无法启动
- 解决:
- 修改Calico DaemonSet的镜像地址:
kubectl edit daemonset calico-node -n kube-system # 替换image为:swr.cn-north-4.myhuaweicloud.com/calico-arm64/node:v3.24.1
- 修改Calico DaemonSet的镜像地址:
六、优化建议
-
使用ARM64专用镜像仓库
- 华为云SWR:
swr.cn-north-4.myhuaweicloud.com/arm64
- 阿里云ACR:
registry.cn-hangzhou.aliyuncs.com/arm64v8
- 华为云SWR:
-
启用本地存储
# 创建Local Volume Provisioner kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/sig-storage-local-static-provisioner/v2.5.0/deployment/kubernetes/arm64/
-
监控与日志
- 部署ARM兼容的监控套件(如KubeSphere Lite版):
kubectl apply -f https://github.com/kubesphere/ks-installer/releases/download/v3.3.2/kubesphere-installer.yaml --platform=linux/arm64
- 部署ARM兼容的监控套件(如KubeSphere Lite版):
总结
通过以上步骤,您可以在飞腾D2000+欧拉系统上成功部署单Master Kubernetes集群。关键点在于确保 所有组件(Kubernetes二进制文件、容器镜像)均为ARM64架构版本。若KubeOperator官方未提供ARM支持,可能需要手动调整部署脚本或等待社区适配。