diff --git a/cluster/gce/config-default.sh b/cluster/gce/config-default.sh index b339684b73d..e9d165f2dc0 100755 --- a/cluster/gce/config-default.sh +++ b/cluster/gce/config-default.sh @@ -529,3 +529,6 @@ export ENABLE_CSI_PROXY="${ENABLE_CSI_PROXY:-true}" # in addition to listening to 127.0.0.1, and whether kube-apiserver should connect to etcd servers # through host IP. export ETCD_LISTEN_ON_HOST_IP="${ETCD_LISTEN_ON_HOST_IP:-false}" + +# Use host IP instead of localhost in control plane kubeconfig files. +export KUBECONFIG_USE_HOST_IP="${KUBECONFIG_USE_HOST_IP:-false}" diff --git a/cluster/gce/config-test.sh b/cluster/gce/config-test.sh index 32178fbd4a3..f2566269b1c 100755 --- a/cluster/gce/config-test.sh +++ b/cluster/gce/config-test.sh @@ -576,3 +576,6 @@ export ENABLE_CSI_PROXY="${ENABLE_CSI_PROXY:-true}" # in addition to listening to 127.0.0.1, and whether kube-apiserver should connect to etcd servers # through host IP. export ETCD_LISTEN_ON_HOST_IP="${ETCD_LISTEN_ON_HOST_IP:-false}" + +# Use host IP instead of localhost in control plane kubeconfig files. +export KUBECONFIG_USE_HOST_IP="${KUBECONFIG_USE_HOST_IP:-false}" diff --git a/cluster/gce/gci/configure-helper.sh b/cluster/gce/gci/configure-helper.sh index 02bc98c357c..0fdde7f7341 100644 --- a/cluster/gce/gci/configure-helper.sh +++ b/cluster/gce/gci/configure-helper.sh @@ -1265,11 +1265,18 @@ EOF fi } +# Create kubeconfig files for control plane components. function create-kubeconfig { local component=$1 local token=$2 echo "Creating kubeconfig file for component ${component}" mkdir -p "/etc/srv/kubernetes/${component}" + + local kube_apiserver="localhost" + if [[ ${KUBECONFIG_USE_HOST_IP:-} == "true" ]] ; then + kube_apiserver=$(hostname -i) + fi + cat <"/etc/srv/kubernetes/${component}/kubeconfig" apiVersion: v1 kind: Config @@ -1281,7 +1288,7 @@ clusters: - name: local cluster: insecure-skip-tls-verify: true - server: https://localhost:443 + server: https://${kube_apiserver}:443 contexts: - context: cluster: local