创建 Google Compute Engine 集群

在本节中,您将学习如何使用 Rancher 在 Google Cloud Platform (GCP) 上通过 Google Compute Engine (GCE) 提供 RKE2 或 K3s Kubernetes 集群。

首先,您需要在 Rancher UI 中启用 GCE 节点驱动程序。然后,您按照步骤创建一个具有必要权限的 GCP 服务帐户,并生成一个 JSON 密钥文件。此密钥文件将用于在 Rancher 中创建云凭据。

接下来,您将在 Rancher 中创建一个 GCE 集群,并在配置集群时定义机器池。每个机器池将具有 etcd、controlplane 或 worker 的 Kubernetes 角色。Rancher 将在新节点上安装 RKE2,并根据机器池定义的 Kubernetes 角色设置每个节点。

先决条件

  1. 有效的 Google Cloud Platform 帐户和项目。

  2. GCP 服务帐户 JSON 密钥文件。与此密钥关联的服务帐户必须具有以下 IAM 角色:

    1. 计算管理员

    2. 服务帐户用户

    3. 查看器

  3. 一个用于在其中提供虚拟机的 VPC 网络。

有关创建和管理服务帐户密钥的更多详细信息,请参阅 GCP 文档。

启用 GCE 节点驱动程序

GCE 节点驱动程序在 Rancher 中默认未启用。您必须在提供 GCE 集群或使用 GCE 特定 CRD 之前启用它。

  1. 单击 ☰ > 集群管理。

  2. 在左侧,点击驱动程序。

  3. 打开节点驱动程序选项卡。

  4. 找到Google GCE驱动程序并选择⋮ > 激活。

创建云凭据

  1. 单击 ☰ > 集群管理。

  2. 点击云凭据。

  3. 点击创建。

  4. 点击Google。

  5. 输入您的 GCP 服务帐户 JSON 密钥文件。

  6. 点击创建。

结果:您已创建将用于在集群中配置节点的云凭据。您可以在其他集群中重用这些凭据。根据授予服务账户的权限,此凭据也可以用于GKE集群。

使用云凭据创建集群

  1. 单击 ☰ > 集群管理。

  2. 在集群页面,点击创建。

  3. 点击Google GCE。

  4. 选择一个云凭据并提供GCP项目以创建虚拟机。

  5. 输入集群名称。

  6. 为每个Kubernetes角色创建一个机器池。请参考[最佳实践](use-new-nodes-in-an-infra-provider.md#node-roles)以获取角色分配和数量的建议。

    1. 为每个机器池定义机器配置。请参考Google GCE机器配置参考以获取有关配置选项的信息。

  7. 使用集群配置选择要安装的Kubernetes版本、使用的网络提供程序以及是否要启用项目网络隔离。有关配置集群的帮助,请参考RKE2和K3s集群配置参考。

  8. 使用成员角色配置集群的用户授权。点击添加成员以添加可以访问集群的用户。使用角色下拉菜单为每个用户设置权限。

  9. 点击创建。

结果:

您的集群已创建,状态为 预配。Rancher 正在启动您的集群。

在集群状态更新为活动后,您可以访问您的集群。

活动集群被分配两个项目:

  • Default,包含`default`名称空间

  • System,包含 cattle-system、traefik、kube-public 和 kube-system 名称空间

GCE 最佳实践

外部防火墙规则、开放端口和ACE

如果正在配置的集群将使用授权集群端点(ACE)功能,控制平面节点必须暴露端口`6443`。此端口在默认机器池配置中未暴露,以防止其在所有集群节点中暴露,并减少Rancher创建的防火墙规则数量。

为了使 ACE 按预期工作,您必须在 Rancher UI 中配置控制平面机器池时,在机器池配置 UI 的 Show Advanced 部分下启用 Expose external ports 复选框,从而指定此端口。或者,您可以在GCP中手动创建自定义防火墙规则,并在控制平面机器池配置中提供相关的网络标签。

内部防火墙规则

Rancher 将自动创建防火墙规则和网络标签,以促进在指定 VPC 网络内各集群节点之间的内部通信。此规则将包含创建 RKE2/K3s 集群所需的最少端口数量。

如果您需要扩展集群节点之间内部暴露的端口数量,则应手动创建新的防火墙规则,并将相关的网络标签分配给相关的机器池。如果需要,可以在创建或更新集群时为每个给定的机器池禁用内部防火墙规则的自动创建。

跨网络部署

虽然可以将不同的机器池部署到不同的 VPC 网络中,但 Rancher 创建的内部防火墙规则默认不支持此配置。要在不同网络中创建机器池,必须手动创建额外的防火墙规则,以促进不同网络中节点之间的通信。

可选的后续步骤

创建集群后,您可以通过Rancher UI访问它。作为最佳实践,我们建议设置这些访问集群的替代方式:

  • 使用kubectl CLI访问您的集群:按照这些步骤在您的工作站上使用kubectl访问集群。在这种情况下,您将通过 Rancher 服务器的身份验证代理进行身份验证,然后 Rancher 将连接您到下游集群。此方法允许您在没有Rancher UI的情况下管理集群。

  • 使用授权的集群端点,通过kubectl CLI访问您的集群:按照这些步骤直接使用kubectl访问您的集群,而无需通过Rancher进行身份验证。我们建议设置这种替代方法来访问您的集群,以便在无法连接到Rancher的情况下,您仍然可以访问集群。