使用公共IP启动Kubernetes群集

使用公共IP启动Kubernetes群集,kubernetes,openstack,kubernetes-cluster,Kubernetes,Openstack,Kubernetes Cluster,我在私有云(OpenStack)上有一些虚拟机。在尝试在主节点上创建群集时,默认情况下,它会在其专用IP上启动群集。当我尝试基于主节点的公共IP启动集群时,使用--apiserver advertive address=publicIP标志,它给出了错误消息 启动阶段停止如下: [等待控制平面]等待kubelet启动控制 平面作为目录“/etc/kubernetes/manifests”中的静态吊舱。这 最多可能需要4m0[kubelet检查]初始超时40s 我注意到,我没有看到VM的公共IP(

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

启动阶段停止如下:

[等待控制平面]等待kubelet启动控制 平面作为目录“/etc/kubernetes/manifests”中的静态吊舱。这 最多可能需要4m0[kubelet检查]初始超时40s

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


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

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

启动实例时,会自动为其分配一个私有IP地址,该地址在您显式终止该实例之前保持不变。重新启动实例对专用IP地址没有影响

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

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

  • kubelet没有运行
  • kubelet不健康,因为节点在某种程度上配置错误(禁用了必需的cgroups)
如果您使用的是systemd供电系统,则可以尝试使用以下命令排除错误:

  • 系统控制状态库
  • 杂志-xeu kubelet

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

感谢您的回复!我使用浮动IP,并且/etc/hosts使用我的IP进行编辑。我可以使用“kubeadm init”启动主节点,默认情况下它基于我节点的私有IP。我使用下面的命令基于我的浮动IP初始化:“kubeadm init--pod network cidr=10.244.0.0/16--apiserver advision address=x.x.x.x”,但它在提到的步骤中停止(启动控制平面)。这仍然是一个问题吗?对于基于OpenStack的VM,我仍然有这个问题。然而,在裸机上尝试虚拟机是可能的。@MaryamTavakkoli,您是否设法解决了openstack虚拟机的这个问题?我有完全相同的问题。我尝试了中提供的步骤,但不起作用。