Hemos definido nuestro Load Balancer interno.
apiVersion: v1 kind: Service metadata: name: ads-aks-test annotations: service.beta.kubernetes.io/azure-load-balancer-internal: "true" spec: type: LoadBalancer ports: - protocol: TCP port: 9000 selector: app: ads-aks-testTiene su IP e IP Externa. Queremos acceder a este servicio desde la máquina virtual en otra red virtual. Necesitamos saber su nombre de DNS: nombre completo por adelantado porque estamos implementando varias aplicaciones desde la plataforma de implementación y queremos saber en función de su nombre de servicio cómo podemos acceder a él una vez que se haya implementado con éxito y no esperar la dirección IP. por determinar (ya sea manual o automáticamente). Entonces, por ejemplo, esa es nuestra APP1, y luego automáticamente instalamos la aplicación APP2 que necesita llegar a este servicio. Entonces, por esa razón, nos gustaría evitar el uso de la información de IP.
¿Cómo podemos determinar cuál es el servicio "hostname" por el cual accederemos desde la segunda aplicación?
La única información en los documentos que encontré es: "Si su servicio usa una dirección IP pública estática o dinámica, puede usar la anotación de servicio service.beta.kubernetes.io/azure-dns-label-name para establecer una dirección pública Etiqueta DNS". - ¡pero esto es para el balanceador de carga público que no queremos!
Configure ExternalDNS en su clúster K8s. Aquí hay una guía para Azure Private DNS . Esto le permitirá actualizar el registro DNS para cualquier nombre de host que elija para el servicio, de forma dinámica a través de los recursos de Kubernetes.
La configuración de muestra se ve así (extraído de la guía de Azure Private DNS )
apiVersion: apps/v1 kind: Deployment metadata: name: externaldns spec: selector: matchLabels: app: externaldns strategy: type: Recreate template: metadata: labels: app: externaldns spec: containers: - name: externaldns image: k8s.gcr.io/external-dns/external-dns:v0.7.3 args: - --source=service - --source=ingress - --domain-filter=example.com - --provider=azure-private-dns - --azure-resource-group=externaldns - --azure-subscription-id=<use the id of your subscription> volumeMounts: - name: azure-config-file mountPath: /etc/kubernetes readOnly: true volumes: - name: azure-config-file secret: secretName: azure-config-fileUn equilibrador de carga interno hace que un servicio de Kubernetes sea accesible solo para las aplicaciones que se ejecutan en la misma red virtual que el clúster de Kubernetes.
https://docs.microsoft.com/en-us/azure/aks/internal-lb
parece que quieres esta configuración? ¿hay un emparejamiento? también debe permitir la comunicación en NSG. 
puedes hacer kubectl get svc
y use la External IP del servicio ads-aks-test como en la anotación que mencionó "verdadero", por lo que será una IP interna.
si espera resolver el nombre de los servicios en el mismo clúster, puede usar el nombre del servicio en sí.
https://kubernetes.io/docs/concepts/services-networking/service/
puede hacer algo como: your-svc.your-namespace.svc.cluster.local
tenga en cuenta que solo funcionará cuando los servicios estén en el mismo clúster de Kubernetes.