Произведена установка 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.
Дайте мне знать, если это решит вашу проблему.