Create Multi-Master Bare Metal Cluster
Platform9 Managed Kubernetes supports creation of highly available, multi-master Kubernetes clusters in a bare metal environment.
Before you can create a cluster, you must ensure that
- the infrastructure network has been setup correctly.
- the nodes that are to be a part of the cluster have been added and authorized.
A highly available cluster is composed of at least 3 master nodes, each running a member of the etcd distributed database and all the Kubernetes master components (API, controller manager and scheduler). We choose an odd number of master nodes so that it is possible to establish quorum within the etcd nodes.
Follow the steps given below to create a Kubernetes cluster for a bare metal environment using with Platform9 Clarity UI.
- Click Infrastructure > Clusters > Add Cluster.
Select the Deploy cluster via agent install check box.
Enter the name for the cluster in Name.
Select one or more nodes that would function as master nodes. If you want to create a multi-master cluster, select at least three nodes that would function as master nodes.
Select the Disable Workloads on Master Nodes check box, if you wish to disable deployment of workloads on master nodes. This is an optional, but recommended step.
Select the nodes that would function as worker nodes.
- Enter the advanced configuration details, based on the table given below.
|Virtual IP address for cluster||The IP address with which the user accesses the cluster or the high availability floating IP address.|
|Physical Interface for Virtual IP Association||The network interface to which the virtual IP gets associated. Ensure that the virtual IP specified above is accessible on this network interface, and that all master nodes use the same interface name for the interface to be associated with the virtual IP|
|API FQDN||The FQDN (DNS Name) that is to be used to access the Kubernetes cluster API server from outside of the cluster|
|Containers CIDR||The IP range that Kubernetes uses to configure the Pods (Docker containers) deployed by Kubernetes|
|Services CIDR||The IP range that Kubernetes uses to configure services deployed by Kubernetes|
|Privileged||Select the check box to enable the cluster to run privileged containers. Note that being able to run privileged containers within the cluster is a prerequisite if you wish to enable service type loadbalancer using MetalLB.|
|Advanced API Configuration||Select the check box to configure the APIs to be used by the cluster. If you do not have adequate knowledge of Kubernetes APIs, it is recommended to avoid selecting this check box. When this check box is not selected, the GA and beta APIs (that is the stable APIs) for the currently installed Kubernetes version are enabled.|
|Default API groups and versions||This option is visible only if you select the Advanced API Configuration check box. Select the Default API groups and versions option to enable on the cluster, the default APIs based on the Kubernetes installation in your environment|
|All API groups and versions||This option is visible only if you select the Advanced API Configuration check box. Select All API groups and versions option to enable on the cluster, all alpha, beta, and GA versions of Kubernetes APIs that have been published till date.|
|Custom API groups and versions||This option is visible only if you select the Advanced API Configuration check box. Select Custom API groups and versions option to specify one or more API versions that you wish to enable and/or disable. Enter the API versions in the text area following the Custom API groups and versions option.
For example, to enable Kubernetes v1 APIs, enter the expression,
Select the Enable Application Catalog check box, if you want to deploy applications using the Kubernetes package manager, Helm, on the cluster. This is an optional step.
Review the cluster configuration, and then click Create Cluster.
The multi-master cluster is now created in the bare metal environment.
You can now deploy your applications on the highly available multi-master Kubernetes cluster.
You can also create multi-master Kubernetes clusters through the Platform9 Managed Kubernetes API. Refer to the Platform9 Managed Kubernetes API documentation (accessible through Platform9 Clarity UI) for details.