Amazon web services 使用kubeadm初始化kubernetes群集,但在aws上使用公共IP

Amazon web services 使用kubeadm初始化kubernetes群集,但在aws上使用公共IP,amazon-web-services,kubernetes,Amazon Web Services,Kubernetes,我正在尝试遵循本教程: 重要区别: 我需要在特定节点上运行master,而worker节点来自AWS上的不同区域 因此,在我想要加入节点之前,一切都进展顺利(步骤5)。命令成功执行,但kubectl get nodes仍仅显示master节点 我查看了join命令,它包含master的privateip地址: 加入10.1.1.40。我猜如果工作人员位于不同的区域,则无法工作(注意:稍后我们甚至可能需要添加来自不同提供商的节点,因此如果没有重要的安全威胁,则应通过公共IP工作) 因此,虽然ku

我正在尝试遵循本教程:

重要区别: 我需要在特定节点上运行
master
,而
worker
节点来自AWS上的不同区域

因此,在我想要加入节点之前,一切都进展顺利(步骤5)。命令成功执行,但
kubectl get nodes
仍仅显示
master
节点

我查看了
join
命令,它包含
master
privateip地址:
加入10.1.1.40
。我猜如果工作人员位于不同的区域,则无法工作(注意:稍后我们甚至可能需要添加来自不同提供商的节点,因此如果没有重要的安全威胁,则应通过公共IP工作)

因此,虽然
kubeadm init pod network cidr=10.244.0.0/16
初始化了集群,但使用了这个内部IP,我随后尝试了
kubeadm init——apiserver播发地址——apiserver绑定端口16443——pod网络cidr=10.244.0.0/16

但是它总是挂起,并且init没有完成。kubelet日志打印了许多

E0610 19:24:24.188347 1051920 kubelet.go:2267]未找到节点“ip-x-x-x-x”


其中“ip-x-x-x-x”似乎是AWS上主节点的主机名。

我认为它起作用的原因是我将主节点的主机名设置为其公共DNS名称,然后将其用作
--控制平面端点
参数…,而不使用
--apiserver播发地址
(但是使用
--apiserver绑定端口
,因为我需要在另一个端口上运行它)


需要运行更长的时间才能确认,但到目前为止看起来还不错。

我遇到了完全相同的问题,并且以相同的方式解决了问题。但是我在获取部署在工作节点中的POD的日志时遇到了问题。kubectl logs命令正在查找工作节点的私有ip地址。您是否遇到了此问题?