1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-05 12:46:18 +01:00
Files
openshift-docs/modules/installation-three-node-cluster-cloud-provider.adoc
2024-09-25 20:00:47 +00:00

122 lines
4.6 KiB
Plaintext

// Module included in the following assemblies:
// * installing/installing_aws/installing-aws-three-node.adoc
// * installing/installing_azure/installing-azure-three-node.adoc
// * installing/installing_gcp/installing-gcp-three-node.adoc
// * installing/installing_vsphere/installing-vsphere-three-node.adoc
ifeval::["{context}" == "installing-aws-three-node"]
:aws:
endif::[]
ifeval::["{context}" == "installing-azure-three-node"]
:azure:
endif::[]
ifeval::["{context}" == "installing-gcp-three-node"]
:gcp:
endif::[]
ifeval::["{context}" == "installing-vsphere-three-node"]
:vsphere:
endif::[]
ifeval::["{context}" == "installing-nutanix-three-node"]
:nutanix:
endif::[]
ifeval::["{context}" == "installing-openstack-three-node"]
:openstack:
endif::[]
:_mod-docs-content-type: PROCEDURE
[id="installation-three-node-cluster_{context}"]
= 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.
[NOTE]
====
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
ifdef::nutanix,openstack[]
* Set the number of compute replicas to `0` in your `install-config.yaml` file, as shown in the following `compute` stanza:
endif::nutanix,openstack[]
ifndef::nutanix,openstack[]
. Set the number of compute replicas to `0` in your `install-config.yaml` file, as shown in the following `compute` stanza:
endif::nutanix,openstack[]
+
.Example `install-config.yaml` file for a three-node cluster
[source,yaml]
----
apiVersion: v1
baseDomain: example.com
compute:
- name: worker
platform: {}
replicas: 0
# ...
----
ifndef::vsphere,nutanix,openstack[]
. 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 to `true` in `cluster-scheduler-02-config.yml` file. You can locate this file in `<installation_directory>/manifests`.
ifdef::aws[]
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".
endif::aws[]
ifdef::azure[]
For more information, see "Creating the Kubernetes manifest and Ignition config files" in "Installing a cluster on Azure using ARM templates".
endif::azure[]
ifdef::gcp[]
For more information, see "Creating the Kubernetes manifest and Ignition config files" in "Installing a cluster on user-provisioned infrastructure in GCP by using Deployment Manager templates".
endif::gcp[]
** Do not create additional worker nodes.
endif::vsphere,nutanix,openstack[]
ifdef::vsphere[]
. If you are deploying a cluster with user-provisioned infrastructure:
** Configure your application ingress load balancer to route HTTP and HTTPS traffic to the control plane nodes. In a three-node cluster, the Ingress Controller pods run on the control plane nodes. For more information, see the "Load balancing requirements for user-provisioned infrastructure".
** After you create the Kubernetes manifest files, make sure that the `spec.mastersSchedulable` parameter is set to `true` in `cluster-scheduler-02-config.yml` file. You can locate this file in `<installation_directory>/manifests`.
ifdef::vsphere[]
For more information, see "Creating the Kubernetes manifest and Ignition config files" in "Installing a cluster on vSphere with user-provisioned infrastructure".
endif::vsphere[]
** Do not create additional worker nodes.
endif::vsphere[]
ifndef::nutanix,openstack[]
.Example `cluster-scheduler-02-config.yml` file for a three-node cluster
[source,yaml]
----
apiVersion: config.openshift.io/v1
kind: Scheduler
metadata:
creationTimestamp: null
name: cluster
spec:
mastersSchedulable: true
policy:
name: ""
status: {}
----
endif::nutanix,openstack[]
ifeval::["{context}" == "installing-aws-three-node"]
:!aws:
endif::[]
ifeval::["{context}" == "installing-azure-three-node"]
:!azure:
endif::[]
ifeval::["{context}" == "installing-gcp-three-node"]
:!gcp:
endif::[]
ifeval::["{context}" == "installing-vsphere-three-node"]
:!vsphere:
endif::[]
ifeval::["{context}" == "installing-nutanix-three-node"]
:!nutanix:
endif::[]
ifeval::["{context}" == "installing-openstack-three-node"]
:!openstack:
endif::[]