我有一个在Azure上运行的kubernetes服务 . 在创建部署和服务之后,该服务发布外部IP地址,并且我能够访问该IP上的服务:端口 .
但是,我想通过常规域名访问该服务 . 我知道在Azure上运行的kubernetes集群有自己的DNS,但我怎么能弄清楚服务的DNS名称是什么?
我正在运行多个服务,并且它们使用<ServiceName> . < Namespace> .svc.cluster.local命名约定相互引用,但是如果我尝试使用<ServiceName> . < Namespace> .svc . < kubernetesDNS> . < location> .azureapp.com,它不起作用 .
任何帮助将不胜感激 .
3 回答
在Azure中,您可以使用"Public IP addresses"资源并将服务使用的公共IP关联到默认Azure DNS命名空间下的DNS名称:
.location.couldapp.azure.com
. 例如:demo.k8s.service.centralindia.couldapp.azure.com
注意:Dns记录应该是唯一的 .
否则,请尝试创建Azure DNS以创建自己的域 .
将服务公开为“Load Balancer”类型,它将自动创建一个带有公共IP的Azure负载均衡器 . Azure Public IP还具有您可以在azure.com域下使用的域名 .
https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-ip-addresses-overview-arm
首先,为了使用DNS,您应该具有服务类型LoadBalancer . 它将为您的服务创建ExternalIp . 因此,如果你有和服务类型是LoadBalancer,你可以使用以下命令获取服务的外部IP地址:
然后复制外部IP并通过PowerShell提供以下命令
P.S使用您自己的外部IP地址和服务名称使用您自己的服务名称更改IP地址
所以在这个命令之后再次通过PowerShell给出命令,它会显示你的DNS:
参考:http://alakbarv.azurewebsites.net/2019/01/25/azure-kubernetes-service-aks-get-dns-of-your-service/