DNS 记录分配给负载平衡服务的过程是什么?
我在 AKS 上创建了一个类型的负载均衡器的简单服务。该服务获取分配的外部 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
最好的方法是在元数据中使用注释,我测试了它,如果服务存在并且您申请,则不起作用,您首先需要删除 svc 并使用此元数据重新创建。
像这个例子:
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/azure-dns-label-name: $label-name
对于您的问题,您可以使用负载均衡器类型创建服务,并使用您之前使用 DNS 名称创建的静态负载均衡器 IP。然后,外部 IP 有一个 FQDN,IP 和 FQDN 都可以访问 AKS 容器中的应用程序。
按照将静态公共 IP 地址与 Azure Kubernetes 服务 (AKS( 负载均衡器配合使用中的步骤操作,在使用 CLI 命令创建公共 IP 时,请注意az network public-ip create
,不要忘记添加参数 --dns-name
。
Kubernetes 没有内置的进程。 你需要在外部这样做,比如使用Pulumi,或者你需要使用外部DNS。它会扫描入口定义,并将匹配的 A 记录应用于配置的 dns 域。
因此,会发生什么情况,它会找到入口资源,找到与其关联的主机,找到 IP 地址并在 dns 中创建与主机匹配且针对入口侦听的 IP 地址的 A 记录。
如果同时在 Azure 上托管 DNS,还有另一种方法。
在服务和部署中定义负载均衡器(如你一样(时,AKS 会自动分配公共 IP。此外,它还会创建"别名"记录。
在 Azure DNS 服务中,可以将新记录集映射到此别名记录。我不知道如何在 Azure 的后端管理它。如果 Azure 团队中的某个人可以提供更多详细信息,那就太好了。