From ed9ea9c4f26bf225d3359d86b519db29d22cc9d7 Mon Sep 17 00:00:00 2001 From: "Lubomir I. Ivanov" Date: Thu, 19 May 2022 22:09:27 +0300 Subject: [PATCH] kubeadm: apply changes around "master" taint for 1.25 The "master" taint is no longer applied on control plane nodes by kubeadm 1.25. Remove mentions of the taint from the documentation: - implementation details - create a kubeadm cluster - known labels / taints --- .../labels-annotations-taints/_index.md | 17 +++-------------- .../kubeadm/implementation-details.md | 8 +++----- .../tools/kubeadm/create-cluster-kubeadm.md | 13 ++++--------- .../tools/kubeadm/troubleshooting-kubeadm.md | 2 +- 4 files changed, 11 insertions(+), 29 deletions(-) diff --git a/content/en/docs/reference/labels-annotations-taints/_index.md b/content/en/docs/reference/labels-annotations-taints/_index.md index e68cb668d3..c6baa12557 100644 --- a/content/en/docs/reference/labels-annotations-taints/_index.md +++ b/content/en/docs/reference/labels-annotations-taints/_index.md @@ -493,9 +493,9 @@ The kubelet checks D-value of the size of `/proc/sys/kernel/pid_max` and the PID Example: `node.kubernetes.io/out-of-service:NoExecute` -A user can manually add the taint to a Node marking it out-of-service. If the `NodeOutOfServiceVolumeDetach` +A user can manually add the taint to a Node marking it out-of-service. If the `NodeOutOfServiceVolumeDetach` [feature gate](/docs/reference/command-line-tools-reference/feature-gates/) is enabled on -`kube-controller-manager`, and a Node is marked out-of-service with this taint, the pods on the node will be forcefully deleted if there are no matching tolerations on it and volume detach operations for the pods terminating on the node will happen immediately. This allows the Pods on the out-of-service node to recover quickly on a different node. +`kube-controller-manager`, and a Node is marked out-of-service with this taint, the pods on the node will be forcefully deleted if there are no matching tolerations on it and volume detach operations for the pods terminating on the node will happen immediately. This allows the Pods on the out-of-service node to recover quickly on a different node. {{< caution >}} Refer to @@ -627,7 +627,7 @@ This determines whether a user can modify the mode of the source volume when a {{< glossary_tooltip text="PersistentVolumeClaim" term_id="persistent-volume-claim" >}} is being created from a VolumeSnapshot. -Refer to [Converting the volume mode of a Snapshot](/docs/concepts/storage/volume-snapshots/#convert-volume-mode) +Refer to [Converting the volume mode of a Snapshot](/docs/concepts/storage/volume-snapshots/#convert-volume-mode) and the [Kubernetes CSI Developer Documentation](https://kubernetes-csi.github.io/docs/) for more information. ## Annotations used for audit @@ -695,14 +695,3 @@ Used on: Node Example: `node-role.kubernetes.io/control-plane:NoSchedule` Taint that kubeadm applies on control plane nodes to allow only critical workloads to schedule on them. - -### node-role.kubernetes.io/master - -Used on: Node - -Example: `node-role.kubernetes.io/master:NoSchedule` - -Taint that kubeadm applies on control plane nodes to allow only critical workloads to schedule on them. - -{{< note >}} Starting in v1.20, this taint is deprecated in favor of `node-role.kubernetes.io/control-plane` -and will be removed in v1.25.{{< /note >}} diff --git a/content/en/docs/reference/setup-tools/kubeadm/implementation-details.md b/content/en/docs/reference/setup-tools/kubeadm/implementation-details.md index 74428b9148..b98fdcd66e 100644 --- a/content/en/docs/reference/setup-tools/kubeadm/implementation-details.md +++ b/content/en/docs/reference/setup-tools/kubeadm/implementation-details.md @@ -319,12 +319,10 @@ Please note that: As soon as the control plane is available, kubeadm executes following actions: - Labels the node as control-plane with `node-role.kubernetes.io/control-plane=""` -- Taints the node with `node-role.kubernetes.io/master:NoSchedule` and `node-role.kubernetes.io/control-plane:NoSchedule` +- Taints the node with `node-role.kubernetes.io/control-plane:NoSchedule` -Please note that: - -1. The `node-role.kubernetes.io/master` taint is deprecated and will be removed in kubeadm version 1.25 -1. Mark control-plane phase phase can be invoked individually with the [`kubeadm init phase mark-control-plane`](/docs/reference/setup-tools/kubeadm/kubeadm-init-phase/#cmd-phase-mark-control-plane) command +Please note that the phase to mark the control-plane phase phase can be invoked +individually with the [`kubeadm init phase mark-control-plane`](/docs/reference/setup-tools/kubeadm/kubeadm-init-phase/#cmd-phase-mark-control-plane) command. ### Configure TLS-Bootstrapping for node joining diff --git a/content/en/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm.md b/content/en/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm.md index d7897dfec5..9a7e4056dc 100644 --- a/content/en/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm.md +++ b/content/en/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm.md @@ -303,7 +303,7 @@ reasons. If you want to be able to schedule Pods on the control plane nodes, for example for a single machine Kubernetes cluster, run: ```bash -kubectl taint nodes --all node-role.kubernetes.io/control-plane- node-role.kubernetes.io/master- +kubectl taint nodes --all node-role.kubernetes.io/control-plane- ``` The output will look something like: @@ -313,14 +313,9 @@ node "test-01" untainted ... ``` -This will remove the `node-role.kubernetes.io/control-plane` and -`node-role.kubernetes.io/master` taints from any nodes that have them, -including the control plane nodes, meaning that the scheduler will then be able -to schedule Pods everywhere. - -{{< note >}} -The `node-role.kubernetes.io/master` taint is deprecated and kubeadm will stop using it in version 1.25. -{{< /note >}} +This will remove the `node-role.kubernetes.io/control-plane:NoSchedule` taint +from any nodes that have it, including the control plane nodes, meaning that the +scheduler will then be able to schedule Pods everywhere. ### Joining your nodes {#join-nodes} diff --git a/content/en/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm.md b/content/en/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm.md index ac8d89ee3a..147ccd000e 100644 --- a/content/en/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm.md +++ b/content/en/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm.md @@ -351,7 +351,7 @@ A known solution is to patch the kube-proxy DaemonSet to allow scheduling it on nodes regardless of their conditions, keeping it off of other nodes until their initial guarding conditions abate: ``` -kubectl -n kube-system patch ds kube-proxy -p='{ "spec": { "template": { "spec": { "tolerations": [ { "key": "CriticalAddonsOnly", "operator": "Exists" }, { "effect": "NoSchedule", "key": "node-role.kubernetes.io/master" }, { "effect": "NoSchedule", "key": "node-role.kubernetes.io/control-plane" } ] } } } }' +kubectl -n kube-system patch ds kube-proxy -p='{ "spec": { "template": { "spec": { "tolerations": [ { "key": "CriticalAddonsOnly", "operator": "Exists" }, { "effect": "NoSchedule", "key": "node-role.kubernetes.io/control-plane" } ] } } } }' ``` The tracking issue for this problem is [here](https://github.com/kubernetes/kubeadm/issues/1027).