Azure Kubernetes (AKS) 不释放公共(public) IP

标签 azure kubernetes azure-aks

我们正在 Azure (AKS) 中使用托管 Kubernetes,但公共(public) IP 地址已用完。我们只需要一个,但 AKS 会在每次部署服务时创建一个新的公共(public) 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://learn.microsoft.com/en-my/azure/aks/static-ip
  # loadBalancerIP: x.x.x.x
  type: LoadBalancer

每次部署(kubectl create -f svc.yml)时,都会创建一个新的公共(public) IP。当它被删除(kubectl delete -f svc.yml)时,IP 仍然存在。尝试使用 loadBalanceIP 重用现有 IP 之一(如上面的注释所示)会失败,“公共(public) ip 地址...被资源中的多个 ipconfig 引用...”。

我们已经创建了一个服务请求,但需要很长时间,所以我希望这会更快。我不敢直接删除 AKS 托管资源中的公共(public) IP,因为这可能会导致问题。

有没有办法安全地释放或重用公共(public)IP?我们使用 Kubernetes 版本 1.7.12。我们也删除了服务引用的部署,这没有什么区别。

最佳答案

它应该在一段时间后删除 IP(例如最多 5 分钟)。所以你遇到的问题是一个错误。您可以检查k8s事件来查找错误并查看它。

此外,删除 Azure 资源也是完全安全的。如果它们消失了,k8s 也不会 panic 。

使用 k8s 1.9.1 进行测试

关于Azure Kubernetes (AKS) 不释放公共(public) IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49026371/

相关文章:

Azure 存储队列 - 是否有用于设置有害消息 TTL 的应用程序范围配置

azure - 如何在Azure函数输出绑定(bind)中禁用Blob存在检查

Azure devops Artifacts - 无法获取源

docker - Kubelet 无法获取 "/system.slice/docker.service"的 cgroup 统计信息

kubernetes - Azure AKS- Pane 保持CrashLoopBackOff状态

c# - 如何在 Worker Role 托管的 Web API 中获取客户端服务器的唯一标识符

kubernetes - 为什么 `kubectl logs` 只显示最近的日志行?

elasticsearch - Kubernetes - Ec2 - 获得 0/2 个节点的 Elasticsearch 可用 : 2 Insufficient memory

azure - 需要 Azure powershell 命令来获取 Azure Kubernetes 服务

azure - : getting unauthorize error while trying to create load balancer