Installing AKS

    Prepare Microsoft Azure Kubernetes Service (AKS) for the Couchbase Autonomous Operator.

    Tutorials are accurate at the time of writing but rely heavily on third party software. Tutorials are provided to demonstrate how a particular problem may be solved. Use of third party software is not supported by Couchbase. For further help in the event of a problem, contact the relevant software maintainer.

    This guide walks through the recommended procedure for installing the Couchbase Autonomous Operator on Microsoft Azure Kubernetes Service (AKS).


    Install the azure-cli and login to the Azure Portal.

    $ az login

    Get a list of your subscriptions.

    $ az account list --output table

    Set the subscription ID or name you want to use.

    $ az account set --subscription "My Subscription"

    AKS Setup

    Create a Resource Group

    Resource groups allow administrators to co-locate and coordinate operations across a group of resources such as VMs, disks, and networks. All resources created by AKS will belong to this group.

    $ az group create --name myResourceGroup --location eastus

    Create a Network

    In order for XDCR to work, a layer 3 tunnel between the two cluster networks is required. This is so that nodes on one network can talk to nodes on the other, which are in turn port-forwarded onto your Couchbase nodes. As such, these must be non-overlapping. If we use the default setting, the first cluster would get the prefix, as would the second.

    $ az network vnet create -g myResourceGroup -n myAKSVnet  --address-prefix  --subnet-name myAKSSubnet --subnet-prefix

    Create the AKS Cluster

    Create an AKS cluster within the allocated resource group on the subnet created in the previous step. Note monitoring is enabled and ssh-keys are being auto-generated. Also, the default virtual machine type is Standard_DS2_v2 which supports a maximum of 4 disks per VM. (See Best Practices for recommended VM size based on the requirements of your deployment.)

    $ subnet_id=$(az network vnet show -g myResourceGroup -n myAKSVnet --query subnets[].id -o tsv)
    $ az aks create -g myResourceGroup -n myAKSCluster --node-count 3  --vnet-subnet-id $subnet_id --service-cidr --dns-service-ip --generate-ssh-keys   --location eastus  --network-plugin azure  --kubernetes-version 1.12.7

    To check that the --kubernetes-version exists within your AKS environment, run the following command:

    $ az aks get-versions --location eastus --query orchestrators[].orchestratorVersion -o tsv`

    Installing the Operator and Couchbase

    Once you’ve properly deployed the Kubernetes cluster with Microsoft AKS, you can install the Operator, and use it to deploy a Couchbase cluster as normal.

    If you do not already have kubectl installed in your CLI, run the following command:

    $ az aks install-cli

    Get the credentials for your cluster:

    $ az aks get-credentials --resource-group myResourceGroup --name myAKSCluster

    Upgrading the AKS Cluster

    An AKS cluster can be upgraded to a new version if applicable.

    The following steps outline how to perform an upgrade using the az-cli tool, but the same steps can be performed through the Azure Portal.

    To check if a new version is available for your cluster, use the get-upgrades command:

    $ az aks get-upgrades -g myResourceGroup -n myAKSCluster --query agentPoolProfiles[].upgrades -o tsv

    To proceed with an upgrade, simply run the upgrade command with the desired version:

    $ az aks upgrade -g myResourceGroup -n myAKSCluster --kubernetes-version 1.13.5