首页 文章

使用Public-IP在Azure上运行的Kubernetes服务 . 什么是DNS名称? [关闭]

提问于
浏览
2

我有一个在Azure上运行的kubernetes服务 . 在创建部署和服务之后,该服务发布外部IP地址,并且我能够访问该IP上的服务:端口 .

但是,我想通过常规域名访问该服务 . 我知道在Azure上运行的kubernetes集群有自己的DNS,但我怎么能弄清楚服务的DNS名称是什么?

我正在运行多个服务,并且它们使用<ServiceName> . < Namespace> .svc.cluster.local命名约定相互引用,但是如果我尝试使用<ServiceName> . < Namespace> .svc . < kubernetesDNS> . < location> .azureapp.com,它不起作用 .

任何帮助将不胜感激 .

3 回答

  • 0

    在Azure中,您可以使用"Public IP addresses"资源并将服务使用的公共IP关联到默认Azure DNS命名空间下的DNS名称: .location.couldapp.azure.com . 例如: demo.k8s.service.centralindia.couldapp.azure.com

    注意:Dns记录应该是唯一的 .

    否则,请尝试创建Azure DNS以创建自己的域 .

    associating a public Ip to default dns record provided by azure

  • 1

    将服务公开为“Load Balancer”类型,它将自动创建一个带有公共IP的Azure负载均衡器 . Azure Public IP还具有您可以在azure.com域下使用的域名 .

    https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-ip-addresses-overview-arm

  • 0

    首先,为了使用DNS,您应该具有服务类型LoadBalancer . 它将为您的服务创建ExternalIp . 因此,如果你有和服务类型是LoadBalancer,你可以使用以下命令获取服务的外部IP地址:

    kubectl get services --all-namespaces
    

    然后复制外部IP并通过PowerShell提供以下命令

    P.S使用您自己的外部IP地址和服务名称使用您自己的服务名称更改IP地址

    $IP="23.101.60.87"
    $DNSNAME="yourservicename-aks"
    $PUBLICIPID=az network public-ip list --query "[?ipAddress!=null]|[?contains(ipAddress, '$IP')].[id]" --output tsv
    az network public-ip update --ids $PUBLICIPID --dns-name $DNSNAME
    

    所以在这个命令之后再次通过PowerShell给出命令,它会显示你的DNS:

    az network public-ip list --query "[?ipAddress!=null]|[?contains(ipAddress, '$IP')].[dnsSettings.fqdn]" -o table
    

    参考:http://alakbarv.azurewebsites.net/2019/01/25/azure-kubernetes-service-aks-get-dns-of-your-service/

相关问题