HA Deployment
This section describes how to install openFuyao in high availability (HA) mode based on Kubernetes. The following uses openEuler 22.03 on the Arm64 architecture as an example. The installation procedure is the same for other supported operating systems and architectures.
Configuration Requirements
Node Resource Requirements
Table 1 Recommended resource configuration of the worker node
| vCPUs | Memory (GB) |
|---|---|
| 4 | 8 |
NOTE
When simultaneous multithreading (SMT) or hyper-threading is disabled, a vCPU is equivalent to a physical core. After SMT or hyper-threading is enabled, the following formula is used for calculating the number of vCPUs: Number of vCPUs = (Number of threads per core x Number of cores) x Number of sockets.
Table 2 Recommended resource configuration of the master node
| vCPUs | Memory (GB) | Number of Worker Nodes |
|---|---|---|
| 4 | 16 | 1–24 |
| 8 | 32 | 25–100 |
| 16 | 64 | 101–150 |
| 24 | 64 | 151–200 |
NOTE
- The required resource of the master node increases with the number of worker nodes.
- When SMT or hyper-threading is disabled, a vCPU is equivalent to a physical core. After SMT or hyper-threading is enabled, the following formula is used for calculating the number of vCPUs: Number of vCPUs = (Number of threads per core x Number of cores) x Number of sockets.
Node Configuration Requirements
- A host is available for performing the installation. It can be a node in the cluster or a host outside the cluster.
- All hosts can access the Internet.
- Root user login is available on all hosts.
Environment Preparation
Prepare four Linux computers running openEuler 22.03 and one virtual IP address.
Table 3 Environment information
| Host IP Address | Host Name | Operating System | Role |
|---|---|---|---|
| 192.168.0.5 | node4 | openEuler | Control plane |
| 192.168.0.6 | node5 | openEuler | Control plane |
| 192.168.0.7 | node6 | openEuler | Control plane |
| 192.168.0.8 | node7 | openEuler | Worker node |
- In this example, the virtual IP address is 192.168.0.50.
Procedure
-
Log in to the installation host as the root user.
-
Download the installation tool and installation script.
curl -sfL https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/installer/releases/download/v25.03/download.sh | bash -By default, the installation package of the 25.03 version is downloaded by running the preceding command. To download the installation package of another version, run the following command with VERSION set to the desired version:
NOTE
For details about how to verify the integrity of the installation package, see Installation Package Integrity Verification.export VERSION=x.y.z
curl -sfL https://openfuyao.obs.cn-north-4.myhuaweicloud.com/openFuyao/installer/releases/download/v25.03/download.sh | bash - -
Generate a cluster planning configuration file.
- Go to the installation package directory.
NOTE
Here uses openEuler 22.03 on the Arm64 architecture as an example. Adjust the path according to the actual situation.export INSTALLER_PACKAGE_PATH=fuyao-v25.03-openEuler-22.03-arm64
cd $INSTALLER_PACKAGE_PATH- Run the following command to generate a configuration file for an HA cluster:
./fuyao create cluster-config --ha- The following shows the content of the configuration file.
apiVersion: openfuyao.io/v1beta1
kind: cluster
metadata:
name: example-cluster
spec:
nodes:
masters:
- hostname: fuyao-master
user: root
ip: o.x.y.z
port: 22
privateKeyPath: /root/.ssh/id_rsa
removeTaint: true
labels:
- name: label-name
value: label-value
- hostname: fuyao-master
user: root
ip: o.x.y.z
port: 22
privateKeyPath: /root/.ssh/id_rsa
removeTaint: true
labels:
- name: label-name
value: label-value
- hostname: fuyao-master
user: root
ip: o.x.y.z
port: 22
privateKeyPath: /root/.ssh/id_rsa
removeTaint: true
labels:
- name: label-name
value: label-value
workers:
- hostname: fuyao-worker
user: root
ip: o.x.y.z
port: 22
privateKeyPath: /root/.ssh/id_rsa
labels:
- name: label-name
value: label-value
components:
- name: kube-vip
param:
- name: vip
value: 192.168.100.129
type: string
describe: VIP
- name: interface
value: eth0
type: string
describe: NIC
- name: registry
value: harbor.openfuyao.com/openfuyao
type: string
describe: Image path of the containerd configuration file -
Modify the cluster planning configuration file.
- Edit the cluster planning configuration file.
export CLUSTER_HA_CONFIG_FILE=example-cluster.yaml
vi $CLUSTER_HA_CONFIG_FILE-
Enter the node list information. The following is an example.
- Enter information about at least three master nodes. Enter information about zero or more worker nodes.
- hostname: name of a node in the cluster, which can be different from the actual host name.
- user: username for logging in to the node during deployment.
- ip: IP address of the node.
- port: port number used by SSH. The default value is 22.
- vip: virtual IP address required for HA deployment. It is used by all API servers on the master nodes in the cluster.
- interface: name of the NIC bound to the kube-vip.
- You are advised to enter the name of the NIC currently used by the host.
- The NIC names used by all master nodes in the cluster must be the same.
NOTE
In openFuyao v25.03, the ARP mode of kube-vip is used to deploy HA clusters by default.- Enter
ito enter the edit mode for modifications. After the modifications are complete, enter:wqto save the modifications and exit. The following shows the modified configuration file.
apiVersion: openfuyao.io/v1beta1
kind: cluster
metadata:
name: example-cluster
spec:
# Specify the nodes.
nodes:
# Master node configuration
masters:
# The hostname in the cluster can be different from the hostname of the host.
- hostname: node4 # Configuration item
user: root # Configuration item
ip: 192.168.0.5 # Configuration item
port: 22 # Configuration item
privateKeyPath: /root/.ssh/id_rsa # Configuration item (optional)
labels:
- name: node4 # Configuration item (optional)
value: master-01 # Configuration item (optional)
- hostname: node5 # Configuration item
user: root # Configuration item
ip: 192.168.0.6 # Configuration item
port: 22 # Configuration item
privateKeyPath: /root/.ssh/id_rsa # Configuration item (optional)
labels:
- name: node5 # Configuration item (optional)
value: master-02 # Configuration item (optional)
- hostname: node6 # Configuration item
user: root # Configuration item
ip: 192.168.0.7 # Configuration item
port: 22 # Configuration item
privateKeyPath: /root/.ssh/id_rsa # Configuration item (optional)
labels:
- name: node6 # Configuration item (optional)
value: master-03 # Configuration item (optional)
workers:
- hostname: node7 # Configuration item
user: root # Configuration item
ip: 192.168.0.8 # Configuration item
port: 22 # Configuration item
privateKeyPath: /root/.ssh/id_rsa # Configuration item (optional)
labels:
- name: node7 # Configuration item (optional)
value: worker-01 # Configuration item (optional)
components:
- name: kube-vip
param:
- name: vip
value: 192.168.0.50 # Configuration item
type: string
describe: VIP
- name: interface
value: eth0 # Configuration item
type: string
describe: NIC
- name: registry
value: harbor.openfuyao.com/openfuyao
type: string
describe:Image path of the containerd configuration file- If SSH key–based login is configured for nodes in the cluster during configuration and installation, make sure to configure SSH key–based authentication on the installation host in advance.
-
Perform the installation in the installation package directory.
./fuyao create cluster -f $CLUSTER_HA_CONFIG_FILEIf password-based login is configured for nodes in the cluster, make sure to enter the corresponding node passwords as prompted during the installation.
-
Verify the installation.
- After the automatic installation is complete, record the username and password for logging in to the openFuyao management plane.
- Check the information about all pods on the host. If all pods are in running state, the environment is ready.
kubectl get pod -ANOTE
- The installation is complete when all pods are in running state. The actual time may vary depending on actual network conditions.
- The openFuyao authentication and authorization mechanism uses self-signed keys. All authentication and authorization keys and configuration files are stored under
/etc/kubernetes/webhookon all master nodes. After the installation is complete, you may choose to remove the files in this path. However, if the files are removed and the API server is restarted, authentication will fail. - The components deployed using the installation and deployment tool are configured with default settings and are intended only for testing the openFuyao platform's functions. For a production environment, adjust the security configurations of Kubernetes, container runtime, and network plug-in components.
-
Log in to the openFuyao management plane.
Enter "https://login IP address of the management plane:web service port of openFuyao" in the address box of a browser, and enter the username and password to log in to the openFuyao management plane.
NOTE Changing the password is required upon the first login.
The default web service port of openFuyao is 31616.For details about the functions and usage of the openFuyao management plane, see User Guide.
Uninstallation
-
Log in to the installation host as the root user.
-
Run the following command to enter the installation package directory:
cd $INSTALLER_PACKAGE_PATHEdit the configuration file. The modifications to the configuration file should be consistent with those made during installation. Enter information about hostname, user, ip, port, and privateKeyPath for the master and worker nodes in the cluster.
vi $CLUSTER_HA_CONFIG_FILENOTE
If there are no changes to the nodes in the cluster, you can directly use the configuration file used during cluster installation to uninstall the cluster. -
Perform the uninstallation in the installation package directory.
NOTE
If multiple applications or extensions are installed in the environment through the application market, you are advised to uninstall them through the application management or extension management function. Otherwise, the uninstallation may be slow or fail../fuyao destroy cluster -f $CLUSTER_HA_CONFIG_FILE -
When
Successfully completed cluster destroyis displayed, the cluster is uninstalled.During the uninstallation, the logs generated during the installation and uninstallation are not removed. The logs are stored under
/var/log/fuyao-installer/. To remove these logs, run the following command:rm -rf /var/log/fuyao-installer/