Cluster setup

The following sections show how you can set up your Kubernetes clusters hosted by Google, Azure, and Amazon to support CVMs.

Google Cloud Platform w/ GKE

To use CVMs with GKE, create a cluster with the following parameters set:

  • GKE Master version latest
  • node-version = "latest"
  • image-type = "UBUNTU"

Example:

gcloud beta container clusters create "YOUR_NEW_CLUSTER" \
    --node-version "latest" \
    --cluster-version "latest" \
    --image-type "UBUNTU"
    ...

Azure Kubernetes Service

If you're using Kubernetes version 1.18, Azure defaults to the correct Ubuntu node base image. When creating your cluster, set --kubernetes-version to 1.18.x or newer for CVMs.

Amazon Web Services w/ EKS

You can modify an existing AWS-hosted container to support CVMs by creating a nodegroup and updating your eksctl config spec.

  1. Define your config file in the location of your choice (we've named the file coder-node.yaml, but you can call it whatever you'd like):

    apiVersion: eksctl.io/v1alpha5
    kind: ClusterConfig
    
    metadata:
      version: "1.21"
      name: <YOUR_CLUSTER_NAME>
      region: <YOUR_AWS_REGION>
    
    nodeGroups:
      - name: coder-node-group
        amiFamily: Ubuntu2004 # AmazonLinux2 is also a supported option
        ami: <your Ubuntu 20.04 AMI ID>
    

    See here for a list of EKS-compatible Ubuntu AMI IDs

  2. Create your nodegroup using the config file you just created (be sure to provide the correct file name):

    eksctl create nodegroup --config-file=coder-node.yaml
    
See an opportunity to improve our docs? Make an edit.