You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
name: "for control plane with version >= v1.24.0 and < v1.25.0, if taints is nil it should add the uninitialized, control-plane and the master taints",
Copy file name to clipboardExpand all lines: docs/proposals/20220927-label-sync-between-machine-and-nodes.md
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -101,20 +101,23 @@ Kubernetes supports both equality and inequality requirements in label selection
101
101
102
102
In an inequality based selection, the user wants to place a workload on node(s) that do not contain a specific label (e.g. Node.Labels not contain `my.prefix/foo=bar`). The case is potentially problematic because it relies on the absence of a label and this can occur if the pod scheduler runs during the delay interval.
103
103
104
-
One way to address this is to use kubelet's `--register-with-taints` flag. Newly minted nodes can be tainted via the taint `node.cluster.x-k8s.io=uninitialized:NoSchedule`. Assuming workloads don't have this specific toleration, then nothing should be scheduled. KubeadmConfigTemplate provides the means to set taints on nodes (see JoinConfiguration.NodeRegistration.Taints).
104
+
One way to address this is to use kubelet's `--register-with-taints` flag. Newly minted nodes can be tainted via the taint `node.cluster.x-k8s.io/uninitialized:NoSchedule`. Assuming workloads don't have this specific toleration, then nothing should be scheduled. KubeadmConfigTemplate provides the means to set taints on nodes (see JoinConfiguration.NodeRegistration.Taints).
105
105
106
106
The process of tainting the nodes, can be carried out by the user and can be documented as follows:
107
107
108
108
```
109
109
If you utilize inequality based selection for workload placement, to prevent unintended scheduling of pods during the initial node startup phase, it is recommend that you specify the following taint in your KubeadmConfigTemplate:
110
-
`node.cluster.x-k8s.io=uninitialized:NoSchedule`
110
+
`node.cluster.x-k8s.io/uninitialized:NoSchedule`
111
111
```
112
112
113
113
After the node has come up and the machine controller has applied the labels, the machine controller will also remove this specific taint if it's present.
114
114
115
115
During the implementation we will consider also automating the insertion of the taint via CABPK in order to simplify UX;
116
116
in this case, the new behaviour should be documented in the contract as optional requirement for bootstrap providers.
117
117
118
+
The `node.cluster.x-k8s.io/uninitialized:NoSchedule` taint should only be applied on the worker nodes. It should not be applied on the control plane nodes as it could prevent other components like CPI from initializing which will block cluster creation.
0 commit comments