创建和管理节点池

本页面介绍如何在 Distributed Cloud 连接区域中创建和管理 Google Distributed Cloud 节点池资源。

在 Distributed Cloud 连接的服务器上,创建集群时,系统会自动创建并填充节点池。您还可以在创建集群后选择配置其他节点池。

如需详细了解 Distributed Cloud 节点池,请参阅 Distributed Cloud Connected 的运作方式

创建节点池

如需创建 Distributed Cloud 节点池,请完成本部分中的步骤。

如需完成本任务,您必须在Google Cloud 项目中拥有以下角色:

  • Edge Container Admin 角色 (roles/edgecontainer.admin)
  • Edge Container Machine User 角色 (roles/edgecontainer.machineUser)

    如果包含将分配给此节点池的 Distributed Cloud Connected Machine 的 Google Cloud 项目与您要在其中创建节点池的Google Cloud 项目不同,您还必须对 Google Cloud 项目拥有此角色。

控制台

如果您使用的是 Google Cloud 控制台,则只能在创建集群时创建节点池。如需创建独立节点池,您必须使用 Google Cloud CLI 或 Distributed Cloud Edge Container API。

gcloud

使用 gcloud edge-cloud container clusters node-pools create 命令:

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 \
    --node-labels=NODE_LABELS \
    --machine-filter=MACHINE_FILTER \
    --local-disk-kms-key=POOL_KMS_KEY \
    --node-storage-schema=WORKER_NODE_STORAGE_SCHEMA

替换以下内容:

  • POOL_NAME:用于唯一标识相应节点池的描述性名称。此名称必须符合 RFC 1213 标准,并且只能包含小写字母数字字符和连字符 (-)。它必须以字母数字字符开头和结尾。
  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:此节点池的目标 Distributed Cloud Connected 集群所在的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。
  • ZONE_NAME:目标 Distributed Cloud 可用区的名称。此可用区必须位于 REGION 中指定的区域内。
  • NODE_COUNT:相应节点池中的节点数。
  • NODE_LABELS:一个以英文逗号分隔的键值对列表,其中包含节点池中各个节点的标签。
  • MACHINE_FILTER(可选):指定用于选择机器的过滤条件。如需查看可用于过滤的字段,请参阅获取有关机器的信息。 只有与此过滤条件匹配的机器才能加入此节点池。 对于多机架集群,请使用此标志指定 Distributed Cloud 连接的机架,这些机架的节点构成了此节点池。如果省略,则会将相应可用区中的所有可用节点添加到此节点池。
  • POOL_KMS_KEY(可选):您要用于此节点池的 Cloud KMS 密钥的完整路径。 例如:

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

    只有在您已将 Distributed Cloud Connected 与 Cloud Key Management Service 集成(如为本地存储启用对客户管理的加密密钥 (CMEK) 的支持中所述)时,此标志才适用。

  • WORKER_NODE_STORAGE_SCHEMA(可选):指定此节点池中包含的工作器节点的本地存储架构。如需了解详情,请参阅配置本地存储架构

API

projects.locations.clusters.nodePools.create 方法发出 POST 请求:

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,
 "nodeLabels": NODE_LABELS,
 "machineFilter": MACHINE_FILTER,
 "localDiskEncryption": {
   "kmsKey": POOL_KMS_KEY,
  }
}

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:此节点池的目标 Distributed Cloud Connected 集群所在的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。
  • NODEPOOL_ID:用于标识相应节点池资源的唯一程序化 ID。
  • REQUEST_ID:用于标识相应请求的唯一程序化 ID。
  • POOL_NAME:可唯一标识相应节点池的描述性名称。
  • LABELS:要应用于此节点池资源的标签列表。
  • ZONE_NAME:目标 Distributed Cloud 已连接区域的名称。此可用区必须位于 REGION 中指定的区域内。
  • NODE_COUNT:相应节点池中的节点数。
  • NODE_LABELS:一个以英文逗号分隔的键值对列表,其中包含节点池中各个节点的标签。
  • MACHINE_FILTER(可选):指定用于选择机器的过滤条件。只有与此过滤条件匹配的机器才能加入此节点池。对于多机架集群,请使用此标志指定 Distributed Cloud Connected 机架,这些机架的节点构成了此节点池。如果省略,则会将相应可用区中的所有可用节点添加到此节点池。
  • POOL_KMS_KEY(可选):您要用于此节点池的 Cloud KMS 密钥的完整路径。 例如:

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

    只有在您已将 Distributed Cloud Connected 与 Cloud Key Management Service 集成(如为本地存储启用对客户管理的加密密钥 (CMEK) 的支持中所述)的情况下,此参数才适用。

列出节点池

如需列出 Distributed Cloud 已连接的可用区中的 Distributed Cloud 节点池,请完成本部分中的步骤。

如需完成此任务,您必须在 Google Cloud 项目中拥有 Edge Container Viewer 角色 (roles/edgecontainer.viewer)。

gcloud

