kubernetes - 更改kubeadm的ip地址

标签 kubernetes google-cloud-platform google-compute-engine kubectl kubeadm

运行kubeadm init时如何更改ip?我在Google计算引擎上创建了主节点,并希望通过AWS和Azure连接节点,但kubeadm使用内部ip地址,该地址仅从google cloud platform network上看到。我尝试使用--apiserver-advertise-address = external ip,但在这种情况下kubeadm卡在[init]中,如果必须拉出控制平面图像,则可能需要一分钟或更长时间。防火墙已打开。

最佳答案

如果我正确理解,您要使用的是运行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集群! :)

关于kubernetes - 更改kubeadm的ip地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48930047/

相关文章:

kubernetes - GKE入口 Controller 多路径

azure - 我可以在多个 AKS 群集中使用我的 Azure DNS 区域吗

node.js - 不满意的需求错误 : Node on app engine flex environment

google-cloud-storage - 使用通配符搜索存储桶中的文件 google cloud storage .net

amazon-web-services - 使用 Terraform 在新创建的虚拟机上创建 Docker 容器

hadoop - 谷歌计算引擎为 hadoop 仪表板添加防火墙规则

CentOS 原子主机驾驶舱 kubernetes

dns - Pod 不通过 ingress 解析服务的域名

python - Google Cloud Datastore 客户端库创建实体

tomcat - Google Cloud VM 实例如何打开 IP 转发