-
Notifications
You must be signed in to change notification settings - Fork 1.9k
bug 1738456 setting the control plane as unschedulable #17016
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,14 +1,26 @@ | ||
| // Module included in the following assemblies: | ||
| // | ||
| // * installing/installing_aws_user_infra/installing-aws-user-infra.adoc | ||
| // * installing/installing_restricted_networks/installing-restricted-networks-aws.adoc | ||
| // * installing/installing_bare_metal/installing-bare-metal.adoc | ||
| // * installing/installing_gcp_user_infra/installing-gcp-user-infra.adoc | ||
| // * installing/installing_restricted_networks/installing-restricted-networks-aws.adoc | ||
| // * installing/installing_restricted_networks/installing-restricted-networks-bare-metal.adoc | ||
| // * installing/installing_restricted_networks/installing-restricted-networks-vsphere.adoc | ||
| // * installing/installing_vsphere/installing-vsphere.adoc | ||
|
|
||
|
|
||
| ifeval::["{context}" == "installing-aws-user-infra"] | ||
| :aws: | ||
| endif::[] | ||
| ifeval::["{context}" == "installing-restricted-networks-aws"] | ||
| :aws: | ||
| :restricted: | ||
| endif::[] | ||
| ifeval::["{context}" == "installing-aws-user-infra"] | ||
| :aws: | ||
| ifeval::["{context}" == "installing-restricted-networks-vsphere"] | ||
| :restricted: | ||
| endif::[] | ||
| ifeval::["{context}" == "installing-restricted-networks-bare-metal"] | ||
| :restricted: | ||
| endif::[] | ||
| ifeval::["{context}" == "installing-gcp-user-infra"] | ||
| :gcp: | ||
|
|
@@ -17,9 +29,7 @@ endif::[] | |
| [id="installation-user-infra-generate-k8s-manifest-ignition_{context}"] | ||
| = Creating the Kubernetes manifest and Ignition config files | ||
|
|
||
| Because you must manually start the cluster machines, you must generate the | ||
| Kubernetes manifest and Ignition config files that the cluster needs to make its | ||
| machines. | ||
| Because you must modify some cluster definition files and manually start the cluster machines, you must generate the Kubernetes manifest and Ignition config files that the cluster needs to make its machines. | ||
|
|
||
| [IMPORTANT] | ||
| ==== | ||
|
|
@@ -53,47 +63,47 @@ contains the `install-config.yaml` file you created. | |
| Because you create your own compute machines later in the installation process, | ||
| you can safely ignore this warning. | ||
|
|
||
| ifdef::aws,gcp[] | ||
| . Remove the Kubernetes manifest files that define the control plane machines: | ||
| + | ||
| ---- | ||
| $ rm -f openshift/99_openshift-cluster-api_master-machines-*.yaml | ||
| ---- | ||
| + | ||
| By removing these files, you prevent the cluster from automatically generating control plane machines. | ||
|
|
||
| ifdef::aws[] | ||
| . Remove the Kubernetes manifest files that define the worker machines: | ||
| + | ||
| ---- | ||
| $ rm -f openshift/99_openshift-cluster-api_worker-machineset-* | ||
| ---- | ||
| + | ||
| Because you create and manage the worker machines yourself, you do not need | ||
| to initialize these machines. | ||
| endif::[] | ||
| endif::aws,gcp[] | ||
|
|
||
| ifdef::gcp[] | ||
| . Optional: If you do not want the cluster to provision compute machines, remove | ||
| the Kubernetes manifest files that define the worker machines: | ||
| endif::gcp[] | ||
| ifdef::aws[] | ||
| . Remove the Kubernetes manifest files that define the worker machines: | ||
| endif::aws[] | ||
| ifdef::aws,gcp[] | ||
| + | ||
| ---- | ||
| $ rm -f openshift/99_openshift-cluster-api_worker-machineset-*.yaml | ||
| ---- | ||
| + | ||
| Because you create and manage the worker machines yourself, you do not need | ||
| to initialize these machines. | ||
| endif::aws,gcp[] | ||
|
|
||
| . Optional: Currently, emptying the compute pools makes control plane machines | ||
| schedulable. However, due to a | ||
| link:https://github.com/kubernetes/kubernetes/issues/65618[Kubernetes limitation], | ||
| router Pods running on control plane machines will not be reachable by the | ||
| ingress load balancer. | ||
| . Modify the `manifests/cluster-scheduler-02-config.yml` Kubernetes manifest file to prevent Pods from being scheduled on the control plane machines: | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @jianlinliu, in the original GCP PR, this was marked as an optional step. Will you please double-confirm that we always need to change this setting on GCP? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I checked upstream doc:
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Per my test result, I do not think it is a optional step when we are guiding user set worker replica to 0. Now I think everywhere keep consistent now, it is a MUST (from comments in bugzilla).
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @adellape, FYI ^ |
||
| + | ||
| If you emptied the compute note in an earlier step, ensure the | ||
| `mastersSchedulable` parameter is set to `false` in the | ||
| `manifests/cluster-scheduler-02-config.yml` scheduler configuration file to keep | ||
| router Pods and other workloads off the control plane machines. | ||
| -- | ||
| .. Open the `manifests/cluster-scheduler-02-config.yml` file. | ||
| .. Locate the `mastersSchedulable` parameter and set its value to `False`. | ||
| .. Save and exit the file. | ||
| -- | ||
| + | ||
| [NOTE] | ||
| ==== | ||
| Currently, due to a link:https://github.com/kubernetes/kubernetes/issues/65618[Kubernetes limitation], router Pods running on control plane machines will not be reachable by the ingress load balancer. This step might not be required in a future minor version of {product-title}. | ||
| ==== | ||
|
|
||
| ifdef::gcp[] | ||
| . Optional: If you do not want | ||
| link:https://github.com/openshift/cluster-ingress-operator[the Ingress Operator] | ||
| to create DNS records on your behalf, remove the `privateZone` and `publicZone` | ||
|
|
@@ -117,7 +127,7 @@ status: {} | |
| <1> Remove these sections completely. | ||
| + | ||
| If you do so, you must add ingress DNS records manually in a later step. | ||
| endif::[] | ||
| endif::gcp[] | ||
|
|
||
| . Obtain the Ignition config files: | ||
| + | ||
|
|
@@ -140,6 +150,7 @@ The following files are generated in the directory: | |
| ---- | ||
|
|
||
| ifeval::["{context}" == "installing-restricted-networks-aws"] | ||
| :!aws: | ||
| :!restricted: | ||
| endif::[] | ||
| ifeval::["{context}" == "installing-aws-user-infra"] | ||
|
|
@@ -148,3 +159,9 @@ endif::[] | |
| ifeval::["{context}" == "installing-gcp-user-infra"] | ||
| :!gcp: | ||
| endif::[] | ||
| ifeval::["{context}" == "installing-restricted-networks-vsphere"] | ||
| :!restricted: | ||
| endif::[] | ||
| ifeval::["{context}" == "installing-restricted-networks-bare-metal"] | ||
| :!restricted: | ||
| endif::[] | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jianlinliu, we didn't have a step to remove these manifest files for vSphere or bare metal.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After I took another look at the files that I'd need to change to apply this step to vSphere and bare metal, I realized that it would be easier to do it on this PR. For these methods, the 4.1 steps (eg vSphere) skip generating the manifests and just have you generate the Ignition configs. With this change, you need to generate the manifests too (proposed 4.2 change).
The way the conditionals are set up, the 4.2 docs still won't make you remove the control plane or compute manifests.