使用 gcloud edge-cloud container clusters node-pools list 命令:

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

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:已创建目标 Distributed Cloud connected 集群的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。

API

projects.locations.clusters.nodePools.list 方法发出 GET 请求:

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

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:目标 Distributed Cloud Connected Cluster 的创建 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud 集群的名称。
  • FILTER:将返回的结果限制为特定值的表达式。
  • PAGE_SIZE:每页要返回的结果数。
  • SORT_BY:用于对返回的结果进行排序的字段名称的英文逗号分隔列表。默认排序顺序为升序;如需降序排序,请在所需字段前加上 ~
  • PAGE_TOKEN:在响应的 nextPageToken 字段中,对上一个列表请求的响应中收到的令牌。发送此令牌可接收一页结果。

获取有关节点池的信息

如需获取有关分布式 Cloud 节点池的信息,请完成本部分中的步骤。

如需完成此任务,您必须在 Google Cloud 项目中拥有 Edge Container Viewer 角色 (roles/edgecontainer.viewer)。

gcloud

使用 gcloud edge-cloud container clusters node-pools describe 命令:

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

替换以下内容:

  • POOL_NAME:目标节点池的名称。
  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:与此节点池关联的 Distributed Cloud Connected 集群所在的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。

API

projects.locations.clusters.nodePools.get 方法发出 GET 请求:

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

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:与此节点池关联的 Distributed Cloud Connected 集群所在的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。
  • POOL_NAME:目标节点池的名称。

修改节点池

如需修改 Distributed Cloud 节点池,请完成本部分中的步骤。

如需完成此任务,您必须在 Google Cloud 项目中拥有 Edge Container Admin 角色 (roles/edgecontainer.admin)。

gcloud

使用 gcloud edge-cloud container clusters node-pools update 命令:

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 \
    --local-disk-kms-key=POOL_KMS_KEY

替换以下内容:

  • POOL_NAME:目标节点池的名称。
  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:与此节点池关联的 Distributed Cloud Connected 集群所在的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。
  • NODE_COUNT:相应节点池中的节点数。
  • MACHINE_FILTER(可选):指定用于选择机器的过滤条件。如需查看可用于过滤的字段,请参阅获取有关机器的信息。 对于多机架集群,请使用此标志指定 Distributed Cloud 连接的机架,这些机架的节点构成了此节点池。
  • POOL_KMS_KEY(可选):您要用于此节点池的 Cloud KMS 密钥的完整路径。 例如:

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

    只有在您已将 Distributed Cloud Connected 与 Cloud Key Management Service 集成(如为本地存储启用对客户管理的加密密钥 (CMEK) 的支持中所述)时,此标志才适用。

    如需将节点池恢复为使用 Google 管理的密钥,请使用 --use-google-managed-key 标志。

API

projects.locations.clusters.nodePools.patch 方法发出 PATCH 请求:

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,
  }
}

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:与此节点池关联的 Distributed Cloud Connected 集群所在的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。
  • NODEPOOL_ID:用于标识相应节点池的唯一程序化 ID。
  • REQUEST_ID:用于标识相应请求的唯一程序化 ID。
  • POOL_NAME:可唯一标识相应节点池的描述性名称。
  • LABELS:要应用于此节点池资源的标签列表。
  • ZONE_NAME:目标 Distributed Cloud 已连接区域的名称。此可用区必须位于 REGION 中指定的区域内。
  • NODE_COUNT:相应节点池中的节点数。
  • MACHINE_FILTER(可选):指定用于选择机器的过滤条件。只有与此过滤条件匹配的机器才能加入此节点池。对于多机架集群,请使用此标志指定 Distributed Cloud 连接的机架,这些机架的节点构成了此节点池。
  • KMS_KEY(可选):您要用于此节点池的 Cloud KMS 密钥的完整路径。 例如:

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

    只有在您已将 Distributed Cloud Connected 与 Cloud Key Management Service 集成(如为本地存储启用对客户管理的加密密钥 (CMEK) 的支持中所述)的情况下,此参数才适用。

删除节点池

如需删除 Distributed Cloud 节点池,请完成本部分中的步骤。

如需完成此任务,您必须在 Google Cloud 项目中拥有 Edge Container Admin 角色 (roles/edgecontainer.admin)。

gcloud

使用 gcloud edge-cloud container clusters node-pools delete 命令:

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

替换以下内容:

  • POOL_NAME:目标节点池的名称。
  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:与此节点池关联的 Distributed Cloud Connected 集群所在的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。

API

projects.locations.clusters.nodePools.delete 方法发出 DELETE 请求:

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

替换以下内容:

  • PROJECT_ID:目标 Google Cloud 项目的 ID。
  • REGION:与此节点池关联的 Distributed Cloud Connected 集群所在的 Google Cloud 区域。
  • CLUSTER_NAME:目标 Distributed Cloud Connected 集群的名称。
  • POOL_NAME:目标节点池的名称。
  • REQUEST_ID:用于标识相应请求的唯一程序化 ID。

后续步骤