Kubeadm在AWS上设置集群

时间:2019-07-19 05:37:21

标签: amazon-web-services docker kubernetes kubeadm kubelet

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

我创建了3个EC2实例,并将弹性IP分配给一个VM。

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

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

在初始化过程中,它停留在初始化过程中并返回超时错误。以下是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

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

join命令包含VM的私有IP地址。

因此,如果我使用上面的join命令并用它创建集群,那么无论如何,如果我重新启动主节点,那么它将像改变机器专用IP一样影响集群吗?

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

任何帮助,将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

  

我重新启动主节点,然后它将像更改一样影响集群   在机器的专用IP中?

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

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

  

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

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

我无法告诉您有关为什么的原因,而弹性IP会导致问题,而又不了解您的网络设置。

如果需要进一步的故障排除帮助,可以尝试重新运行kubeadm init,同时将日志详细程度设置为-v=2,并在此处发布输出。

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