0

我在私有云(OpenStack)之上有一些虚拟机。在尝试在主节点上创建集群时,默认情况下它会在其私有 IP 上启动集群。当我尝试使用--apiserver-advertise-address=publicIP标志基于主节点的公共 IP 启动集群时,它会出错。

启动阶段停止如下:

[wait-control-plane] 等待 kubelet 作为静态 Pod 从目录“/etc/kubernetes/manifests”启动控制平面。这最多可能需要 4m0s [kubelet-check] 40s 的初始超时已通过。

我注意到我看不到 VM 内部的公共 IP(运行“ip addr”),但可以通过其公共 IP 访问 VM。

有没有办法在节点的“公共 IP”之上设置 Kubernetes 集群?

4

1 回答 1

1

私有 IP 地址用于实例之间的通信,而公共地址用于与云以外的网络(包括 Internet)进行通信。所以建议只在私有地址上设置集群。

当您启动一个实例时,它会自动分配一个私有 IP 地址,该地址保持不变,直到您明确终止该实例。重启实例对私有 IP 地址没有影响。

OpenStack Compute 中提供了一个由云管理员配置的浮动 IP 地址池。项目配额定义了您可以分配给项目的最大浮动 IP 地址数。

此错误可能是由以下原因引起的:

  • kubelet 没有运行
  • kubelet 不健康,因为节点配置错误(必需的 cgroups 已禁用)

如果您使用的是 systemd 驱动的系统,则可以尝试使用以下命令解决错误:

  • systemctl 状态 kubelet
  • journalctl -xeu kubelet

尝试将机器的浮动 IP 添加到要从中部署集群并再次运行安装的主节点上的/etc/hosts文件中。

于 2019-07-15T11:32:06.367 回答