Назад | Перейти на главную страницу

kubeadm init не работает, когда я использую --apiserver-Advertise-address

Я устанавливаю автономный кластер Kubernetes (версия kubeadm - 1.14) в операционной системе RHEL 7.7. У меня есть балансировщик нагрузки (частный LB с частным IP-адресом), настроенный для моего главного узла Kubernetes. Когда я отдал команду

kubeadm init --apiserver-advertise-address=<IP Address of the LB>

Я получил следующую ошибку:

Невозможно зарегистрировать узел «имя главного узла» на сервере API. напишите tcp «IP-адрес мастерноды»: <52444> - «IP-адрес LB»: 6443. Сброс соединения одноранговым узлом.

Если я выдаю только kubeadm init, команда успешно инициирует кластер.

Кроме того, если я использую DNS LB и пытаюсь создать многоплановый кластер (используя controlPlaneEndpoint в качестве DNS LB), это также работает. Любая идея о том, почему это не удается с --apiserver-advertise-address?

Кроме того, что, если я использую метод создания многоплоскостного кластера (controlPlaneEndpoint), но использую кластер, созданный как автономный кластер? (т. е. без добавления дополнительных мастер-узлов). Будет ли это вызывать какие-либо проблемы?

Если я правильно понимаю ваш вариант использования, это может быть невозможно.

apiserver-advertise-address используется для установки интерфейса узла, в котором api-server свяжет. Следовательно, вы не можете привязаться к интерфейсу LB, потому что это не настоящий интерфейс. Официальный источник:

(Необязательно) Если не указано иное, kubeadm использует сетевой интерфейс, связанный со шлюзом по умолчанию, чтобы установить адрес объявления для сервера API этого конкретного узла плоскости управления. Чтобы использовать другой сетевой интерфейс, укажите --apiserver-advertise-address=<ip-address> аргумент kubeadm init. Чтобы развернуть кластер IPv6 Kubernetes с использованием IPv6-адресации, необходимо указать IPv6-адрес, например --apiserver-advertise-address=fd00::101

Пока --apiserver-advertise-address может использоваться для установки рекламного адреса для сервера API этого конкретного узла плоскости управления, --control-plane-endpoint может использоваться для установки общей конечной точки для всех узлов уровня управления.