创建具有 Arm 节点的集群和节点池


本页面介绍如何创建具有 Arm 节点的 GKE 标准集群或节点池,以便在 Google Kubernetes Engine (GKE) 上运行 Arm 工作负载。如需了解如何在 Autopilot 集群上部署 Arm 工作负载,请参阅在 Arm 架构上部署 Autopilot 工作负载

Tau T2A 机器系列是 Google Cloud 提供的首个基于 Arm 的机器系列。如需详细了解 Arm 的优势以及如何为您的工作负载选择最佳机器系列,请参阅计算上的 Arm 虚拟机

利用 GKE,您可以创建节点池具有一种架构类型(例如 Arm)或多种架构类型(例如 Arm 和 x86)的集群。运行具有多种架构类型的节点时,您可以跨架构将工作负载部署到同一集群。

如需详细了解如何将 Arm 节点与 GKE 集群搭配使用,请参阅 GKE 上的 Arm 工作负载

准备工作

在开始之前,请确保您已执行以下任务:

  • 启用 Google Kubernetes Engine API。
  • 启用 Google Kubernetes Engine API
  • 如果您要使用 Google Cloud CLI 执行此任务,请安装初始化 gcloud CLI。 如果您之前安装了 gcloud CLI,请运行 gcloud components update 以获取最新版本。

创建具有 Arm 节点池的集群

以下说明介绍了如何创建具有运行 Tau T2A 机器系列中 Arm 节点的节点池的新集群。

您可以使用 gcloud CLI、Google Cloud 控制台或 Terraform 创建集群。

gcloud

使用 Arm 节点创建具有默认节点池的新可用区级集群:

gcloud container clusters create CLUSTER_NAME \
    --zone ZONE  \
    --node-locations NODE_LOCATIONS \
    --machine-type T2A_MACHINE_TYPE \
    --num-nodes NUM_NODES

替换以下内容:

  • CLUSTER_NAME:具有 Arm 节点池的新集群的名称。
  • ZONE:集群的可用区,例如 us-central1-a。该可用区必须是 Tau T2A 机器系列的适用可用区之一。如需创建区域级集群,请使用 --region=REGION 标志。该区域必须是 Tau T2A 机器系列的适用区域之一。
  • NODE_LOCATIONS:节点池的可用区,例如 us-central1-a。您必须从 Tau T2A 机器系列的可用可用区中进行选择,否则节点池创建可能会失败。
  • T2A_MACHINE_TYPE可用的 T2A 机器类型之一,例如 t2a-standard-16
  • NUM_NODES:Arm 节点池的节点数。

如果您要为集群设置其他设置,请参阅 gcloud container clusters create 参考文档,了解创建集群时的可用设置的完整列表。

控制台

  1. 转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    转到 Google Kubernetes Engine

  2. 点击 创建

  3. 根据需要配置集群。如需了解详情,请参阅创建可用区级集群创建区域级集群的说明。

  4. 选择可使用 Arm 节点的位置。

    1. 集群基本信息部分中的位置类型下,选择“可用区级”或“区域级”:
    2. 在下拉菜单中,选择可使用 Arm 节点的可用区或区域。
    3. 勾选指定默认节点位置对应的复选框。选择可使用 Arm 节点的可用区。
  5. 如需选择 Arm 机器类型,请在节点子部分的配置节点设置 > 机器配置 > 机器系列下,选择通用。在系列下拉菜单中,选择 T2A。在机器类型下拉菜单中,选择适用的选项。

  6. 点击创建

Terraform

如需使用 Terraform 创建具有使用 Arm 节点的默认节点池的可用区级集群,请参阅以下示例:

resource "google_container_cluster" "default" {
  name               = "gke-standard-zonal-arm-cluster"
  location           = "us-central1-a"
  node_locations     = ["us-central1-b", "us-central1-f"]
  initial_node_count = 2

  node_config {
    machine_type    = "t2a-standard-1"
    service_account = google_service_account.default.email
  }

  # Set `deletion_protection` to `true` will ensure that one cannot
  # accidentally delete this instance by use of Terraform.
  deletion_protection = false
}

如需详细了解如何使用 Terraform,请参阅针对 GKE 的 Terraform 支持

将 Arm 节点池添加到 GKE 集群

您可以使用 gcloud CLI、Google Cloud 控制台或 Terraform 为 GKE Standard 集群添加新的节点池。

使用任何类型的节点创建 GKE 集群时,建议您为节点池创建并使用具有最低权限的 Identity and Access Management (IAM) 服务账号,而不是使用 Compute Engine 默认服务账号。如需了解如何创建具有最低权限的服务账号,请参阅强化集群的安全性

gcloud

将 Arm 节点池添加到现有集群:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster CLUSTER_NAME \
    --zone ZONE \
    --node-locations NODE_LOCATIONS \
    --machine-type T2A_MACHINE_TYPE \
    --num-nodes NUM_NODES \
    --service-account SERVICE_ACCOUNT

替换以下内容:

  • NODE_POOL_NAME:要添加到现有集群的新 Arm 节点池的名称。
  • ZONE:现有集群的可用区。对于区域级集群,请将 --region=REGION 标志与集群的区域结合使用。
  • CLUSTER_NAME:您要在其中添加 Arm 节点池的集群的名称。
  • NODE_LOCATIONS:节点池的可用区,例如 us-central1-a。您必须从 Tau T2A 机器系列的可用可用区中进行选择,否则节点池创建可能会失败。
  • T2A_MACHINE_TYPE可用的 T2A 机器类型之一,例如 t2a-standard-16
  • NUM_NODES:Arm 节点池的节点数。
  • SERVICE_ACCOUNT:节点要使用的 IAM 服务账号的名称。如果省略,则节点池会使用 Compute Engine 默认服务账号

如果您要为节点池设置其他设置,请参阅 gcloud container node-pools create 参考文档,了解创建节点池时的可用设置的完整列表。

控制台

如需将 Arm 节点池添加到现有集群,请执行以下步骤:

  1. 转到 Google Cloud 控制台中的 Google Kubernetes Engine 页面。

    前往 Google Kubernetes Engine

  2. 在集群列表中,点击您要修改的集群的名称。

  3. 点击 添加节点池

  4. 配置节点池。

  5. 选择可使用 Arm 节点的节点位置。

    1. 节点池详情部分中,勾选指定节点位置复选框。
    2. 选择可使用 Arm 节点的可用区。
  6. 如需选择 Arm 机器类型,请在节点子部分的配置节点设置 > 机器配置 > 机器系列下,选择通用。在系列下拉菜单中,选择 T2A。在机器类型下拉菜单中,选择适用的选项。

  7. 在导航菜单中,点击安全

  8. 服务账号下拉菜单中,选择要使用的节点池的 IAM 服务账号。默认情况下,节点池使用 Compute Engine 默认服务账号

  9. 点击创建以添加节点池。

Terraform

如需使用 Terraform 将使用 Arm 节点的节点池添加到现有集群,请参阅以下示例:

resource "google_container_node_pool" "default" {
  name           = "gke-standard-zonal-arm-node-pool"
  cluster        = google_container_cluster.default.id
  node_locations = ["us-central1-a"]
  node_count     = 1

  node_config {
    machine_type = "t2a-standard-1"

    service_account = google_service_account.default.email
  }
}

google_container_cluster.default.id 替换为您的集群名称。

如需详细了解如何使用 Terraform,请参阅针对 GKE 的 Terraform 支持

后续步骤