繁体   English   中英

Azure k8s 负载均衡器 DNS 名称

[英]Azure k8s load balancer DNS name

我有一个 Azure Kubernetes 服务集群,运行版本1.15.7 该集群最近替换了旧的集群版本 ( 1.12.something )。 过去,一旦各种服务 Pod 启动并运行,我们会在 Azure 门户中创建一个公共 IP 资源并为其分配一个名称,然后创建一个Service资源,如下所示:

apiVersion: v1
kind: Service
metadata:
  name: myservice-frontend
  labels:
    app: myservice
spec:
  ports:
  - port: 80
    name: myservice-frontend
    targetPort: 80
  - port: 443
    name: myservice-frontend-ssl
    targetPort: 443
  selector:
    app: myservice-frontend
  type: LoadBalancer
  loadBalancerIP: 1.2.3.4

最后,我们将公共 IP 添加到流量管理器实例。

由于升级到 1.15,这似乎不再起作用。 我们可以完成上述所有步骤,但是一旦创建了服务/负载均衡器,公共 IP 就会丢失其 DNS 名称,这会导致它从流量管理器中被逐出。 我们可以重置名称,但在 36-48 小时内它又会丢失。 我怀疑 AKS 正在尝试将名称应用于关联的 IP 地址,但由于我没有在上面定义一个名称,因此它只是将其设置为 null。

如何告诉 AKS 分配给公共 IP 的名称? 更好的是,我是否可以跳过静态公共 IP,让 AKS 提供动态地址,然后简单地将 DNS 名称添加到流量管理器?

这确实是 AKS 1.15.7一个错误

Azure - PIP dns 标签将被默认删除

结果是,这是 1.15 中新功能的一部分,允许在服务配置中设置 LoadBalancer IP 的 DNS 标签。 所以,上面的定义可以变成:

apiVersion: v1
kind: Service
metadata:
  name: myservice-frontend
  labels:
    app: myservice
  annotations:
    service.beta.kubernetes.io/azure-dns-label-name: myservice-frontend
spec:
  ports:
  - port: 80
    name: myservice-frontend
    targetPort: 80
  - port: 443
    name: myservice-frontend-ssl
    targetPort: 443
  selector:
    app: myservice-frontend
  type: LoadBalancer

并且该服务将被自动分配一个带有注释 DNS 名称的新静态 IP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM