Как рекламировать адрес api-сервера kubeadm?
Я пытаюсь настроить свой первый кластер высокой доступности сkubeadm
, У меня есть haproxy прослушивания виртуального IP, но это вызывает kubeadm init
потерпеть неудачу с "портом 6443 в использовании".
Вот IP-адреса, потому что это проще, чем их скрыть:
- 192.168.3.37 <-- server IP
- 192.168.3.69 <-- haproxy virtual IP for API
Вы можете видеть, что haproxy прослушивает только этот виртуальный IP:
$ sudo lsof -i -P -n | grep 6443
haproxy 12912 haproxy 10u IPv4 99270 0t0 TCP 192.168.3.69:6443 (LISTEN)
Вот мой config.yaml для kubeadm:
---
# sudo kubeadm init --experimental-upload-certs --config kubeadm-config.yaml --node-name nuc7i7.home.tedder.me
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: stable
controlPlaneEndpoint: "192.168.3.69:6443"
Я тогда звоню kubeadm
следующее:
sudo kubeadm init --experimental-upload-certs --config kubeadm-config.yaml --node-name myhost37
Вот, дословно, это то, что kubeadm init
возвращает:
[init] Using Kubernetes version: v1.14.2
[preflight] Running pre-flight checks
[WARNING IsDockerSystemdCheck]: detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd". Please follow the guide at https://kubernetes.io/docs/setup/cri/
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR Port-6443]: Port 6443 is in use
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
Если я попытаюсь пройти --apiserver-advertise-address
для kubeadm это не удается:
--apiserver-advertise-address "192.168.3.37"
can not mix '--config' with arguments [apiserver-advertise-address]
Я не уверен почему kubeadm
игнорирует этот bind-адрес. Я уверен, что это игнорирует, я просто не знаю, что с этим делать.