使用公共IP启动Kubernetes集群

时间:2019-07-11 10:59:59

标签: kubernetes openstack kubernetes-cluster

我在私有云(OpenStack)上有一些VM。尝试在主节点上创建集群时,默认情况下,它将在其专用IP上启动集群。当我尝试使用主控节点的公共IP初始化群集时,使用--apiserver-advertise-address=publicIP标志,它会显示错误。

  

启动阶段如下停止:

     

[wait-control-plane]等待kubelet启动控件   在目录“ / etc / kubernetes / manifests”中将其作为静态Pod。这个   最多可能需要4m0s [kubelet-check]超过40s的初始超时时间。

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

  • kubelet没有运行
  • 由于节点的某种方式错误配置(禁用了必需的cgroups),kubelet不健康

如果您使用的是systemd驱动的系统,则可以尝试使用以下命令对错误进行故障排除:

  • systemctl状态kubelet
  • journalctl -xeu kubelet

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