Manage NodePools

This page describes how to manage NodePool resources in a Distributed Cloud Edge Zone.

For more information on Distributed Cloud Edge NodePools, see How Distributed Cloud Edge works.

Create a NodePool

To create a Distributed Cloud Edge NodePool, complete the steps in this section.

To complete this task, you must have the following roles on your Cloud project:

  • GDCE Admin
  • GDCE Machine User. You must also have this role on the Cloud project that contains the Distributed Cloud Edge Machines that will be assigned to this NodePool if different from the Cloud project in which you are creating the NodePool.

For more information, see Permissions and roles.

console

If using Google Cloud console, you can only create a NodePool when creating a Cluster. To create a standalone NodePool, you must use the gcloud CLI tool or the Distributed Cloud Edge API.

gcloud

gcloud edge-cloud container clusters node-pools create POOL_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME \
    --node-location=ZONE_NAME \
    --node-count=NODE_COUNT \
    --machine-filter=MACHINE_FILTER \
    --local-disk-kms-key=KMS_KEY

Replace the following:

  • POOL_NAME is a descriptive name that uniquely identifies this NodePool. This name must be RFC 1213-compliant and consist only of lowercase alphanumeric characters and hyphens (-). It must begin and end with an alphanumeric character.
  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the target Distributed Cloud Edge Cluster for this NodePool is hosted.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.
  • ZONE_NAME is the name of the target Distributed Cloud Edge Zone. This Zone must be in the region specified in REGION.
  • NODE_COUNT is the number of Nodes that this NodePool will hold.
  • MACHINE_FILTER (optional) specifies the filtering criteria for machine selection. Get information on a Machine to see the fields by which you can filter. Only machines matching this filter are allowed to join this NodePool.
  • KMS_KEY (optional) is the full path to the Cloud KMS key that you want to use with this NodePool. For example:

    /projects/myProject/locations/us-west1-a/keyRings/myKeyRing/cryptoKeys/myGDCE-Key

    This flag only applies if you have integrated Distributed Cloud Edge with Cloud Key Management Service as described in Enabling support for Customer-Managed Encryption Keys (CMEK) for local storage.

API

Create the NodePool by making a POST request to the projects.locations.Clusters.nodePools.create method as follows:

POST /v1/PROJECT_ID/locations/REGION/Clusters/CLUSTER_NAME?nodePoolId=NODEPOOL_ID&requestId=REQUEST_ID
{
 "name": POOL_NAME,
 "labels": { LABELS,
  },
 "nodeLocation": ZONE_NAME,
 "nodeCount": NODE_COUNT,
 "machineFilter": MACHINE_FILTER,
 "localDiskEncryption": {
   "kmsKey": KMS_KEY,
  }
}

Replace the following:

  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the target Distributed Cloud Edge Cluster for this NodePool is hosted.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.
  • NODEPOOL_ID is a unique programmatic ID that identifies this NodePool resource.
  • REQUEST_ID is a unique programmatic ID that identifies this request.
  • POOL_NAME is a descriptive name that uniquely identifies this NodePool.
  • LABELS is a list of labels to apply to this NodePool resource.
  • ZONE_NAME is the name of the target Distributed Cloud Edge Zone. This Zone must be in the region specified in REGION.
  • NODE_COUNT is the number of Nodes that this NodePool will hold.
  • MACHINE_FILTER (optional) specifies the filtering criteria for machine selection. Only machines matching this filter are allowed to join this NodePool.
  • KMS_KEY (optional) is the full path to the Cloud KMS key that you want to use with this NodePool. For example:

    /projects/myProject/locations/us-west1-a/keyRings/myKeyRing/cryptoKeys/myGDCE-Key

    This parameter only applies if you have integrated Distributed Cloud Edge with Cloud Key Management Service as described in Enabling support for Customer-Managed Encryption Keys (CMEK) for local storage.

List NodePools

To list the NodePools available in a Distributed Cloud Edge Zone, complete the steps in this section.

To complete this task, you must have the GDCE Viewer role on your Cloud project. For more information, see Permissions and roles.

gcloud

gcloud edge-cloud container clusters node-pools list \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME

Replace the following:

  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the target Distributed Cloud Edge Cluster has been created.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.

API

List the NodePools by making a GET request to the projects.locations.Clusters.nodePools.list method as follows:

GET /v1/PROJECT_ID/locations/REGION/Clusters/CLUSTER_NAME/nodePools?filter=FILTER&pageSize=PAGE_SIZE&orderBy=SORT_BY&pageToken=PAGE_TOKEN

Replace the following:

  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the target Distributed Cloud Edge Cluster has been created.
  • CLUSTER_NAME is the name of the target of the target Distributed Cloud Edge Cluster.
  • FILTER is an expression that constrains the returned results to specific values.
  • PAGE_SIZE is the number of results to return per page.
  • SORT_BY is a comma-delimited list of field names by which the returned results are sorted. The default sort order is ascending; for descending sort order, prefix the desired field with ~.
  • PAGE_TOKEN is a token received in the response to the last list request in the nextPageToken field in the response. Send this token to receive the following page of results.

