繁体   English   中英

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

[英]How to set a Domain Name for a Load Balancer Service on AKS

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

我在 AKS 上创建了一个简单的 Type 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

对于您的问题,您可以使用负载均衡器类型创建服务,并使用您之前希望使用 DNS 名称创建的静态负载均衡器 IP。 然后是外部 IP 的 FQDN,IP 和 FQDN 都可以访问 AKS pod 中的应用程序。

按照将静态公共 IP 地址与 Azure Kubernetes 服务 (AKS) 负载均衡器一起使用中的步骤操作,注意,使用 CLI 命令az network public-ip create ,不要忘记添加参数--dns-name

最好的方法是在元数据中使用注释,我对其进行了测试,如果服务存在并且您应用它就不起作用,您需要首先删除 svc 并使用此元数据重新创建。

像这个例子:

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

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

那么会发生什么,它会找到入口资源,找到与其关联的主机,找到 IP 地址并在与主机匹配的 dns 中创建一个 A 记录,该记录以入口侦听的 IP 地址为目标。

如果您也在 Azure 上托管 DNS,还有另一种方法。

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

在 Azure DNS 服务中,可以将新记录集映射到此别名记录。 我不知道 Azure 的后端是如何管理的。 如果 Azure 团队的某个人可以提供更多详细信息,那就太好了。

暂无
暂无

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

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