创建 Alpha 版集群


本页面介绍如何创建 Google Kubernetes Engine (GKE) Alpha 版集群,即启用了 Kubernetes Alpha 版 API 和功能的 GKE 集群。对于 Alpha 版集群,默认情况下会启用 Kubernetes 版本提供的所有 Alpha 版特性门控。Kubernetes 默认启用的 Beta 版特性门控也会启用。您可以修改 GKE 默认设置,自行选择要启用的特性门控。如需详细了解特定版本中可用的特性门控,以及默认启用的 Beta 版功能,请参阅 Kubernetes 文档中的 Alpha 版或 Beta 版功能的特性门控

如需详细了解 GKE 集群的工作原理以及如何选择要创建的 GKE 集群类型,请参阅 GKE 集群架构集群配置选项简介

准备工作

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

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

为 GKE 设置 IAM 服务账号

GKE 使用关联到节点的 IAM 服务账号来运行日志记录和监控等系统任务。这些节点服务账号必须至少拥有项目的 Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount) 角色。默认情况下,GKE 会将 Compute Engine 默认服务账号(在您的项目中自动创建)用作节点服务账号。

如需向 Compute Engine 默认服务账号授予 roles/container.defaultNodeServiceAccount 角色,请完成以下步骤:

控制台

  1. 前往欢迎页面:

    前往“欢迎”页面

  2. 项目编号字段中,点击 复制到剪贴板
  3. 转到 IAM 页面:

    转到 IAM

  4. 点击 授予访问权限
  5. 新的主账号字段中,指定以下值:
    PROJECT_NUMBER-compute@developer.gserviceaccount.com
    PROJECT_NUMBER 替换为您复制的项目编号。
  6. 选择角色菜单中,选择 Kubernetes Engine Default Node Service Account 角色。
  7. 点击保存

gcloud

  1. 找到您的 Google Cloud 项目编号:
    gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)"

    PROJECT_ID 替换为您的项目 ID。

    输出内容类似如下:

    12345678901
    
  2. roles/container.defaultNodeServiceAccount 角色授予 Compute Engine 默认服务账号:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
        --role="roles/container.defaultNodeServiceAccount"

    PROJECT_NUMBER 替换为上一步中的项目编号。

创建 Alpha 版集群

您可以使用 Google Cloud 控制台或 gcloud CLI 创建 Alpha 版集群。如需创建集群并指定要启用或停用的特性门控(不同于默认设置),请使用 gcloud CLI。

控制台

  1. 在 Google Cloud 控制台中,前往创建 Kubernetes 集群页面。

    前往“创建一个 Kubernetes 集群”页面

  2. 集群基本信息部分,完成以下操作:

    1. 为集群输入名称
    2. 对于位置类型,选择可用区,然后为您的集群选择所需的可用区
    3. 如果要创建多可用区集群,请选中指定默认节点位置复选框,然后选择您希望运行节点池的其他可用区。
    4. 发布渠道下拉列表中,选择无渠道

    5. 可选:从版本下拉列表中指定控制平面版本。

  3. 可选:为新集群配置其他设置。

  4. 可选(适用于 GKE Enterprise):如果您要将新集群注册到舰队,请前往舰队注册部分,然后按照 Google Cloud 控制台有关创建和注册新集群的说明完成集群注册。

  5. 在导航窗格的节点池下,点击默认池 (default-pool)。

  6. 节点池详情部分,完成以下操作:

    1. 为默认节点池输入一个名称
    2. 可选:选择节点版本
    3. 输入要在集群中创建的节点数。您必须具有节点及其资源(例如防火墙路由)的可用资源配额
    4. 可选:您可以选择停用节点自动升级,但我们建议您在选择此选项之前先查看停用节点自动升级功能之前的注意事项
    5. 清除启用自动升级启用自动修复
  7. 在导航窗格的节点池下,点击节点

  8. 映像类型下拉列表中,选择节点映像

  9. 选择要用于实例的默认机器配置。每种机器类型的计费方式都各不相同。默认机器类型为 e2-medium。如需了解机器类型价格信息,请参阅机器类型价格表

  10. 启动磁盘类型下拉列表中,选择磁盘类型

  11. 输入启动磁盘大小

  12. 可选:在导航窗格的节点池下,点击安全

  13. (可选)为节点指定自定义 IAM 服务账号:
    1. 高级设置页面中,展开安全部分。
    2. 服务账号菜单中,选择您想使用的服务账号。

    我们强烈建议您指定节点可以使用的具有最低权限的 IAM 服务账号,而不是 Compute Engine 默认服务账号。如需了解如何创建具有最低权限的服务账号,请参阅使用最小权限服务账号

  14. 在导航窗格的集群下,点击功能

  15. 点击在此集群中启用 Kubernetes Alpha 版功能

  16. 选择我明白相关后果,阅读并确认警告。

  17. 点击创建

