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?