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

Как удалить интеграцию openstack cloud_provider из работающего кластера

Произведена установка Kubespray в среде openstack. Все полностью функционально, без проблем.

Мой вопрос заключается в том, как удалить интеграцию в работающем кластере, машина за машиной (не путем переустановки кластера через kubespray). У нас есть проблемы со стабильностью нашего провайдера openstack, и это время от времени приводит к сбою службы kubelet.

Мы уже отошли от cinder и никогда не использовали интеграцию LB. Зависимостей не осталось, все что нам нужно - это "отключить" cloud-config.

К сожалению, при наивном удалении значений, связанных с облаком, из kubelet.env сервис kubelet не запускается из-за ошибки «узел не найден».

Облачный провайдер OpenStack использует имя экземпляра (как определено из метаданных OpenStack) в качестве имени объекта узла Kubernetes. Обратите внимание, что имя экземпляра должно быть действительным именем узла Kubernetes, чтобы кубелет успешно зарегистрировал свой объект узла.

В документация kubelet ты можешь читать:

--hostname-override строка

Если не пусто, будет использовать эту строку как идентификацию вместо фактического имени хоста. Если установлен --cloud-provider, облачный провайдер определяет имя узла (обратитесь к документации облачного провайдера, чтобы определить, используется ли имя хоста и как).

Это будет означать, что при "отключении" облачной конфигурации вам необходимо установить hostname-override вариант самостоятельно.

В документация об облачных провайдерах ты можешь читать:

Имя узла

Облачный провайдер OpenStack использует имя экземпляра (как определено из метаданных OpenStack) в качестве имени объекта узла Kubernetes. Обратите внимание, что имя экземпляра должно быть действительным именем узла Kubernetes, чтобы кубелет успешно зарегистрировал свой объект узла.

Таким образом, вы можете найти имя для своего узла, используя метаданные OpenStack.

Дайте мне знать, если это решит вашу проблему.