diff --git a/cluster/addons/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml b/cluster/addons/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml index 9b7fdf1e172..cf7e5b5f515 100644 --- a/cluster/addons/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml +++ b/cluster/addons/etcd-empty-dir-cleanup/etcd-empty-dir-cleanup.yaml @@ -3,6 +3,8 @@ kind: Pod metadata: name: etcd-empty-dir-cleanup namespace: kube-system + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' labels: k8s-app: etcd-empty-dir-cleanup spec: diff --git a/cluster/saltbase/salt/etcd/etcd.manifest b/cluster/saltbase/salt/etcd/etcd.manifest index b0eee99cafc..1f1be4ffe8c 100644 --- a/cluster/saltbase/salt/etcd/etcd.manifest +++ b/cluster/saltbase/salt/etcd/etcd.manifest @@ -29,7 +29,10 @@ "kind": "Pod", "metadata": { "name":"etcd-server{{ suffix }}", - "namespace": "kube-system" + "namespace": "kube-system", + "annotations": { + "scheduler.alpha.kubernetes.io/critical-pod": "" + } }, "spec":{ "hostNetwork": true, diff --git a/cluster/saltbase/salt/kube-addons/kube-addon-manager.yaml b/cluster/saltbase/salt/kube-addons/kube-addon-manager.yaml index e2e8c9b59a7..c2a6bcef1c2 100644 --- a/cluster/saltbase/salt/kube-addons/kube-addon-manager.yaml +++ b/cluster/saltbase/salt/kube-addons/kube-addon-manager.yaml @@ -3,6 +3,8 @@ kind: Pod metadata: name: kube-addon-manager namespace: kube-system + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' labels: component: kube-addon-manager spec: diff --git a/cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest b/cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest index 5ac6d5fcd42..4f6ad7bdfd6 100644 --- a/cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest +++ b/cluster/saltbase/salt/kube-apiserver/kube-apiserver.manifest @@ -212,6 +212,9 @@ "metadata": { "name":"kube-apiserver", "namespace": "kube-system", + "annotations": { + "scheduler.alpha.kubernetes.io/critical-pod": "" + }, "labels": { "tier": "control-plane", "component": "kube-apiserver" diff --git a/cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest b/cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest index acd820cfa0c..9911d09b8d3 100644 --- a/cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest +++ b/cluster/saltbase/salt/kube-controller-manager/kube-controller-manager.manifest @@ -94,6 +94,9 @@ "metadata": { "name":"kube-controller-manager", "namespace": "kube-system", + "annotations": { + "scheduler.alpha.kubernetes.io/critical-pod": "" + }, "labels": { "tier": "control-plane", "component": "kube-controller-manager" diff --git a/cluster/saltbase/salt/kube-scheduler/kube-scheduler.manifest b/cluster/saltbase/salt/kube-scheduler/kube-scheduler.manifest index 4176f8f79f0..53c2e34e00b 100644 --- a/cluster/saltbase/salt/kube-scheduler/kube-scheduler.manifest +++ b/cluster/saltbase/salt/kube-scheduler/kube-scheduler.manifest @@ -29,6 +29,9 @@ "metadata": { "name":"kube-scheduler", "namespace": "kube-system", + "annotations": { + "scheduler.alpha.kubernetes.io/critical-pod": "" + }, "labels": { "tier": "control-plane", "component": "kube-scheduler" diff --git a/cluster/saltbase/salt/l7-gcp/glbc.manifest b/cluster/saltbase/salt/l7-gcp/glbc.manifest index bf0d474c596..85b833248fb 100644 --- a/cluster/saltbase/salt/l7-gcp/glbc.manifest +++ b/cluster/saltbase/salt/l7-gcp/glbc.manifest @@ -3,6 +3,8 @@ kind: Pod metadata: name: l7-lb-controller-v0.9.5 namespace: kube-system + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' labels: k8s-app: glbc version: v0.9.5 diff --git a/cluster/saltbase/salt/rescheduler/rescheduler.manifest b/cluster/saltbase/salt/rescheduler/rescheduler.manifest index 81974dec60f..d647a7be973 100644 --- a/cluster/saltbase/salt/rescheduler/rescheduler.manifest +++ b/cluster/saltbase/salt/rescheduler/rescheduler.manifest @@ -3,6 +3,8 @@ kind: Pod metadata: name: rescheduler-v0.3.0 namespace: kube-system + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' labels: k8s-app: rescheduler version: v0.3.0 diff --git a/cmd/kubeadm/app/master/BUILD b/cmd/kubeadm/app/master/BUILD index c9054bdc696..5d15a2dda07 100644 --- a/cmd/kubeadm/app/master/BUILD +++ b/cmd/kubeadm/app/master/BUILD @@ -26,6 +26,7 @@ go_library( "//pkg/bootstrap/api:go_default_library", "//pkg/kubeapiserver/authorizer/modes:go_default_library", "//pkg/kubectl/cmd/util:go_default_library", + "//pkg/kubelet/types:go_default_library", "//pkg/util/version:go_default_library", "//vendor/github.com/ghodss/yaml:go_default_library", "//vendor/k8s.io/apimachinery/pkg/api/resource:go_default_library", diff --git a/cmd/kubeadm/app/master/manifests.go b/cmd/kubeadm/app/master/manifests.go index 8c5d03d0e54..55fe560c461 100644 --- a/cmd/kubeadm/app/master/manifests.go +++ b/cmd/kubeadm/app/master/manifests.go @@ -38,6 +38,7 @@ import ( bootstrapapi "k8s.io/kubernetes/pkg/bootstrap/api" authzmodes "k8s.io/kubernetes/pkg/kubeapiserver/authorizer/modes" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" + kubetypes "k8s.io/kubernetes/pkg/kubelet/types" "k8s.io/kubernetes/pkg/util/version" ) @@ -301,9 +302,10 @@ func componentPod(container api.Container, volumes ...api.Volume) api.Pod { Kind: "Pod", }, ObjectMeta: metav1.ObjectMeta{ - Name: container.Name, - Namespace: "kube-system", - Labels: map[string]string{"component": container.Name, "tier": "control-plane"}, + Name: container.Name, + Namespace: "kube-system", + Annotations: map[string]string{kubetypes.CriticalPodAnnotationKey: ""}, + Labels: map[string]string{"component": container.Name, "tier": "control-plane"}, }, Spec: api.PodSpec{ Containers: []api.Container{container},