diff --git a/roles/kubernetes/node/templates/manifests/haproxy.manifest.j2 b/roles/kubernetes/node/templates/manifests/haproxy.manifest.j2 index 56fe563fb..78572b411 100644 --- a/roles/kubernetes/node/templates/manifests/haproxy.manifest.j2 +++ b/roles/kubernetes/node/templates/manifests/haproxy.manifest.j2 @@ -13,7 +13,10 @@ spec: dnsPolicy: ClusterFirstWithHostNet nodeSelector: kubernetes.io/os: linux - priorityClassName: system-node-critical +{# Static pods do not support priorityClassName, so set the numeric priority of + system-node-critical directly, otherwise kubelet may evict this pod early: + https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#pod-selection-for-kubelet-eviction #} + priority: 2000001000 containers: - name: haproxy image: {{ haproxy_image_repo }}:{{ haproxy_image_tag }} diff --git a/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 b/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 index f3df165ae..69395fab1 100644 --- a/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 +++ b/roles/kubernetes/node/templates/manifests/kube-vip.manifest.j2 @@ -144,6 +144,10 @@ spec: - kubernetes ip: 127.0.0.1 hostNetwork: true +{# Static pods do not support priorityClassName, so set the numeric priority of + system-node-critical directly, otherwise kubelet may evict this pod early: + https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#pod-selection-for-kubelet-eviction #} + priority: 2000001000 volumes: - hostPath: path: /etc/kubernetes/{{kube_vip_admin_conf}} diff --git a/roles/kubernetes/node/templates/manifests/nginx-proxy.manifest.j2 b/roles/kubernetes/node/templates/manifests/nginx-proxy.manifest.j2 index c31784d35..4064455bf 100644 --- a/roles/kubernetes/node/templates/manifests/nginx-proxy.manifest.j2 +++ b/roles/kubernetes/node/templates/manifests/nginx-proxy.manifest.j2 @@ -13,7 +13,10 @@ spec: dnsPolicy: ClusterFirstWithHostNet nodeSelector: kubernetes.io/os: linux - priorityClassName: system-node-critical +{# Static pods do not support priorityClassName, so set the numeric priority of + system-node-critical directly, otherwise kubelet may evict this pod early: + https://kubernetes.io/docs/concepts/scheduling-eviction/node-pressure-eviction/#pod-selection-for-kubelet-eviction #} + priority: 2000001000 containers: - name: nginx-proxy image: {{ nginx_image_repo }}:{{ nginx_image_tag }}