Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to set a Domain Name for a Load Balancer Service on AKS

What is the process to assign a DNS record to a Load balanced service.

I have created a simple service of Type LoadBalancer on AKS. The service gets a external IP assigned and points to pods hosting a sample hello world application.

How do I browse my application using a DNS name, or setup the DNS name for the service in the first place. I can successfully browse to IP.

Service 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
like image 500
APSR Avatar asked Mar 03 '23 21:03

APSR


2 Answers

the best way is to use annotations in the metadata, I test it and don't work if the service exist and you apply, you need first to delete the svc and recreate with this metadata.

like this example:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/azure-dns-label-name: $label-name
like image 81
criptodev Avatar answered Mar 06 '23 10:03

criptodev


For your issue, you can create the service with Load Balancer type and use a static Load Balancer IP which you create with the DNS name as you wish before. Then there is an FQDN for the external IP and both the IP and FQDN can access the application in the AKS pod.

Follow the steps in Use a static public IP address with the Azure Kubernetes Service (AKS) load balancer, take care, when you create the public IP using the CLI command az network public-ip create, do not forget to add the parameter --dns-name.

like image 24
Charles Xu Avatar answered Mar 06 '23 11:03

Charles Xu