更改 kubeadm init ip 地址
Change kubeadm init ip address
如何在 运行 kubeadm init 时更改 ip?我在 google 计算引擎上创建主节点并想连接来自 aws 和 azure 的节点,但 kubeadm 使用内部 IP 地址,只能从 google 云平台网络看到。我尝试使用 --apiserver-advertise-address=external ip,但在这种情况下,kubeadm 卡在 [init] 如果必须拉取控制平面图像,这可能需要一分钟或更长时间。防火墙已打开。
如果我理解正确,你正在尝试做的是使用 GCP 实例 运行 kubeadm 作为主节点和位于另外两个云上的两个节点。
你需要的是有一个工作负载平衡器,其外部 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 集群! :)
如何在 运行 kubeadm init 时更改 ip?我在 google 计算引擎上创建主节点并想连接来自 aws 和 azure 的节点,但 kubeadm 使用内部 IP 地址,只能从 google 云平台网络看到。我尝试使用 --apiserver-advertise-address=external ip,但在这种情况下,kubeadm 卡在 [init] 如果必须拉取控制平面图像,这可能需要一分钟或更长时间。防火墙已打开。
如果我理解正确,你正在尝试做的是使用 GCP 实例 运行 kubeadm 作为主节点和位于另外两个云上的两个节点。
你需要的是有一个工作负载平衡器,其外部 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 集群! :)