Kubeadm 在 AWS 上设置集群

Kubeadm Setting up cluster on AWS

我正在尝试在 AWS 上设置 kubernetes 集群。 我安装了 docker、kubelet、kubectl 和 kubeadm。

我已经创建了 3 个 EC2 实例并为一个 VM 分配了一个弹性 IP。

在主节点(具有弹性 IP)上,我 运行 以下命令:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=3.18.117.205

在初始化过程中,它停留在初始化和returns超时错误。以下是 Kubelet 的日志:

Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.511349   17171 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/config/apiserver
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.513005   17171 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:453: 
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.516066   17171 reflector.go:125] k8s.io/client-go/informers/factory.go:133: Fai
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.537776   17171 reflector.go:125] k8s.io/kubernetes/pkg/kubelet/kubelet.go:444: 
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.601084   17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.701293   17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.801496   17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:29 ip-172-31-16-195 kubelet[17171]: E0719 05:11:29.901732   17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:30 ip-172-31-16-195 kubelet[17171]: E0719 05:11:30.001992   17171 kubelet.go:2248] node "ip-172-31-16-195" not found
Jul 19 05:11:30 ip-172-31-16-195 kubelet[17171]: E0719 05:11:30.102215   17171 kubelet.go:2248] node "ip-172-31-16-195" not found

如果我使用以下命令:

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

然后初始化成功,我得到了加入网络的命令。

加入命令包含虚拟机的私有 IP 地址。

因此,如果我使用上面的加入命令并使用它创建集群,那么如果在任何情况下,我重新启动主节点,那么它会像更改机器的私有 IP 一样影响集群吗?

如果不是,那弹性IP有什么用?

任何帮助,将不胜感激。

谢谢

I reboot the master node, then will it effect the cluster like change in the Private IP of the machine?

重启 EC2 实例不会改变实例的私有 IP 地址;它只会更改 public 地址(除非它是弹性 IP)。

所以你不用担心。而且您不需要弹性 IP 来将 apiserver 通告给集群中的其余节点。事实上,作为最佳实践,您希望实例通过私有 IP 进行通信。

If not, then what is the use of Elastic IP?

没有用。设置指南是否告诉您需要弹性 IP?

我无法告诉您更多关于为什么弹性 IP 在不了解您的网络设置的情况下导致问题的原因。

如果您需要进一步的故障排除帮助,您可以尝试重新运行 kubeadm init 并显示详细的日志记录 -v=2 和 post 输出。

Or you could try using the --apiserver-cert-extra-sans=<public ip address> instead of --apiserver-advertise-address