当我运行kubeadm init时如何更改ip?我在上创建主节点,并希望从aws和azure连接节点,但kubeadm使用的是仅从google云平台网络中看到的内部ip地址。我试着使用--apiserver广告地址=外部ip,但是在这个例子中,kubeadm卡在init中,如果控制平面图像必须被提取,这可能需要一分钟甚至更长的时间。防火墙打开了。
发布于 2018-02-23 11:32:34
如果我正确理解的话,您要做的就是使用运行kubeadm的GCP实例作为主节点和位于另外两个云上的两个节点。
要做到这一点,您需要的是有一个工作负载均衡器,外部IP指向您的实例并来回转发TCP数据包。
首先,我为我的实例创建了一个静态外部IP地址:
gcloud compute addresses create myexternalip --region us-east1然后,我为LB创建了一个目标池,并添加了实例:
gcloud compute target-pools create kubernetes --region us-east1
gcloud compute target-pools add-instances kubernetes --instances kubeadm --instances-zone us-east1-b添加代表指向目标池的外部IP和端口范围的转发规则。对于节点需要与kubeadm实例联系的端口,您必须这样做。使用前面创建的外部IP。
gcloud compute forwarding-rules create kubernetes-forward --address myexternalip --region us-east1 --ports 22 --target-pool kubernetes您现在可以检查您的转发规则,该规则如下所示:
gcloud compute forwarding-rules describe kubernetes-forward
IPAddress: 35.196.X.X
IPProtocol: TCP
creationTimestamp: '2018-02-23T03:25:49.810-08:00'
description: ''
id: 'XXXXX'
kind: compute#forwardingRule
loadBalancingScheme: EXTERNAL
name: kubernetes-forward
portRange: 80-80
region: https://www.googleapis.com/compute/v1/projects/XXXX/regions/us-east1
selfLink: https://www.googleapis.com/compute/v1/projects/XXXXX/regions/us-east1/forwardingRules/kubernetes-forward
target: https://www.googleapis.com/compute/v1/projects/XXXXX/regions/us-east1/targetPools/kubernetes现在,您可以按照通常的进程安装kubeadm并在实例中设置集群,kubeadm init在我的应用程序上花费了大约50秒。
之后,如果您在防火墙中正确打开了端口并将其转发给您的主人,那么AWS和Azure中的节点应该能够加入。
恭喜,现在您有了一个多云kubernetes集群!:)
https://stackoverflow.com/questions/48930047
复制相似问题