如何在 GCE Kubernetes 中为 loadBalancer 指定区域
How to specify region for loadBalancer in GCE Kubernetes
当尝试使用 kubectl expose --type="loadBalancer"
公开负载均衡器时,尽管为 GCE 集群指定了所需的区域和地区(在本例中为 us-central
),IP 仍默认为全局区域。因此,当我在 us-central
(IN_USE_ADDRESSES exceeded
错误)
中有大量免费 IP 时,我 运行 进入了全球配额限制
如何指定我希望负载平衡器使用 us-central1
范围内的 IP 地址。
此外,我找不到列出当前使用的全球 IP 地址以及正在使用它们的服务的方法。我只能看到我正在使用全局中所有可用的。
如果你只是公开,你会得到一个分配给你的转发规则的临时 ip,它显示在:
gcloud compute forwarding-rules list
如果你想要一个静态 ip,你可以在 相同区域 分配一个作为集群:
gcloud compute addresses create test-us-central --region us-central1
并公开给它 ip 的负载均衡器:
kubectl expose $RC-NAME --type=LoadBalancer --load-balancer-ip=$IP
您不能在其他区域使用 type=LoadBalancer 的服务分配 ip。含义:
gcloud compute forwarding-rules create $NAME --address $ADDRESS --target-pool $TARGET-POOL --region $REGION
$REGION 需要与 $TARGET-POOL 中的虚拟机所在的区域匹配,并且 $ADDRESS 也必须来自该区域。
如果你想使用来自另一个区域的ip,你需要在那个区域设置一个新的集群,或者使用多区域联邦集群(1.4中的alpha)。请注意,您可以联合 多区域 集群,并且存在于单个区域 (http://kubernetes.io/docs/admin/federation/) 中。
看起来负载平衡器必须是全局的才能跨 regions/zones 进行通信。问题是在拆除集群时,负载均衡器似乎保留在云控制台的网络部分。您必须进入并分别删除它们,以防止创建越来越多未使用的负载均衡器。
当尝试使用 kubectl expose --type="loadBalancer"
公开负载均衡器时,尽管为 GCE 集群指定了所需的区域和地区(在本例中为 us-central
),IP 仍默认为全局区域。因此,当我在 us-central
(IN_USE_ADDRESSES exceeded
错误)
如何指定我希望负载平衡器使用 us-central1
范围内的 IP 地址。
此外,我找不到列出当前使用的全球 IP 地址以及正在使用它们的服务的方法。我只能看到我正在使用全局中所有可用的。
如果你只是公开,你会得到一个分配给你的转发规则的临时 ip,它显示在:
gcloud compute forwarding-rules list
如果你想要一个静态 ip,你可以在 相同区域 分配一个作为集群:
gcloud compute addresses create test-us-central --region us-central1
并公开给它 ip 的负载均衡器:
kubectl expose $RC-NAME --type=LoadBalancer --load-balancer-ip=$IP
您不能在其他区域使用 type=LoadBalancer 的服务分配 ip。含义:
gcloud compute forwarding-rules create $NAME --address $ADDRESS --target-pool $TARGET-POOL --region $REGION
$REGION 需要与 $TARGET-POOL 中的虚拟机所在的区域匹配,并且 $ADDRESS 也必须来自该区域。
如果你想使用来自另一个区域的ip,你需要在那个区域设置一个新的集群,或者使用多区域联邦集群(1.4中的alpha)。请注意,您可以联合 多区域 集群,并且存在于单个区域 (http://kubernetes.io/docs/admin/federation/) 中。
看起来负载平衡器必须是全局的才能跨 regions/zones 进行通信。问题是在拆除集群时,负载均衡器似乎保留在云控制台的网络部分。您必须进入并分别删除它们,以防止创建越来越多未使用的负载均衡器。