如何在AKS上为负载均衡器服务设置域名

时间:2019-06-08 06:29:30

标签: azure kubernetes azure-kubernetes

将DNS记录分配给负载平衡服务的过程是什么。

我在AKS上创建了一个类型为LoadBalancer的简单服务。该服务会分配一个外部IP,并指向托管示例hello world应用程序的Pod。

如何使用DNS名称浏览应用程序,或者首先为服务设置DNS名称。我可以成功浏览到IP。

服务yml

apiVersion: v1
kind: Service
metadata:
 name: transactionapi-svc
 labels:
   version: v1
spec:
 type: LoadBalancer
 ports:
  - name: http
    port: 80
  - name: https
    port: 443
 selector:
  app: transaction-api

4 个答案:

答案 0 :(得分:2)

最好的方法是在元数据中使用注释, 我对其进行了测试,如果该服务存在并且您申请了该服务,它将无法正常工作,您需要首先删除svc并使用此元数据重新创建。

例如以下示例:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/azure-dns-label-name: $label-name

答案 1 :(得分:0)

没有任何内置于kubernetes的过程。您需要从外部进行操作,例如使用pulumi,或者需要使用external-dns。它会扫描您的入口定义,并将匹配的A记录应用于已配置的dns域。

因此,发生什么情况,它找到了入口资源,找到了与之关联的主机,找到了IP地址,并在dns中创建了与该主机匹配的A记录,该记录的目标是入口侦听的IP地址。

答案 2 :(得分:0)

对于您的问题,您可以使用Load Balancer类型创建服务,并使用之前使用DNS名称创建的静态Load Balancer IP。然后有一个用于外部IP的FQDN,并且IP和FQDN都可以访问AKS窗格中的应用程序。

请遵循Use a static public IP address with the Azure Kubernetes Service (AKS) load balancer中的步骤,当您使用CLI命令az network public-ip create创建公用IP时,请不要忘记添加参数--dns-name

答案 3 :(得分:0)

如果您也将DNS托管在Azure上,则是另一种方法。

在服务中定义LoadBalancer(如您所愿)并进行部署时,AKS会自动分配一个公共IP。此外,它还会创建一个“别名”记录。

在Azure DNS服务中,可以将新记录集映射到该别名记录。我不知道如何在Azure的后端对此进行管理。如果Azure团队的人员可以提供其他详细信息,那就太好了。