From 92d1da404a2f59fa5ec398f4328510b311bc09e1 Mon Sep 17 00:00:00 2001 From: Yucheng Wu Date: Tue, 4 Jun 2019 09:01:03 +0800 Subject: [PATCH] document version changes of critical pod (#14684) * document version changes of critical pod * document system priority class name version requirement * Update guaranteed-scheduling-critical-addon-pods.md --- .../guaranteed-scheduling-critical-addon-pods.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md b/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md index 20202361e4..f6033a8586 100644 --- a/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md +++ b/content/en/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods.md @@ -16,6 +16,9 @@ A cluster may stop working properly if a critical add-on is evicted (either manu and becomes pending (for example when the cluster is highly utilized and either there are other pending pods that schedule into the space vacated by the evicted critical add-on pod or the amount of resources available on the node changed for some other reason). +Note that marking a pod as critical is not meant to prevent evictions entirely; it only prevents the pod from becoming permanently unavailable. +For static pods, this means it can't be evicted, but for non-static pods, it just means they will always be rescheduled. + {{% /capture %}} @@ -24,9 +27,10 @@ vacated by the evicted critical add-on pod or the amount of resources available ### Marking pod as critical -To be considered critical, the pod has to run in the `kube-system` namespace (configurable via flag) and +Prior to v1.11, critical pod has to run in the `kube-system` namespace, this restriction was removed after v1.11 and pod in any namespace can be configed as a critical pod by the following either way: -* Have the priorityClassName set as "system-cluster-critical" or "system-node-critical", the latter being the highest for entire cluster. Alternatively, you could add an annotation `scheduler.alpha.kubernetes.io/critical-pod` as key and empty string as value to your pod, but this annotation is deprecated as of version 1.13 and will be removed in 1.14. +* Ensure the PodPriority [feature gates](https://kubernetes.io/docs/reference/command-line-tools-reference/feature-gates/) is enabled. Have the priorityClassName set as "system-cluster-critical" or "system-node-critical", the latter being the highest for entire cluster, the two priority class names available since v1.10+ +* Alternatively, ensure both PodPriority and ExperimentalCriticalPodAnnotation feature gates are enabled, you could add an annotation `scheduler.alpha.kubernetes.io/critical-pod` as key and empty string as value to your pod, but this annotation is deprecated as of version 1.13 and will be removed in a future release. {{% /capture %}}