将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
答案 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团队的人员可以提供其他详细信息,那就太好了。