尝试使用kubectl expose --type="loadBalancer"
公开负载均衡器时,尽管为GCE集群指定了所需的区域和区域(在这种情况下为us-central
),但IP默认为全局区域。因此,当us-central
中有大量免费IP(IN_USE_ADDRESSES exceeded
错误)
如何指定我希望负载均衡器使用us-central1
范围内的IP地址。
此外,我找不到列出当前使用的全局IP地址以及使用它们的服务的方法。我只能看到我在全球范围内使用所有可用的。
答案 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)
看起来负载均衡器必须是全局的,才能跨区域/区域进行通信。问题是,在拆除群集时,负载均衡器会保留在云控制台的“网络”部分中。您必须单独进入并删除它们,以防止创建越来越多未使用的负载平衡器。