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 thenextPageToken
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 clusters 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
- Deploy workloads on Distributed Cloud Edge
- Manage Zones
- Manage Machines
- Manage Clusters
- Manage VPN Connections
- Manage virtual machines
- Manage GPU workloads