Create Cluster
If you are new to Kubernetes, we recommend you to create a new VPC and subnet in advance to isolate it from the production environment. Before creating a cluster, you need to understand the basic concepts in Kubernetes such as Node CIDR, Pod CIDR, Service CIDR, etc., click to view.
1. Configuring Cluster Network Information
Log in to the Private Network VPC page of the console to plan the VPC network and subnet segments. In the UK8S cluster, the Pod is in the same VPC subnet as its Node, so the size of the VPC subnet determines the maximum number of Pods that can be created in the cluster. For details, please check Kubernetes Network.
2. Create a Dedicated UK8S Cluster
The dedicated version of the UK8S cluster needs to create three Master nodes by default to ensure high availability in the production environment. Log in to the UK8S service management console and click the Create Cluster button on the cluster list page and start creating a dedicated cluster.
Basic Configuration
Configuration Item | Description |
---|---|
VPC | Set the VPC network where the nodes and Pods are located |
Subnet | Set the subnet where the initial nodes and Pods are located. Nodes in the cluster can be set in different subnets of the same VPC |
Service CIDR | Set the cluster Service segment. The Service segment cannot duplicate with the node segment |
Node OS | Set the UHost image for the cluster node. You can choose a custom image, but it must be based on the UK8S standard image. Please refer to Creating Custom Images. If you want to use GPU nodes, please refer to n GPU Node Description. For CPU machines, you can choose from Centos 7.6 ,Ubuntu 20.04 ,Anolis 8.6 images. |
Master/Node Node Configuration
The suggested Master configuration for production environment can be found in Cluster Node Configuration Recommendation.
Configuration Item | Description |
---|---|
Allocation Mode | The Availability Zone where the Master/Node nodes are located. In regions with multiple availability zones, you can choose Multi-Availability Zone Mode. It is recommended to distribute Master nodes in multiple zones when creating a cluster. |
Node Configuration | Includes type, CPU platform, CPU, memory, system disk type, data disk type, data disk size, etc. For details, see Machine and CPU Platform. The data disk of the Node will be mounted to the /data directory. The Docker engine you installed in the cluster Node is installed in the /data directory. If the configuration of the Node includes a data disk when creating, manually deleting the data disk will result in the Node being unavailable. If you do not need a data disk, you can delete it when creating, and the Docker engine will be installed in the /data directory of the system disk. |
Hardware Isolation Group | The Master nodes are located in the same hardware isolation group by default, which strictly ensures that each cloud host within the group falls on different physical machines. Each isolation group can add up to 7 cloud hosts in a single availability zone. For details, see Hardware Isolation Group. |
MaxPods | The maximum number of Pods a single Node node can support. |
Label | Labels are key-value pairs attached to Kubernetes objects, intended to specify identifying attributes of objects that are meaningful and relevant to users.For details, see the official Kubernetes document: Labels and Operators (opens in a new tab). Rules for filling in: * Label key: Must be unique, composed of an optional prefix and a name. The prefix is optional, must be a DNS subdomain, and does not allow subdomains of kubernetes.io or k8s.io. Cannot exceed 253 characters, only allows to start and end with [a-z0-9A-Z] , separated by '.'; Name is required, less than or equal to 63 characters, characters only allow to start and end with [a-z0-9A-Z] , with hyphens - , underscores _ , and dots . in between. * Label Value: Can not be empty, less than or equal to 63 characters, characters only allow to start and end with [a-z0-9A-Z] , includes hyphens - , underscores _ , dots . in between. |
Taint | Taint allows nodes to reject a specific type of Pod. Tolerance is applied to the Pod, allowing (but not requiring) the Pod to be scheduled on nodes with matching taints. Taints and toleration work together to prevent Pods from being assigned to inappropriate nodes. Each node can apply one or more taints, which means that Pods that cannot tolerate these taints will not be accepted by the node. |
For details, see the official Kubernetes document: Taint and Toleration (opens in a new tab) | |
Node Number | The initial cluster Node node number is limited to 1 - 10 machines. |
Management Settings
Configuration Item | Description |
---|---|
Cluster Name | UK8S cluster name, can be changed later |
External APIServer | The APIServer is exposed through the ULB load balancing service. The internal network Master ULB is generated automatically when the cluster is created. If the external APIServer is enabled, an external ULB service will be automatically purchased, with a starting bandwidth of 1MB. The naming rule of the APIServer service ULB is uk8s-xxxxxxxx-master-ulb4 (Internal network ULB)/ uk8s-xxxxxxxx-master-ulb4-external (external ULB), deletion will result in the cluster APIServer service being unavailable. |
K8S Version | UK8S cluster version |
kube-proxy | The default option is iptables. Please refer to kube-proxy Mode Selection for selection standards and switching methods. |
Container Runtime | The default for K8S 1.19 and above versions is containerd. For nodes using containerd runtime, do not install docker separately to avoid configuration conflict and node unavailability. |
Administrator Password | Applicable to all Master and Node nodes created this time. |
Cluster Local Domain Name | The default value is cluster.local. Users can customize the suffix. The domain name consists of two segments, each segment does not exceed 63 characters, and only uppercase and lowercase letters and numbers can be used, and cannot be empty. |
Custom Data | Refers to the configuration script that the system automatically runs when the host boots for the first time or every time. This script can be passed into the metadata server by the console API and obtained by the cloud-init program inside the host. The script complies with the standard CloudInit syntax. This script will block the UK8S installation script, that is, only after this script is executed, the installation of K8S related components such as Kubelet, Scheduler, etc. will begin. |
Initialization Script | This script is executed only once after UK8S starts, and is executed after the installation of K8S related components is successful. It complies with the standard shell syntax, and the execution result will be stored in the /var/log/message/ directory. |
The cluster initialization time is about 10-15 minutes. After successful creation, you can access and manage the cluster by directly logging into the Master node. Or you can manage the cluster through the APIServer on the cloud host under the same VPC.