Alpha 版集群是 短期存在的 Google Kubernetes Engine (GKE) 集群,可启用 Kubernetes Alpha 版 API 和功能,并且可以运行即将推出的次要版本的 Alpha 版。本文档介绍如何创建 Alpha 版集群、启用或停用特定特性门控,以及在快速发布渠道中运行 Alpha 版补丁程序版本。Alpha 版集群面向希望试用即将推出的 Kubernetes 功能和版本的早期采用者和平台管理员。
如需详细了解 GKE 集群的工作原理以及如何 选择要创建的 GKE 集群类型,请参阅 GKE 集群 架构和集群配置 选项简介。
准备工作
在开始之前,请确保您已执行以下任务:
- 启用 Google Kubernetes Engine API。 启用 Google Kubernetes Engine API
- 如需使用 Google Cloud CLI 执行此任务,
请安装并
初始化
gcloud CLI。如果您之前安装了 gcloud CLI,请通过运行
gcloud components update命令来获取最新 版本。较早版本的 gcloud CLI 可能不支持运行本文档中的命令。
- 查看 Alpha 版集群的 限制。
所需角色
如需获得创建 Alpha 版集群并与之交互所需的权限,请让您的管理员为您授予项目的Kubernetes Engine Cluster Admin (roles/container.clusterAdmin) IAM 角色。如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
为 GKE 设置 IAM 服务账号
GKE 使用关联到节点的 IAM 服务账号来运行日志记录和监控等系统任务。这些节点服务账号必须至少拥有项目的 Kubernetes Engine Default Node Service Account (roles/container.defaultNodeServiceAccount) 角色。默认情况下,GKE 会将 Compute Engine 默认服务账号(在您的项目中自动创建)用作节点服务账号。
如需向 Compute Engine 默认服务账号授予 roles/container.defaultNodeServiceAccount 角色,请完成以下步骤:
控制台
gcloud
- 找到您的 Google Cloud 项目编号:
gcloud projects describe PROJECT_ID \ --format="value(projectNumber)"
将
PROJECT_ID替换为您的项目 ID。输出类似于以下内容:
12345678901
- 将
roles/container.defaultNodeServiceAccount角色授予 Compute Engine 默认服务账号:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_NUMBER-compute@" \ --role="roles/container.defaultNodeServiceAccount"
将
PROJECT_NUMBER替换为上一步中的项目编号。
创建 Alpha 版集群
您可以使用 Google Cloud 控制台或 gcloud CLI 创建 Alpha 版集群。我们建议您使用 gcloud CLI,原因如下:
- 您可以将集群注册到快速发布渠道, 建议 Alpha 版 集群使用此渠道。
您可以指定 Alpha 版或 Beta 版特性门控,以启用或停用不同于默认值的特性门控。
控制台
在 Google Cloud 控制台中,前往创建 Kubernetes 集群页面。
在集群基本信息部分,完成以下操作:
可选:为新集群配置其他设置。
可选:如果您要将新集群注册到舰队,请前往舰队注册部分,然后按照 Google Cloud 控制台有关创建和注册新集群的说明完成集群注册。
在导航窗格的节点池下,点击默认池 (default-pool)。
在节点池详情部分,完成以下操作:
- 为默认节点池输入一个名称。
- 可选:选择节点版本。
- 输入要在集群中创建的节点数。您必须具有节点及其资源(例如防火墙路由)的可用资源配额。
- 可选:您可以选择停用节点自动升级,但我们建议您在选择此选项之前先查看停用节点自动升级功能之前的注意事项。
- 清除启用自动升级和启用自动修复。
在导航窗格的节点池下,点击节点。
从映像类型下拉列表中,选择节点映像。
选择要用于实例的默认机器配置。每种机器类型的计费方式都各不相同。默认机器类型为
e2-medium。如需了解机器类型价格信息,请参阅机器类型价格表。从启动磁盘类型下拉列表中,选择磁盘类型。
输入启动磁盘大小。
可选:在导航窗格的节点池下,点击安全。
- (可选)为节点指定自定义 IAM 服务账号:
- 在高级设置页面中,展开安全部分。
- 在服务账号菜单中,选择您想使用的服务账号。
我们强烈建议您指定节点可以使用的具有最低权限的 IAM 服务账号,而不是 Compute Engine 默认服务账号。如需了解如何创建具有最低权限的服务账号,请参阅使用最小权限服务账号。
在导航窗格的集群下,点击功能。
点击在此集群中启用 Kubernetes Alpha 版功能。
选择我明白相关后果,阅读并确认警告。
点击创建。
gcloud
运行以下命令:
gcloud container clusters create CLUSTER_NAME \
--release-channel=CHANNEL \
--enable-kubernetes-alpha \
--no-enable-autorepair \
--no-enable-autoupgrade \
--location CONTROL_PLANE_LOCATION [\
--alpha-cluster-feature-gates FEATURE_GATES_LIST]
替换以下内容:
CLUSTER_NAME:您为集群选择的名称。CHANNEL:发布渠道的类型。此值必须是以下值之一:rapid:注册到快速发布渠道,这是建议 Alpha 版集群使用的渠道。regular:注册到常规发布渠道。stable:注册到稳定发布渠道。none:不注册到发布渠道。此选项已被 弃用 ,并将被移除。
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.将 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 版补丁程序版本
您在快速发布渠道中注册的 Alpha 版集群可以运行 Alpha 版补丁程序版本的即将推出的 Kubernetes 次要版本。这些 Alpha 版可让您抢先测试下一个次要版本中的功能和更改,然后 GKE 会将该次要版本提供给快速渠道中的所有集群。
如需在 Alpha 版集群中识别和运行 Alpha 版补丁程序版本,请按以下步骤操作:
在快速渠道中识别可用的 Alpha 版:
gcloud container get-server-config \ --flatten="channels" --filter="channels.channel=RAPID" \ --location=LOCATION \ --format="yaml(channels.channel,channels.previewVersions)"将
LOCATION替换为您计划在其中创建 Alpha 版集群的区域,例如us-central1。输出类似于以下内容:
channels: channel: RAPID previewVersions: - 1.37.0-gke.1173000+preview如果输出为空,则表示该区域中没有 Alpha 版。请尝试其他区域,或查看 快速渠道版本说明 以获取版本信息。
创建 Alpha 版集群:
gcloud container clusters create CLUSTER_NAME \ --release-channel=rapid \ --enable-kubernetes-alpha \ --no-enable-autorepair \ --no-enable-autoupgrade \ --location=CONTROL_PLANE_LOCATION \ --cluster-version=ALPHA_VERSION替换以下内容:
CLUSTER_NAME:Alpha 版集群的名称。CONTROL_PLANE_LOCATION:集群控制平面的区域或可用区。使用您在上一步中检查 Alpha 版可用性的同一区域或该区域中的可用区。ALPHA_VERSION:要在集群中运行的特定 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 版本的兼容性。然后再次尝试创建集群。