Creating a node pool is useful when you need to run workloads that require machines with specific resources, such as a GPU, additional memory, or specialized network or storage hardware.

Prepare the environment

  1. Set the environment variable to the name you assigned this cluster.

    export CLUSTER_NAME=aws-example
    CODE

    See AWS Install Options for information on naming your cluster.

  2. If your workload cluster is self-managed, as described in Make the New Cluster Self-Managed, configure kubectl to use the kubeconfig for the cluster.

    export KUBECONFIG=${CLUSTER_NAME}.conf
    CODE

  3. Define your node pool name.

    export NODEPOOL_NAME=example
    CODE

Create an AWS node pool

Availability zones (AZs) are isolated locations within data center regions from which public cloud services originate and operate. Because all the nodes in a node pool are deployed in a single Availability Zone, you may wish to create additional node pools is to ensure your cluster has nodes deployed in multiple Availability Zones.

By default, the first Availability Zone in the region will be used for the Nodes in the node pool, set --availability-zone to create the Nodes in a different Availability Zone.

Create a new AWS node pool with 3 replicas using this command:

dkp create nodepool aws ${NODEPOOL_NAME} \
    --cluster-name=${CLUSTER_NAME} \
    --replicas=3
CODE

This example uses default values for brevity. Use flags to define custom instance types, AMIs, and other properties.

Advanced users can use a combination of the --dry-run and --output=yaml or --output-directory=<existing-directory> flags to get a complete set of node pool objects to modify locally or store in version control.

For more information regarding this flag or others, please refer to the DKP CLI Create section of the documentation for either cluster or nodepool and select your provider.