Using K8GB on Azure

Sample solution

Sample solution will create a common hub and spoke architecture with two AKS clusters in different regions

GLSB with K8gb on Azure

Azure based deployment with Windows DNS integration

Here we provide an example of k8gb deployment in Azure environment with Windows DNS as edgeDNS provider.

Reference Setup

The reference setup includes two AKS clusters that can deployed on two different regions for load balancing or provide a failover solution.

The solution design can be found here.

Configurable resources:

Run the sample

Deploy infrastructure

This action will create resource groups, vnets, peering between vnets and AKS clusters to run all required workloads

make deploy-infra

Setup clusters

Install required Ingress controller in both clusters in order to deploy K8GB and demo application

make setup-clusters

Configure GSS-TSIG authentication for DNS updates

Before deploying K8GB and the demo workload, ensure required configurations on Windows DNS

Domain Controller config

Network Policy - Kerberos auth

DNS Secure Updates

DNS Zone Transfers

K8GB / ExternalDNS configuration

rfc2136:
  enabled: true
  rfc2136Opts:
    - host: AD-DC.mbcpk8gb.local #when using gssTsig, use the FQDN of the host, not an IP
    - port: 53
  rfc2136auth:
    insecure: 
      enabled: false
    tsig:
      enabled: false
      tsigCreds:
        - tsig-secret-alg: hmac-sha256
        - tsig-keyname: externaldns-key
    gssTsig:
      enabled: true
      gssTsigCreds:
        - kerberos-username: ad-user-account
        - kerberos-password: ad-user-account-password
        - kerberos-realm: mbcpcloud.lab

Install K8gb

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

Install demo app

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

Destroy lab

make destroy-infra