【发布时间】:2018-02-28 09:43:30
【问题描述】:
我们在 Azure (AKS) 中使用托管 Kubernetes,但公共 IP 地址已用完。我们只需要一个,但 AKS 每次部署服务时都会创建一个新的公共 IP,并且在删除服务时它不会删除它。例如:
apiVersion: v1
kind: Service
metadata:
name: somename
spec:
ports:
- port: 443
targetPort: 443
selector:
app: somename
# Also tried this to reuse public IP in AKS MC resource group
# https://docs.microsoft.com/en-my/azure/aks/static-ip
# loadBalancerIP: x.x.x.x
type: LoadBalancer
每次部署 (kubectl create -f svc.yml) 时都会创建一个新的公共 IP。当它被删除 (kubectl delete -f svc.yml) 时,IP 仍然存在。尝试在上面的 cmets 中使用 loadBalanceIP 重用现有 IP 之一失败,“公共 ip 地址...被资源中的多个 ipconfigs 引用...”。
我们已经创建了一个服务请求,但它需要很长时间,所以我希望这会更快。我不敢只删除 AKS 托管资源中的公共 IP,因为这可能会导致问题。
有没有办法安全地释放或重用公共 IP?我们使用的是 Kubernetes 版本 1.7.12。我们也删除了服务引用的部署,没有区别。
【问题讨论】:
-
您好,在集群中部署应用程序时,您应该使用 apply 而不是 create。现在,如果您更新已经存在的应用程序,公共 IP 将不会改变。
-
谢谢!这将减少客户流失,但仍不会释放旧地址,因此它只是权宜之计。如果每次创建负载均衡器时都会创建一个新地址,并且在销毁时不回收,那么它们最终会用完。
-
是的。我也在使用AKS。但是,我没有遇到这个错误。当服务被删除时,它应该从外部负载均衡器中删除。
-
您使用的是 Kubernetes 1.7.x 还是较新的版本之一?
-
我有 k8s 1.8.1
标签: azure kubernetes azure-aks