Deploying GHES on Azure Kubernetes Service (AKS)
This document describes requirements and instructions specific to Azure Kubernetes Service.
Once you have a Kubernetes cluster up and running, follow the general steps for deploying KubeVirt and the GitHub Enterprise Server VM.
Requirements
Hardware
To avoid running the VM in emulation mode, you must choose an Azure VM SKU that supports nested virtualization (like Dv3 and Ev3).
For demo and evaluation purposes, Standard D8s v3 works well. For more details, see the “D2s-64s v3 latest generation” section on the Azure Linux VM pricing page.
Software
You need to either install the Azure CLI or use the Azure cloud Shell which is available in the Azure Portal.
Create a Kubernetes cluster
export RESOURCE_GROUP=ghes-kubevirt
export CLUSTER=ghes-kubevirt
Create a resource group:
az group create --name $RESOURCE_GROUP --location eastus
Create the cluster:
az aks create \
--resource-group $RESOURCE_GROUP \
--name $CLUSTER \
--node-count 1 \
--enable-addons monitoring \
--generate-ssh-keys
--node-vm-size Standard_D8s_v3
Connect to the cluster
If you don’t already have kubectl
(the tool for managing Kubernetes resources), install it using the Azure CLI:
az aks install-cli
To run kubectl
commands against the cluster you just created run:
az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER
Verify you can connect and there is at least one node in the cluster:
kubectl get nodes
Next steps
Now that you have your cluster up and running, follow the general instructions for deploying KubeVirt and the GitHub Enterprise Server VM.
Note: when creating the data volumes in the general instructions, note the alternate step for AKS which causes volumes to be created on a faster managed premium SSD drive versus a standard SSD drive.