# Deploy a K8s Cluster from Scratch to DCE 5.0 Community This article covers the installation of DCE 5.0 Community from scratch in a 3-node cluster, including details on Kubernetes cluster, dependencies, networking, storage, and more considerations. !!! note The installation methods described in this article may differ from the latest version due to rapid version iterations. Please refer to the installation instructions in the product documentation for the most up-to-date information. ## Cluster Planning The example uses 3 UCloud VM instances with the following configurations: 8 cores and 16GB RAM. | Role | Hostname | Operating System | IP Address | Configuration | | -------------- | ------------ | ---------------- | ---------- | ------------------------ | | control-plane | k8s-master01 | CentOS 8.3 | 10.23.* | 8 cores, 16GB RAM, 200GB system disk | | worker-node | k8s-work01 | CentOS 8.3 | 10.23.* | 8 cores, 16GB RAM, 200GB system disk | | worker-node | k8s-work02 | CentOS 8.3 | 10.23.* | 8 cores, 16GB RAM, 200GB system disk | The components used in this example are: - Kubernetes: 1.25.8 - CRI: containerd (as Docker is no longer directly supported in newer versions of Kubernetes) - CNI: Calico - StorageClass: local-path - DCE 5.0 Community: v0.16.0 ## Prepare Nodes The following operations are necessary before installation. ### Node Configuration Perform the following steps on each of the 3 nodes. 1. Configure the hostname. Modify the hostname to avoid hostname conflicts. ```bash hostnamectl set-hostname k8s-master01 hostnamectl set-hostname k8s-work01 hostnamectl set-hostname k8s-work02 ``` It is recommended to exit the SSH session after modifying the hostname and then log in again to display the new hostname. 2. Disable Swap ```bash swapoff -a sed -i '/ swap / s/^/#/' /etc/fstab ``` 3. Disable Firewall (optional) ```bash systemctl stop firewalld systemctl disable firewalld ``` 4. Set kernel parameters and enable iptables to handle bridged traffic Load the `br_netfilter` module: ```bash cat <