Не удается настроить kuberenetes с виртуальной машиной, привязанной к общедоступному IP

#kubernetes

#kubernetes

Вопрос:

Я взял виртуальную машину Ubuntu из какой-то облачной службы с общедоступным IP-адресом и пытаюсь это сделать kubeadm init --apiserver-advertise-address=<public ip> , но это всегда завершается ошибкой следующим образом:-

 Unfortunately, an error has occurred: timed out waiting for the condition
  

Эта ошибка, вероятно, вызвана:
— kubelet не запущен
— Сеть kubelet не работает из-за какой-либо неправильной конфигурации узла (отключены обязательные контрольные группы)

Но это работает, если я попробую это с частного IP-адреса виртуальной машины. У кого-нибудь есть идеи, почему это происходит. Или есть идея настроить кластер с использованием общедоступного ip.

Комментарии:

1. Что в журналах kubelet?

Ответ №1:

kube-apiserver настроен с помощью hostNetwork: true , что означает, что он использует сетевую систему узла.

Общедоступный IP-адрес облачной виртуальной машины обычно не настроен в интерфейсе виртуальной машины, поэтому вы не можете использовать его для apiserver-advertise-address= . kubelet просто не удается привязать kube-apiserver процесс к несуществующему локальному интерфейсу. Это работает хорошо, только если вы укажете IP-адрес, настроенный в интерфейсе виртуальной машины главного узла и доступный с рабочих узлов.