Kubeadm присоединиться использовать конкретный рекламный IP-адрес - PullRequest
0 голосов
/ 11 января 2019

Я использую kubeadm для создания одного главного kubernete в версии 1.11.5. У меня есть конфиг kubeadm, как это:

apiVersion: kubeadm.k8s.io/v1alpha1
kind: MasterConfiguration
api:
  advertiseAddress: <internal-ip>
apiServerCertSANs:
- <public-ip>
- <internal-ip>
kubernetesVersion: v1.11.5
networking:
  podSubnet: 10.244.0.0/16

Аппарат ec2 и добавление <public-ip> в apiServerCertSANs позволяют получить доступ к кластеру с моего ноутбука, используя kubectl. Но плохо то, что команда kubeadm join, запущенная в worker node, будет по умолчанию использовать <public-ip> вместо <internal-ip>.

Я пытаюсь вручную использовать kubeadm join <internal-ip>:6443 --token wby3bb.vomsgxxxxxxb --discovery-token-ca-cert-hash sha256:xxxxx, но сгенерированный файл /etc/kubernetes/bootstrap-kubelet.conf и /etc/kubernetes/kubelet.conf все еще использует <public-ip>:6443 внутри него. И шаг «Загрузка конфигурации для kubelet из ConfigMap« kubelet-config-1.11 »в пространстве имен системы kube» все еще обращается к главному узлу из <public-ip>.

Мне нужно сделать доступ всех kubernetes через внутренний ip, как я могу изменить ip для доступа?

1 Ответ

0 голосов
/ 14 января 2019

Если вы хотите использовать только внутреннюю сеть для связи в кластере. Просто обновите --advertise-address на своем мастере. Обычно хранится здесь: /etc/systemd/system/kube-apiserver.service

--advertise-address=<internal-ip>

и затем перезапустите демон api-сервера:

systemctl status kube-apiserver

также вы можете проверить другие демоны kubernetes для прослушивания только внутренних IP-адресов.

...