#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-адрес, настроенный в интерфейсе виртуальной машины главного узла и доступный с рабочих узлов.