为工作集群添加异构节点¶
本文介绍如何为 AMD 架构,操作系统为 CentOS 7.9 的工作集群添加 ARM 架构,操作系统为 Kylin v10 sp2 的工作节点
Note
本文仅针对离线模式下,使用 AI 算力中心平台所创建的工作集群进行异构节点的添加,不包括接入的集群。
前提条件¶
- 已经部署好一个 AI 算力中心全模式,并且火种节点还存活,部署参考文档离线安装 AI 算力中心商业版
- 已经通过 AI 算力中心平台创建好一个 AMD 架构,操作系统为 CentOS 7.9 的工作集群,创建参考文档创建工作集群
操作步骤¶
下载并导入离线包¶
以 ARM 架构、操作系统 Kylin v10 sp2 为例。
请确保已经登录到火种节点!并且之前部署 AI 算力中心时使用的 clusterConfig.yaml 文件还在。
离线镜像包¶
Note
可以在下载中心下载最新版本。请确保在容器管理 v0.31 及以上版本使用该能力,对应安装器 v0.21.0 及以上版本
下载完毕后解压离线包。此处我们下载 arm64 架构的离线包:
ISO 离线包(Kylin v10 sp2)¶
CPU 架构 | 操作系统版本 | 下载地址 |
---|---|---|
ARM64 | Kylin Linux Advanced Server release V10 (Sword) SP2 | 申请地址:https://www.kylinos.cn/support/trial.html |
Note
麒麟操作系统需要提供个人信息才能下载使用,下载时请选择 V10 (Sword) SP2。
osPackage 离线包 (Kylin v10 sp2)¶
其中 Kubean 提供了不同操作系统的osPackage 离线包,可以前往 https://github.com/kubean-io/kubean/releases 查看。
操作系统版本 | 下载地址 |
---|---|
Kylin Linux Advanced Server release V10 (Sword) SP2 | https://github.com/kubean-io/kubean/releases/download/v0.18.5/os-pkgs-kylin-v10sp2-v0.18.5.tar.gz |
Note
osPackage 离线包的具体对应版本请查看离线镜像包中 offline/sample/clusterConfig.yaml 中对应的 kubean 版本
导入离线包至火种节点¶
执行 import-artifact 命令:
./offline/dce5-installer import-artifact -c clusterConfig.yaml \
--offline-path=/root/offline \
--iso-path=/root/Kylin-Server-10-SP2-aarch64-Release-Build09-20210524.iso \
--os-pkgs-path=/root/os-pkgs-kylin-v10sp2-v0.18.5.tar.gz
Note
参数说明:
- -c clusterConfig.yaml 指定之前部署 AI 算力中心.0 时使用的 clusterConfig.yaml 文件
- --offline-path 指定下载的离线镜像包文件地址
- --iso-path 指定下载的 ISO 操作系统镜像文件地址
- --os-pkgs-path 指定下载的 osPackage 离线包文件地址
导入命令执行成功后,会将离线包上传到火种节点的 Minio 中。
添加异构工作节点¶
请确保已经登录到 AI 算力中心管理集群的管理节点上。
修改主机清单文件¶
主机清单文件示例:
apiVersion: v1
kind: ConfigMap
metadata:
name: ${cluster-name}-hosts-conf
namespace: kubean-system
data:
hosts.yml: |
all:
children:
etcd:
hosts:
centos-master:
k8s_cluster:
children:
kube_control_plane:
kube_node:
kube_control_plane:
hosts:
centos-master:
kube_node:
hosts:
centos-master:
hosts:
centos-master:
ip: 10.5.10.183
access_ip: 10.5.10.183
ansible_host: 10.5.10.183
ansible_connection: ssh
ansible_user: root
ansible_ssh_pass: ******
ansible_password: ******
ansible_become_password: ******
apiVersion: v1
kind: ConfigMap
metadata:
name: ${cluster-name}-hosts-conf
namespace: kubean-system
data:
hosts.yml: |
all:
hosts:
centos-master:
ip: 10.5.10.183
access_ip: 10.5.10.183
ansible_host: 10.5.10.183
ansible_connection: ssh
ansible_user: root
ansible_ssh_pass: ******
ansible_password: ******
ansible_become_password: ******
# 添加异构节点信息
kylin-worker:
ip: 10.5.10.181
access_ip: 10.5.10.181
ansible_host: 10.5.10.181
ansible_connection: ssh
ansible_user: root
ansible_ssh_pass: ******
ansible_password: ******
ansible_become_password: ******
children:
kube_control_plane:
hosts:
- centos-master
kube_node:
hosts:
- centos-master
- kylin-worker # 添加新增的异构节点名称
etcd:
hosts:
- centos-master
k8s_cluster:
children:
- kube_control_plane
- kube_node
按照上述的配置注释,添加新增的工作节点信息。
cluster-name 为工作集群的名称,通过容器管理创建集群时会默认生成。
通过 ClusterOperation.yml 新增扩容任务¶
示例:
apiVersion: kubean.io/v1alpha1
kind: ClusterOperation
metadata:
name: add-worker-node
spec:
cluster: ${cluster-name} # 指定 cluster name
image: 10.5.14.30/ghcr.m.daocloud.io/kubean-io/spray-job:v0.18.5
actionType: playbook
action: scale.yml
extraArgs: --limit=kylin-worker
preHook:
- actionType: playbook
action: ping.yml
- actionType: playbook
action: disable-firewalld.yml
- actionType: playbook
action: enable-repo.yml
extraArgs: |
-e "{repo_list: ["http://10.5.14.30:9000/kubean/kylin-iso/\$releasever/sp2/os/\$basearch","http://10.5.14.30:9000/kubean/kylin/\$releasever/sp2/os/\$basearch"]}" --limit=kylin-worker
postHook:
- actionType: playbook
action: cluster-info.yml
Note
- spec.image 镜像地址要与之前执行部署时的 job 其内镜像保持一致
- spec.action 设置为 scale.yml
- spec.extraArgs 设置为 --limit=g-worker
- spec.preHook 中的 enable-repo.yml 剧本参数,要填写相关OS的正确的 repo_list
按照上述的配置,创建并部署 join-node-ops.yaml:
检查任务执行状态¶
了解缩容任务执行进度,可查看该 Pod 日志。
前往界面验证¶
-
前往 容器管理 -> 集群 -> 节点管理
-
点击新增的节点,查看详情