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

Mark Static pods on the Master as critical #47356

Merged
merged 1 commit into from
Jun 19, 2017

Conversation

dashpole
Copy link
Contributor

fixes #47277.

A known issue with static pods is that they do not interact well with evictions. If a static pod is evicted or oom killed, then it will never be recreated. To mitigate this, we do not evict static pods that are critical. In addition, non-critical pods are candidates for preemption if a critical pod is scheduled to the node. If there are not enough allocatable resources on the node, this causes the static pod to be preempted.

This PR marks all static pods in the kube-system namspace as critical.

cc @vishh @dchen1107

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jun 12, 2017
@dashpole
Copy link
Contributor Author

/release-note-none

@k8s-ci-robot k8s-ci-robot added the release-note-none Denotes a PR that doesn't merit a release note. label Jun 12, 2017
@k8s-github-robot k8s-github-robot added the size/S Denotes a PR that changes 10-29 lines, ignoring generated files. label Jun 12, 2017
@dashpole
Copy link
Contributor Author

/assign @dchen1107 @vishh
/unassign @jbeda @roberthbailey

@k8s-ci-robot k8s-ci-robot assigned dchen1107 and vishh and unassigned jbeda and roberthbailey Jun 12, 2017
@vishh
Copy link
Contributor

vishh commented Jun 12, 2017

/lgtm
/approve

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 12, 2017
@vishh
Copy link
Contributor

vishh commented Jun 12, 2017

@dashpole should this be included in v1.7?

@dashpole
Copy link
Contributor Author

I would say yes. I would consider not placing the "critical" annotation on critical system pods a bug.

@davidopp
Copy link
Member

This PR is good but seems we should also add the three non-static pods?

event-exporter-v0.1.0-947590526-h897n (non-static)
l7-default-backend-4019876529-14krg (non-static)
monitoring-influxdb-grafana-v4-2dv01 (non-static)

@luxas
Copy link
Member

luxas commented Jun 12, 2017

@dashpole Please make the kubeadm static pods critical then as well (cmd/kubeadm/app/master/manifests.go)

@dashpole
Copy link
Contributor Author

@luxas unless I am missing something, those are the static pods I am changing in this PR

@dashpole
Copy link
Contributor Author

@davidopp I am not familiar with what those pods do. Making them critical allows them to preempt other pods in the system in order to schedule.
Is that behavior we want in all 3 of those pods?

@dashpole
Copy link
Contributor Author

Another non-static system pod that is not currently marked as critical is the NPD. We plan to leave it non-critical for the time being, as it is not critical for the system to function, and will reschedule when there is enough allocatable resources.

@dashpole
Copy link
Contributor Author

@k8s-bot pull-kubernetes-e2e-gce-etcd3 test this

@davidopp
Copy link
Member

I am not familiar with what those pods do. Making them critical allows them to preempt other pods in the system in order to schedule.
Is that behavior we want in all 3 of those pods?

event-exporter is important for debugging so probably yes. l7-default-backend I don't know exactly what it does but it sounds from the name like it may be critical for Ingress so probably yes. monitoring-influxdb-grafana maybe could be skipped.

@dashpole
Copy link
Contributor Author

alright, Ill add the event-exporter, and the L7-default-backend.

@roberthbailey
Copy link
Contributor

l7-default-backend is (as the name sounds) the default backend for an ingress resource created in GCE. I believe it black-holes any traffic that you don't configure to hit one of your own backends. I'm not sure what happens if it isn't running, but @bowei or @dnardo would probably know.

@roberthbailey
Copy link
Contributor

@luxas unless I am missing something, those are the static pods I am changing in this PR

You are changing the manifest files used by the kube-up.sh scripts, but not the ones used by kubeadm. See https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/master/manifests.go

@dashpole
Copy link
Contributor Author

Ok, I have added the kubeadm static pods as well. This PR now makes all static system pods critical.

@dashpole
Copy link
Contributor Author

based on #47277 (comment), I am going to leave out non-static pods.

@k8s-github-robot k8s-github-robot removed lgtm "Looks good to me", indicates that a PR is ready to be merged. size/S Denotes a PR that changes 10-29 lines, ignoring generated files. labels Jun 12, 2017
@k8s-github-robot k8s-github-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Jun 12, 2017
@dchen1107
Copy link
Member

I also added another comment on static pods at: #47277 (comment)

We need to answer that questions. Also release-note is required for this.

@dchen1107 dchen1107 added release-note Denotes a PR that will be considered when it comes time to generate release notes. and removed release-note-none Denotes a PR that doesn't merit a release note. labels Jun 12, 2017
@luxas luxas self-assigned this Jun 13, 2017
@luxas luxas added this to the v1.7 milestone Jun 13, 2017
@luxas
Copy link
Member

luxas commented Jun 13, 2017

/retest

/approve
for the kubeadm change

@marun marun added sig/node Categorizes an issue or PR as relevant to SIG Node. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. labels Jun 14, 2017
@luxas
Copy link
Member

luxas commented Jun 19, 2017

PTAL @kubernetes/sig-scalability-pr-reviews @kubernetes/sig-node-pr-reviews @kubernetes/kubernetes-release-managers

This was already LGTM'd, can we get the label reapplied?

@k8s-ci-robot k8s-ci-robot added the sig/scalability Categorizes an issue or PR as relevant to SIG Scalability. label Jun 19, 2017
@luxas luxas removed the sig/scalability Categorizes an issue or PR as relevant to SIG Scalability. label Jun 19, 2017
@luxas
Copy link
Member

luxas commented Jun 19, 2017

Damn, can't even tag the right sig, I meant @kubernetes/sig-scheduling-pr-reviews of course

@timothysc
Copy link
Member

/lgtm but needs a different owner for final approval.

/cc @roberthbailey

@jbeda
Copy link
Contributor

jbeda commented Jun 19, 2017

This is clearly in cluster lifecycle territory.

/approve

@k8s-github-robot k8s-github-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 19, 2017
@roberthbailey
Copy link
Contributor

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jun 19, 2017
@k8s-github-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: dashpole, jbeda, luxas, roberthbailey, timothysc, vishh

Associated issue: 47277

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these OWNERS Files:

You can indicate your approval by writing /approve in a comment
You can cancel your approval by writing /approve cancel in a comment

@k8s-github-robot
Copy link

Automatic merge from submit-queue (batch tested with PRs 47669, 40284, 47356, 47458, 47701)

@k8s-github-robot k8s-github-robot merged commit 1e76d9e into kubernetes:master Jun 19, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. release-note Denotes a PR that will be considered when it comes time to generate release notes. sig/node Categorizes an issue or PR as relevant to SIG Node. sig/scheduling Categorizes an issue or PR as relevant to SIG Scheduling. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[GCE] Some system pods are not marked critical