Как рекламировать адрес 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-адрес. Я уверен, что это игнорирует, я просто не знаю, что с этим делать.

0 ответов

Другие вопросы по тегам