Я устанавливаю автономный кластер Kubernetes (версия kubeadm - 1.14) в операционной системе RHEL 7.7. У меня есть балансировщик нагрузки (частный LB с частным IP-адресом), настроенный для моего главного узла Kubernetes. Когда я ввел команду
kubeadm init --apiserver-Advertise-address =
, я получил следующую ошибку:
Невозможно зарегистрировать узел «имя главного узла» на сервере API. напишите tcp «IP-адрес мастерноды»: <52444> - «IP-адрес LB»: 6443. Сброс соединения одноранговым узлом.
Если я выдаю только kubeadm init
, команда успешно инициирует кластер.
Кроме того, если я использую DNS LB и пытаюсь создать многоплановый кластер (используя controlPlaneEndpoint в качестве DNS LB), это тоже работает. Есть идеи, почему это не удается с адресом - apiserver-Advertise-address
?
А что, если я использую метод создания многоплоскостного кластера (controlPlaneEndpoint), но использую кластер, построенный как автономный кластер? (т. е. без добавления дополнительных мастер-узлов). Вызовет ли это какие-либо проблемы?
Если я правильно понимаю ваш вариант использования, это может быть невозможно.
apiserver-advertise-address
используется для установки интерфейса узла, к которому будет привязан api-сервер
. Поэтому вы не можете привязываться к интерфейсу LB, потому что это не настоящий интерфейс. Официальный источник:
(Необязательно) Если не указано иное,
kubeadm
использует сеть интерфейс, связанный со шлюзом по умолчанию, для установки рекламы адрес API-сервера данного конкретного узла плоскости управления. Чтобы использовать другой сетевой интерфейс, укажите--apiserver-advertise-address=
аргумент дляkubeadm init
. Чтобы развернуть кластер IPv6 Kubernetes с использованием адресации IPv6, необходимо указать адрес IPv6, например--apiserver-advertise-address=fd00::101
В то время как
--apiserver-advertise-address
можно использовать для установки адрес API-сервера этого конкретного узла уровня управления,--control-plane-endpoint
можно использовать для установки общей конечной точки для всех узлов плоскости управления.