如何在GCE Kubernetes中为loadBalancer指定区域

时间:2016-10-10 19:29:45

标签: kubernetes google-kubernetes-engine

尝试使用kubectl expose --type="loadBalancer"公开负载均衡器时,尽管为GCE集群指定了所需的区域和区域(在这种情况下为us-central),但IP默认为全局区域。因此,当us-central中有大量免费IP(IN_USE_ADDRESSES exceeded错误)

时,我遇到了全局的配额限制

如何指定我希望负载均衡器使用us-central1范围内的IP地址。

此外,我找不到列出当前使用的全局IP地址以及使用它们的服务的方法。我只能看到我在全球范围内使用所有可用的。

2 个答案:

答案 0 :(得分:0)

如果你只是暴露,你会得到一个短暂的ip分配给你的转发规则,它显示在:

  

gcloud计算转发规则列表

如果您想要静态IP,可以在相同区域中分配一个作为群集:

  

gcloud计算地址创建test-us-central --region us-central1

暴露负载均衡器,给它ip:

  

kubectl公开$ RC-NAME --type = LoadBalancer --load-balancer-ip = $ IP

您无法在服务类型为LoadBalancer的其他地区分配IP。含义:

  

gcloud compute forwarding-rules创建$ NAME - 地址$ ADDRESS --target-pool $ TARGET-POOL - 区域$ REGION

$ REGION需要匹配$ TARGET-POOL中vms的区域,$ ADDRESS也必须来自该区域。

如果要使用来自其他区域的IP,则需要在该区域中设置新群集,或者使用多区域联合群集(1.4中的alpha)。请注意,您可以联合多区域群集,并且该群集位于单个区域(http://kubernetes.io/docs/admin/federation/)中。

答案 1 :(得分:0)

看起来负载均衡器必须是全局的,才能跨区域/区域进行通信。问题是,在拆除群集时,负载均衡器会保留在云控制台的“网络”部分中。您必须单独进入并删除它们,以防止创建越来越多未使用的负载平衡器。