Chapter 17. Installing a three-node cluster on AWS
In OpenShift Container Platform version 4.13, you can install a three-node cluster on Amazon Web Services (AWS). A three-node cluster consists of three control plane machines, which also act as compute machines. This type of cluster provides a smaller, more resource efficient cluster, for cluster administrators and developers to use for testing, development, and production.
You can install a three-node cluster using either installer-provisioned or user-provisioned infrastructure.
Deploying a three-node cluster using an AWS Marketplace image is not supported.
17.1. Configuring a three-node cluster
You configure a three-node cluster by setting the number of worker nodes to 0
in the install-config.yaml
file before deploying the cluster. Setting the number of worker nodes to 0
ensures that the control plane machines are schedulable. This allows application workloads to be scheduled to run from the control plane nodes.
Because application workloads run from control plane nodes, additional subscriptions are required, as the control plane nodes are considered to be compute nodes.
Prerequisites
-
You have an existing
install-config.yaml
file.
Procedure
Set the number of compute replicas to
0
in yourinstall-config.yaml
file, as shown in the followingcompute
stanza:compute: - name: worker platform: {} replicas: 0
If you are deploying a cluster with user-provisioned infrastructure:
-
After you create the Kubernetes manifest files, make sure that the
spec.mastersSchedulable
parameter is set totrue
incluster-scheduler-02-config.yml
file. You can locate this file in<installation_directory>/manifests
. For more information, see "Creating the Kubernetes manifest and Ignition config files" in "Installing a cluster on user-provisioned infrastructure in AWS by using CloudFormation templates". - Do not create additional worker nodes.
-
After you create the Kubernetes manifest files, make sure that the
Example cluster-scheduler-02-config.yml
file for a three-node cluster
apiVersion: config.openshift.io/v1 kind: Scheduler metadata: creationTimestamp: null name: cluster spec: mastersSchedulable: true policy: name: "" status: {}