如何从正在运行的集群中删除 openstack cloud_provider 集成

如何从正在运行的集群中删除 openstack cloud_provider 集成

在 openstack 环境中完成了 Kubespray 的安装。一切功能正常,没有问题。

我的问题是如何逐台机器删除正在运行的集群上的集成(而不是通过 kubespray 重新安装集群)我们的 openstack 提供商存在稳定性问题,这导致 kubelet 服务时不时出现故障。

我们已经将持久性从 cinder 中移出,并且从未使用过任何 LB 集成。没有剩余的依赖项,我们所需的只是“禁用”云配置。

不幸的是,当从 kubelet.env 中删除与云相关的值时,kubelet 服务无法启动并出现“未找到节点”错误。

答案1

OpenStack 云提供商使用实例名称(根据 OpenStack 元数据确定)作为 Kubernetes 节点对象的名称。请注意,实例名称必须是有效的 Kubernetes 节点名称,以便 kubelet 成功注册其节点对象。

kubelet 文档你可以阅读:

--hostname-override 字符串

如果非空,将使用此字符串作为标识,而不是实际主机名。如果设置了 --cloud-provider,则云提供商将确定节点的名称(请参阅云提供商文档以确定是否以及如何使用主机名)。

这意味着当“禁用”云配置时,您需要hostname-override自行设置选项。

有关云提供商的文档你可以阅读:

节点名称

OpenStack 云提供商使用实例名称(根据 OpenStack 元数据确定)作为 Kubernetes 节点对象的名称。请注意,实例名称必须是有效的 Kubernetes 节点名称,以便 kubelet 成功注册其节点对象。

因此您可以使用 OpenStack 元数据找到您的节点的名称。

如果它解决了您的问题,请告诉我。

相关内容