Skip to content

Commit

Permalink
document version changes of critical pod
Browse files Browse the repository at this point in the history
  • Loading branch information
yuchengwu authored and Yucheng Wu committed Jun 2, 2019
1 parent fabe7aa commit 2e255c9
Showing 1 changed file with 5 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ 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 critical pod is not meant to prevent pod evictions entirely. The critical pod prevents pods 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 %}}


Expand All @@ -24,9 +26,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. Available in 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 %}}

0 comments on commit 2e255c9

Please sign in to comment.