Multi-zone Deployment in Azure Kubernetes Service

Prerequisites

Azure CLI 2.0.76 or higher version must be installed and configured.
  • Latest version of Azure CLI is part of TML Installer.
  • If deployment is done without using TML Installer, Azure CLI 2.0.76 or higher version must be installed and configured.

Creating an Azure Kubernetes Service Cluster that Uses Availability Zones

The Mashery Local Installer contains a built-in deployment manifest file, manifest-multi-zones.json, for reference. The file is located at /var/jenkins_home/docker-deploy/azure/k8s.

For more information on creating an Azure Kubernetes Service (AKS) cluster that uses availability zones, see Create an Azure Kubernetes Service (AKS) cluster that uses availability zones.

Verifying Zones

To verify a zone use the following command:
kubectl describe nodes | grep -e "Name:" -e "failure-domain.beta.kubernetes.io/zone"
An example of single-zone deployment is:
Name:               aks-nodepool1-25644521-vmss000000
                    failure-domain.beta.kubernetes.io/zone=eastus-1
Name:               aks-nodepool1-25644521-vmss000001
                    failure-domain.beta.kubernetes.io/zone=eastus-1
Name:               aks-nodepool1-25644521-vmss000002
                    failure-domain.beta.kubernetes.io/zone=eastus-1
An example of multiple-zone deployment is:
Name:               aks-nodepool1-13645385-vmss000000
                    failure-domain.beta.kubernetes.io/zone=eastus-1
Name:               aks-nodepool1-13645385-vmss000001
                    failure-domain.beta.kubernetes.io/zone=eastus-2
Name:               aks-nodepool1-13645385-vmss000002
                    failure-domain.beta.kubernetes.io/zone=eastus-1
Name:               aks-nodepool1-13645385-vmss000003
                    failure-domain.beta.kubernetes.io/zone=eastus-2
Name:               aks-nodepool1-13645385-vmss000004
                    failure-domain.beta.kubernetes.io/zone=eastus-1
Name:               aks-nodepool1-13645385-vmss000005
                    failure-domain.beta.kubernetes.io/zone=eastus-2
To get pod distribution:
kubectl get pods -o wide