Get information about a NodePool

To get information about a Distributed Cloud Edge NodePool, complete the steps in this section.

To complete this task, you must have the GDCE Viewer role on your Cloud project. For more information, see Permissions and roles.

gcloud

gcloud edge-cloud container clusters node-pools describe POOL_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME \
    --node-location=ZONE_NAME

Replace the following:

  • POOL_NAME is the name of the target NodePool.
  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the Distributed Cloud Edge Cluster associated with this NodePool is hosted.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.
  • ZONE_NAME is the name of the target Distributed Cloud Edge Zone. This Zone must be in the region specified in REGION.

API

Get information about the NodePool by making a GET request to the projects.locations.Clusters.nodePools.get method as follows:

GET /v1/PROJECT_ID/locations/REGION/Clusters/CLUSTER_NAME/nodePools/POOL_NAME

Replace the following:

  • REGION is the Google Cloud region in which the Distributed Cloud Edge Cluster associated with this NodePool is hosted.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.
  • PROJECT_ID is the ID of the target Google Cloud project.
  • POOL_NAME is is the name of the target NodePool.

Modify a NodePool

To modify a Distributed Cloud Edge NodePool, complete the steps in this section.

To complete this task, you must have the GDCE Admin role on your Cloud project. For more information, see Permissions and roles.

gcloud

gcloud edge-cloud container clusters node-pools update POOL_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME \
    --node-count=NODE_COUNT \
    --machine-filter=MACHINE_FILTER \

Replace the following:

  • POOL_NAME is the name of the target NodePool.
  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the Distributed Cloud Edge Cluster associated with this NodePool is hosted.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.
  • NODE_COUNT is the number of Nodes that this NodePool will hold.
  • MACHINE_FILTER (optional) specifies the filtering criteria for machine selection. Get information on a Machine to see the fields by which you can filter.

API

Modify the NodePool by making a PATCH request to the projects.locations.Clusters.nodePools.patch method as follows:

PATCH /v1/PROJECT_ID/locations/REGION/Clusters/CLUSTER_NAME?nodePoolId=NODEPOOL_ID&requestId=REQUEST_ID
{
 "name": POOL_NAME,
 "labels": { LABELS,
  },
 "nodeLocation": ZONE_NAME,
 "nodeCount": NODE_COUNT,
 "machineFilter": MACHINE_FILTER,
 "localDiskEncryption": {
   "kmsKey": KMS_KEY,
  }
}

Replace the following:

  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the Distributed Cloud Edge Cluster associated with this NodePool is hosted.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.
  • NODEPOOL_ID is a unique programmatic ID that identifies this NodePool.
  • REQUEST_ID is a unique programmatic ID that identifies this request.
  • POOL_NAME is a descriptive name that uniquely identifies this NodePool.
  • LABELS is a list of labels to apply to this NodePool resource.
  • ZONE_NAME is the name of the target Distributed Cloud Edge Zone. This Zone must be in the region specified in REGION.
  • NODE_COUNT is the number of Nodes that this NodePool will hold.
  • MACHINE_FILTER (optional) specifies the filtering criteria for machine selection. Only machines matching this filter are allowed to join this NodePool.
  • KMS_KEY (optional) is the full path to the Cloud KMS key that you want to use with this NodePool. For example:

    /projects/myProject/locations/us-west1-a/keyRings/myKeyRing/cryptoKeys/myGDCE-Key

    This parameter only applies if you have integrated Distributed Cloud Edge with Cloud Key Management Service as described in Enabling support for Customer-Managed Encryption Keys (CMEK) for local storage.

Delete a NodePool

To delete a Distributed Cloud Edge NodePool, complete the steps in this section.

To complete this task, you must have the GDCE Admin role on your Cloud project. For more information, see Permissions and roles.

gcloud

gcloud edge-cloud container node-pools delete POOL_NAME \
    --project=PROJECT_ID \
    --location=REGION \
    --cluster=CLUSTER_NAME

Replace the following:

  • POOL_NAME is the name of the target NodePool.
  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the Distributed Cloud Edge Cluster associated with this NodePool is hosted.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.

API

Delete the NodePool by making a DELETE request to the projects.locations.Clusters.nodePools.delete method as follows:

DELETE /v1/PROJECT_ID/locations/REGION/Clusters/CLUSTER_NAME/nodePools/POOL_NAME?requestId=REQUEST_ID

Replace the following:

  • PROJECT_ID is the ID of the target Google Cloud project.
  • REGION is the Google Cloud region in which the Distributed Cloud Edge Cluster associated with this NodePool is hosted.
  • CLUSTER_NAME is the name of the target Distributed Cloud Edge Cluster.
  • POOL_NAME is is the name of the target NodePool.
  • REQUEST_ID is a unique programmatic ID that identifies this request.

What's next