From 7e89ac65a4fcb41062e886201d3c53da635b7cc2 Mon Sep 17 00:00:00 2001 From: Feilong Wang Date: Wed, 12 Feb 2020 21:37:51 +1300 Subject: [PATCH] [k8s] Fix instance ID issue with podman and autoscaler Adding the volume mount for /etc/machine-id so that the kubelet boostraped by podman can access the correct instance ID. Without this, autoscaler will fail to delete empty node. This issue is reported on autoscaler repo[1]. [1] https://github.com/kubernetes/autoscaler/issues/2819 Task: 38743 Story: 2007286 Change-Id: I2852f4b255e782bb65b13571502194ee9f455ae3 (cherry picked from commit eb2b688f3ea8cdff5a7131efada156991f6bb6cb) --- .../kubernetes/fragments/configure-kubernetes-master.sh | 1 + .../kubernetes/fragments/configure-kubernetes-minion.sh | 1 + 2 files changed, 2 insertions(+) diff --git a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh index 8092e23de7..7490a433ed 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-master.sh @@ -201,6 +201,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kubelet \\ --volume /var/run:/var/run \\ --volume /var/run/lock:/var/run/lock:z \\ --volume /opt/cni/bin:/opt/cni/bin:z \\ + --volume /etc/machine-id:/etc/machine-id \\ \${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ kubelet \\ \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBELET_API_SERVER \$KUBELET_ADDRESS \$KUBELET_PORT \$KUBELET_HOSTNAME \$KUBELET_ARGS' diff --git a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh index c35aaa89a4..d73fe87344 100644 --- a/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh +++ b/magnum/drivers/common/templates/kubernetes/fragments/configure-kubernetes-minion.sh @@ -98,6 +98,7 @@ ExecStart=/bin/bash -c '/usr/bin/podman run --name kubelet \\ --volume /var/run:/var/run \\ --volume /var/run/lock:/var/run/lock:z \\ --volume /opt/cni/bin:/opt/cni/bin:z \\ + --volume /etc/machine-id:/etc/machine-id \\ \${CONTAINER_INFRA_PREFIX:-k8s.gcr.io/}hyperkube:\${KUBE_TAG} \\ kubelet \\ \$KUBE_LOGTOSTDERR \$KUBE_LOG_LEVEL \$KUBELET_API_SERVER \$KUBELET_ADDRESS \$KUBELET_PORT \$KUBELET_HOSTNAME \$KUBELET_ARGS'