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
Copy file name to clipboardExpand all lines: cluster-autoscaler/FAQ.md
+31Lines changed: 31 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,7 @@ this document:
25
25
*[Is Cluster Autoscaler compatible with CPU-usage-based node autoscalers?](#is-cluster-autoscaler-compatible-with-cpu-usage-based-node-autoscalers)
26
26
*[How does Cluster Autoscaler work with Pod Priority and Preemption?](#how-does-cluster-autoscaler-work-with-pod-priority-and-preemption)
27
27
*[How does Cluster Autoscaler remove nodes?](#how-does-cluster-autoscaler-remove-nodes)
28
+
*[How does Cluster Autoscaler treat nodes with status/startup/ignore taints?](#how-does-cluster-autoscaler-treat-nodes-with-taints)
28
29
*[How to?](#how-to)
29
30
*[I'm running cluster with nodes in multiple zones for HA purposes. Is that supported by Cluster Autoscaler?](#im-running-cluster-with-nodes-in-multiple-zones-for-ha-purposes-is-that-supported-by-cluster-autoscaler)
30
31
*[How can I monitor Cluster Autoscaler?](#how-can-i-monitor-cluster-autoscaler)
@@ -249,7 +250,37 @@ Cluster Autoscaler terminates the underlying instance in a cloud-provider-depend
249
250
250
251
It does _not_ delete the [Node object](https://kubernetes.io/docs/concepts/architecture/nodes/#api-object) from Kubernetes. Cleaning up Node objects corresponding to terminated instances is the responsibility of the [cloud node controller](https://kubernetes.io/docs/concepts/architecture/cloud-controller/#node-controller), which can run as part of [kube-controller-manager](https://kubernetes.io/docs/reference/command-line-tools-reference/kube-controller-manager/) or [cloud-controller-manager](https://kubernetes.io/docs/concepts/architecture/cloud-controller/).
251
252
253
+
### How does Cluster Autoscaler treat nodes with status/startup/ignore taints?
252
254
255
+
### Startup taints
256
+
Startup taints are meant to be used when there is an operation that has to complete before any pods can run on the node, e.g. drivers installation.
257
+
258
+
Cluster Autoscaler treats nodes tainted with `startup taints` as unready, but taken into account during scale up logic, assuming they will become ready shortly.
259
+
260
+
**However, if the substantial number of nodes are tainted with `startup taints` (and therefore unready) for an extended period of time the Cluster Autoscaler
261
+
might stop working as it might assume the cluster is broken and should not be scaled (creating new nodes doesn't help as they don't become ready).**
262
+
263
+
Startup taints are defined as:
264
+
- all taints with the prefix `startup-taint.cluster-autoscaler.kubernetes.io/`,
265
+
- all taints defined using `--startup-taint` flag.
266
+
267
+
### Status taints
268
+
Status taints are meant to be used when a given node should not be used to run pods for the time being.
269
+
270
+
Cluster Autoscaler internally treats nodes tainted with `status taints` as ready, but filtered out during scale up logic.
271
+
272
+
This means that even though the node is ready, no pods should run there as long as the node is tainted and if necessary a scale-up should occur.
273
+
274
+
Status taints are defined as:
275
+
- all taints with the prefix `status-taint.cluster-autoscaler.kubernetes.io/`,
276
+
- all taints defined using `--status-taint` flag.
277
+
278
+
### Ignore taints
279
+
Ignore taints are now deprecated and treated as startup taints.
280
+
281
+
Ignore taints are defined as:
282
+
- all taints with the prefix `ignore-taint.cluster-autoscaler.kubernetes.io/`,
0 commit comments