gcloud

运行以下命令:

gcloud container clusters create CLUSTER_NAME \
    --enable-kubernetes-alpha \
    --no-enable-autorepair \
    --no-enable-autoupgrade \
    --location CONTROL_PLANE_LOCATION [\
    --alpha-cluster-feature-gates FEATURE_GATES_LIST]

替换以下内容:

  • CLUSTER_NAME:您为集群选择的名称。
  • CONTROL_PLANE_LOCATION:集群控制平面的 Compute Engine 位置。为区域级集群提供区域,或为可用区级集群提供可用区。
  • --cluster-version VERSION:(可选)指定要在集群中运行的 GKE 版本。如果省略,集群将运行创建集群的默认补丁版本(对于无渠道),如当前版本表格所示。
  • FEATURE_GATES_LIST:要启用或停用的特性门控(不同于默认设置)的列表。每个字符串都表示特性门控的启用或停用状态。例如 featureX=true, featureY=false。如果您省略此标志,GKE 会使用 GKE 的默认设置创建集群,这意味着系统会启用 Kubernetes 版本提供的所有 Alpha 版特性门控。Kubernetes 默认启用的 Beta 版特性门控也会启用。如需详细了解特定版本中可用的特性门控,以及默认启用的 Beta 版功能,请参阅 Kubernetes 文档中的 Alpha 版或 Beta 版功能的特性门控。添加此标志后,您可以修改 GKE 默认设置的特性门控,自行选择要启用的特性门控。如需了解详情,请参阅特性门控和 Alpha 版集群

我们强烈建议您指定节点可以使用的具有最低权限的 IAM 服务账号,而不是 Compute Engine 默认服务账号。如需了解如何创建具有最低权限的服务账号,请参阅使用最小权限服务账号

如需在 gcloud CLI 中指定自定义服务账号,请在您的命令中添加以下标志:

--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com

SERVICE_ACCOUNT_NAME 替换为具有最低权限的服务账号的名称。

系统将显示一条警告,提示您 Alpha 版集群不会升级,30 天后会将其删除:

This will create a cluster with Kubernetes alpha features enabled.
- This cluster will not be covered by the GKE SLA and should
  not be used for production workloads.
- You will not be able to upgrade the master or nodes.
- The cluster will be deleted after 30 days.

使用 kubectl 与集群交互

创建集群后,您需要配置 kubectl,然后才能通过命令行与集群交互。

检查 Alpha 版集群的特性门控状态

对于 Alpha 版集群,您可以选择性地启用或停用特性门控。如需了解详情,请参阅特性门控和 Alpha 版集群

如需检查集群的特性门控状态,请参阅检查特性门控状态

检查 Alpha 版集群何时到期

如需查看 Alpha 版集群何时到期,请运行以下命令:

gcloud container clusters list

排查使用特性门控创建 Alpha 版集群时遇到的问题

如果您尝试创建的集群具有无效的特性门控或集群的 Kubernetes 版本不支持的特性门控,则创建的集群可能会处于错误状态。

您可以在 Cloud Logging 中找到类似如下内容的消息:

failed to set feature gates from initial flags-based config:
unrecognized feature gate: UNRECOGNIZED_FEATURE_GATE_NAME

如果您遇到此错误,请删除失败的集群。检查特性门控的拼写及其与给定 Kubernetes 版本的兼容性。然后再次尝试创建集群。

后续步骤