Create User Node Pool

In this section you will add a user node pool to your AKS cluster. This will host all Arrikto EKF related workloads.

What You’ll Need

Procedure

To create the user node pool:

  1. Sign in to the Azure portal.

  2. Search for Kubernetes services and select the AKS cluster you previously created, arrikto-cluster.

  3. On the sidebar, under Settings, click Node pools.

  4. Click Add node pool and:

    • Set Node pool name to workers.
    • Set Mode to User.
    • Set OS type to Linux.
    • Set Availabitity zones to Zone 1.
    • Set Node size to L8s_v2 (8 vCPU, 64G RAM, 1.92T NVMe).
    • Set Scale method to Manual.
    • Set Node count to 3.
    ../../../_images/nodepool.png
    Troubleshooting
    You have insufficient quotas to create the node pool

    If the quotas in your Azure subscription are not sufficient to create the node pool, the Azure portal will display the following error:

    ../../../_images/quota-error.png

    In this case, you need to either delete other resources to free up quota, or follow these steps to create a support request to increase them. Note however that it can take a few hours until Azure increases your quotas.

    1. Go to the Help and Support page of the Azure portal.
    2. Click Create a support request.
    3. Set Issue type to Service and subscription limits (quotas).
    4. Set Subscription to your Azure subscription.
    5. Set Quota type to Compute-VM (cores-vCPUs) subscription limit increases.
    6. Click Next.
    7. Click Enter details.
    8. Set Deployment model to Resource Manager.
    9. Set Locations to the location of your AKS cluster.
    10. Set Quotas to LSv2 Series.
    11. Set New vCPU Limit to 64.
    12. Click Save and continue.
    13. Set Preferred contact method to your preferred contact method.
    14. Click Next.
    15. Click Create.
    Lsv2-series instances are not available in the selected zone

    It is possible that Lsv2-series instances are not available in zone 1 of your desired region. In this case, select one of the other available zones and attempt to set Node size again. If they are not available in any of the available zones then make sure you have followed the instructions in section Set Up Cloud Environment for Azure to select a region that supports instances of this type.

  5. Click Next: Optional settings.

  6. Set Max pods per node to 250, which is the maximum value supported for Azure CNI.

  7. Click Review + create and then Create.

  8. Wait for Azure to provision your user node pool.

  9. Switch to your management environment and taint the system node pool, so that application pods are scheduled only on the newly created user node pool:

    root@rok-tools:~# kubectl taint node \
    >    -l kubernetes.azure.com/mode=system \
    >    CriticalAddonsOnly=true:NoSchedule
    node/aks-agentpool-42403446-vmss000000 tainted
    node/aks-agentpool-42403446-vmss000001 tainted
    

Verify

  1. Verify that the node pool exists and ProvisioningState is succeeded:

    root@rok-tools:~# az aks nodepool list -o table \
    >    --resource-group ${AZ_RESOURCE_GROUP} \
    >    --cluster-name ${CLUSTERNAME}
    Name       OsType    VmSize           Count    MaxPods    ProvisioningState    Mode
    ---------  --------  ---------------  -------  ---------  -------------------  ------
    agentpool  Linux     Standard_DS2_v2  2        110        Succeeded            System
    workers    Linux     Standard_L8s_v2  3        250        Succeeded            User
    
  2. Verify that the nodes show up in the Kubernetes cluster:

    root@rok-tools:~# kubectl get nodes
    NAME                                STATUS   ROLES   AGE     VERSION
    aks-agentpool-42403446-vmss000000   Ready    agent   34m     v1.19.11
    aks-agentpool-42403446-vmss000001   Ready    agent   34m     v1.19.11
    aks-workers-42403446-vmss000000     Ready    agent   9m45s   v1.19.11
    aks-workers-42403446-vmss000001     Ready    agent   9m45s   v1.19.11
    aks-workers-42403446-vmss000002     Ready    agent   9m45s   v1.19.11
    

Summary

You have successfully created a user node pool to host Arrikto EKF workloads.

What’s Next

The next step is to verify that your nodes have the necessary local storage for Rok to use.