Настройка AWS publicIP для мастера в Кубернетес - PullRequest
0 голосов
/ 17 октября 2018

Я создал мастер-кластер с помощью следующей команды:

kubeadm init --pod-network-cidr $CALICO_NETWORK

Теперь он прослушивает внутренний IP 10.3.8.23:6443, что нормально, потому что я этого хочумастер использует внутренний IP для связи с узлами.

Теперь я хочу получить доступ к кластеру, используя общедоступный IP, и получаю следующую ошибку:

http: ошибка прокси: x509: сертификат действителен для 10.96.0.1, 10.3.8.23, а не для 18.230. *. *.

Как мне сгенерировать дополнительный сертификат для publicIP?

Мне нужноиспользуйте общедоступный IP-адрес для доступа к приборной панели с помощью браузера.

Я устанавливаю его с помощью: https://github.com/kubernetes/dashboard

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Если вы не хотите воссоздавать свой кластер, вы также можете сделать то, что описано здесь: Недействительный сертификат x509 для мастера kubernetes

Для K8s 1.7 и более ранних версий:

rm /etc/kubernetes/pki/apiserver.*
kubeadm alpha phase certs selfsign \
  --apiserver-advertise-address=0.0.0.0 \
  --cert-altnames=10.96.0.1 \
  --cert-altnames=10.3.8.23 \
  --cert-altnames=18.230.x.x  # <== Public IP
docker rm `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet

Для K8s 1.8 и новее:

rm /etc/kubernetes/pki/apiserver.*
kubeadm alpha phase certs all \
  --apiserver-advertise-address=0.0.0.0 \
  --apiserver-cert-extra-sans=10.96.0.1,10.3.8.23,18.230.x.x # <== Public IP
docker rm -f `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet

И вы также можете добавить DNS-имя с опцией --apiserver-cert-extra-sans.

0 голосов
/ 17 октября 2018

Если вы хотите получить доступ к вашему кластеру с помощью публичного IP, вы можете передать IP с помощью команды kubeadm init.Нравится:

kubeadm init --apiserver-cert-extra-sans=private-ip,public-ip \
  --pod-network-cidr $CALICO_NETWORK \
  --apiserver-advertise-address=private-ip
...