Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

document version changes of critical pod #14684

Merged
merged 3 commits into from
Jun 4, 2019
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

quotes from @dashpole :)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section looks mostly good.
We usually don't use the phrase "critical pod is ...". Maybe do instead:
"Marking a pod as critical is not meant to prevent evictions entirely; it only prevents the pod from becoming permanently unavailable."

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the suggestion, as the PR was merged, I'll fix this line in the next PR.

{{% /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:
yuchengwu marked this conversation as resolved.
Show resolved Hide resolved

* 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+
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Critical pod priorityClass addition #58835
kubernetes/kubernetes#58835

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.10.md#scheduling
All pods with priorityClassName system-node-critical and system-cluster-critical will be critical pods while preserving backwards compatibility. (#58835, @ravisantoshgudimetla)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is available since v1.10? PodPriority? The priority class names? Has the annotation been removed already (sometimes things got deviated from the schedule)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The priority class names available since v1.10(I'll reword this line to make it clear).
The annotation have not been removed actually and still being in use.


* 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.
Copy link
Contributor Author

@yuchengwu yuchengwu Jun 2, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the annotation was planned to remove from 1.14, but seems that it still available in the current latest version. Guessing it may be removed in the future.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this annotation appears available since v1.4, do I need to make a statement on that?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK,1.4 is too old. I believe it's no necessary to add this.


{{% /capture %}}