This document outlines how to configure k8gb to use the Azure Public DNS provider. Azure Private DNS is not supported as it does not support NS records at this time. For private DNS scenarios in Azure, please refer to the Windows DNS documentation and consider implementing it using VM-based DNS services such as Windows DNS or BIND.
In this example, we will use a registered app in Microsoft Entra ID and it's corresponding Client ID / Client Secret to authenticate with the Azure DNS zone. All of the supported authentication fields supported by external-dns are supported by k8gb and can be used in the azuredns
section of the k8gb
Helm chart values.yaml file.
In this sample solution we will deploy two private AKS clusters in different regions. A workload will be deployed to both clusters and exposed to the internet with the help of k8gb and Azure Public DNS.
The reference setup includes two private AKS clusters that can be deployed on two different regions for load balancing or to provide a failover solution.
Configurable resources:
- Resource groups
- VNet and subnets
- Managed Identity
- Clusters
- To run the provided sample, please use the provided Makefile here.
- Deploys all the required infrastructure and configurations
- Before executing, please fill all the local variables in the scripts with the correct naming for the resources in order to avoid having problems with your Azure policies
- Scripts will use Az CLI, please ensure that it is installed and logged when trying to execute the command
This action will create resource groups, vnets and private AKS clusters to run all required workloads
make deploy-infra
Install required Ingress controller in both clusters in order to deploy K8GB and demo application
make setup-clusters
This action will install K8gb in both clusters using the provided sample values.yaml for each cluster. Please ensure that the are correctly updated before execution
make deploy-k8gb
Deploys the sample Podinfo workload with failover GLSB configured using annotations in the Ingress resource samples. Ensure that the hosts on the samples are correctly updated before execution
make deploy-demo
- Destroys the lab environment created for this sample
make destroy-infra