How to Add Heterogeneous Nodes to a Working Cluster¶
This page explains how to add ARM architecture nodes with Kylin v10 sp2 operating system to an AMD architecture working cluster with CentOS 7.9 operating system.
Note
This page is only applicable to adding heterogeneous nodes to a working cluster created using the DCE 5.0 platform in offline mode, excluding connected clusters.
Prerequisites¶
- A DCE 5.0 Full Mode deployment has been successfully completed, and the bootstrap node is still alive. Refer to the documentation Offline Installation of DCE 5.0 Enterprise for the deployment process.
- A working cluster with AMD architecture and CentOS 7.9 operating system has been created through the DCE 5.0 platform. Refer to the documentation Creating a Working Cluster for the creation process.
Procedure¶
Download and Import Offline Packages¶
Take ARM architecture and Kylin v10 sp2 operating system as examples.
Make sure you are logged into the bootstrap node! Also, make sure the clusterConfig.yaml file used during the DCE 5.0 deployment is available.
Offline Image Package¶
Note
The latest version can be downloaded from the Download Center.
CPU Architecture | Version | Download Link |
---|---|---|
AMD64 | v0.18.0 | https://qiniu-download-public.daocloud.io/DaoCloud_Enterprise/dce5/offline-v0.18.0-amd64.tar |
ARM64 | v0.18.0 | https://qiniu-download-public.daocloud.io/DaoCloud_Enterprise/dce5/offline-v0.18.0-arm64.tar |
After downloading, extract the offline package:
ISO Offline Package (Kylin v10 sp2)¶
CPU Architecture | Operating System Version | Download Link |
---|---|---|
ARM64 | Kylin Linux Advanced Server release V10 (Sword) SP2 | https://www.kylinos.cn/support/trial.html |
Note
Kylin operating system requires personal information to be provided for downloading and usage. Select V10 (Sword) SP2 when downloading.
osPackage Offline Package (Kylin v10 sp2)¶
The Kubean project provides osPackage offline packages for different operating systems. Visit https://github.com/kubean-io/kubean/releases to view the available packages.
Operating System Version | Download Link |
---|---|
Kylin Linux Advanced Server release V10 (Sword) SP2 | https://github.com/kubean-io/kubean/releases/download/v0.16.3/os-pkgs-kylinv10-v0.16.3.tar.gz |
Note
Check the specific version of the osPackage offline package in the offline/sample/clusterConfig.yaml file of the offline image package.
Import Offline Packages to the Bootstrap Node¶
Run the import-artifact command:
./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-kylinv10-v0.7.4.tar.gz
Note
Parameter Explanation:
- -c clusterConfig.yaml specifies the clusterConfig.yaml file used during the previous DCE 5.0 deployment.
- --offline-path specifies the file path of the downloaded offline image package.
- --iso-path specifies the file path of the downloaded ISO operating system image.
- --os-pkgs-path specifies the file path of the downloaded osPackage offline package.
After a successful import command execution, the offline package will be uploaded to Minio on the bootstrap node.
Add Heterogeneous Worker Nodes¶
Make sure you are logged into the management node of the Global cluster in DCE 5.0.
Modify the Host Manifest¶
Here is an example of host manifest:
apiVersion: v1
kind: ConfigMap
metadata:
name: ${cluster-name}-hosts-conf
namespace: kubean-system
data:
hosts.yml: |
all:
hosts:
centos-master:
ip: 10.5.14.122
access_ip: 10.5.14.122
ansible_host: 10.5.14.122
ansible_connection: ssh
ansible_user: root
ansible_ssh_pass: ******
children:
kube_control_plane:
hosts:
centos-master:
kube_node:
hosts:
centos-master:
etcd:
hosts:
centos-master:
k8s_cluster:
children:
kube_control_plane:
kube_node:
apiVersion: v1
kind: ConfigMap
metadata:
name: ${cluster-name}-hosts-conf
namespace: kubean-system
data:
hosts.yml: |
all:
hosts:
centos-master:
ip: 10.5.14.122
access_ip: 10.5.14.122
ansible_host: 10.5.14.122
ansible_connection: ssh
ansible_user: root
ansible_ssh_pass: ******
# Add heterogeneous node information
kylin-worker:
ip: 10.5.10.220
access_ip: 10.5.10.220
ansible_host: 10.5.10.220
ansible_connection: ssh
ansible_user: root
ansible_ssh_pass: dangerous@2022
children:
kube_control_plane:
hosts:
centos-master:
kube_node:
hosts:
centos-master:
kylin-worker: # Add the name of heterogeneous node
etcd:
hosts:
centos-master:
k8s_cluster:
children:
kube_control_plane:
kube_node:
To add information about the newly added worker nodes according to the above comments:
Add Expansion Tasks through ClusterOperation.yml¶
Example:
apiVersion: kubean.io/v1alpha1
kind: ClusterOperation
metadata:
name: add-worker-node
spec:
cluster: ${cluster-name} # Specify cluster name
image: ghcr.m.daocloud.io/kubean-io/spray-job:v0.5.0
backoffLimit: 0
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/os/\$basearch","http://10.5.14.30:9000/kubean/kylin/\$releasever/os/\$basearch"]}"
postHook:
- actionType: playbook
action: cluster-info.yml
Note
- Ensure the spec.image image address matches the image used in the previous deployment job.
- Set spec.action to scale.yml .
- Set spec.extraArgs to --limit=g-worker .
- Fill in the correct repo_list parameter for the relevant OS in spec.preHook 's enable-repo.yml script.
To create and deploy join-node-ops.yaml according to the above configuration:
Check the status of the task execution¶
To check the progress of the scaling task, you can view the logs of the corresponding pod.
Verify in the User Interface¶
-
Go to Container Management -> Clusters -> Nodes .
-
Click the newly added node to view details.