I'm attempting to start a kubernetes cluster on a machine that has two ip-addresses with kubeadm v1.13.1. I'd like the kube-apiserver process to bind to one of them specifically. I've been successfull in doing this with the following configuration passed in to kubeadm init
, but the healthcheck portion of the apiserver manifest uses the other (default route) ip-address. This causes kubelet to tear down the kube-apiserver container due to failed healthchecks.
kind: InitConfiguration
apiVersion: kubeadm.k8s.io/v1beta1
localApiEndpoint:
advertiseAddress: 192.168.10.10
---
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
apiServer:
certSANs:
- 192.168.10.10
extraArgs:
advertise-address: 192.168.10.10
bind-address: 192.168.10.10
controlPlaneEndpoint: 192.168.10.10:6443
It appears the localApiEndpoint isn't being used at all as I can put any cruft in the advertiseAddress fields without causing errors or warnings. Misspelling localApiEndpoint or advertiseAddress does cause warnings which implies I haven't misspelled these.
How can I get kubeadm to properly generate the health check section of the apiserver manifest?