Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第 23 章 为 Google Compute Engine 配置

您可以配置 OpenShift Container Platform 以访问现有的 Google Compute Engine(GCE)基础架构包括使用 GCE 卷作为应用程序数据的持久性存储

23.1. 开始前

23.1.1. 为 Google Cloud Platform 配置授权

角色

为 OpenShift Container Platform 配置 GCP 需要以下 GCP 角色:

roles/owner

创建服务帐户、云存储、实例、镜像、模板、云 DNS 条目以及部署负载均衡器和健康检查所需要的。

如果用户应在测试阶段重新部署环境,则需要删除权限。

您还可以创建服务帐户以避免在部署 GCP 对象时使用个人用户。

如需更多信息,请参阅 GCP 文档中的了解角色部分,包括如何配置角色的步骤。

范围和服务帐户

GCP 使用范围来确定经过身份验证的身份是否有权在资源内执行操作。例如,如果具有只读范围访问令牌的应用程序 A 只能读取,而具有读写范围访问令牌的应用程序 B 可能会读取和修改数据。

范围在 GCP API 级别中定义为 https://www.googleapis.com/auth/compute.readonly

您可以使用 --scopes=[SCOPE,…​ 指定范围。] 选项在创建实例时,或者您可以使用 --no-scopes 选项来创建实例,如果没有考虑实例访问 GCP API,则可以使用 --no-scopes 选项来创建实例。

如需更多信息,请参阅 GCP 文档中的 Scopes 部分

所有 GCP 项目都包括一个默认的 [PROJECT_NUMBER]-compute@developer.gserviceaccount.com 服务帐户,具有项目编辑器权限。

默认情况下,新创建的实例会自动启用为具有以下访问范围的默认服务帐户运行:

在创建实例时,您可以使用 --service-account=SERVICE_ACCOUNT 选项指定另一个服务帐户,或使用 gcloud CLI 明确禁用实例的 服务帐户

如需更多信息,请参阅 GCP 文档中的创建新服务帐户部分

23.1.2. Google Compute Engine 对象

将 OpenShift Container Platform 与 Google Compute Engine(GCE)集成需要以下组件或服务。

GCP 项目
GCP 项目是组织基本级别的实体,它组成了创建、启用和使用所有 GCP 服务的基础。这包括管理 API、启用账单、添加和删除协作器以及管理权限。

如需更多信息,请参阅 GCP 文档中的项目资源部分

重要

项目 ID 是唯一标识符,项目 ID 必须在所有 Google Cloud Engine 之间唯一。这意味着,如果其他人使用该 ID 创建了一个项目 ID,则您无法使用 myproject 作为项目 ID。

账单
除非将账单附加到帐户,否则您无法创建新的资源。新项目可以链接到现有项目,也可以输入新的信息。

如需更多信息,请参阅 GCP 文档中的创建、修改或关闭您的账单帐户

云身份和访问管理
部署 OpenShift Container Platform 需要正确权限。用户必须能够创建服务帐户、云存储、实例、镜像、模板、云 DNS 条目,以及部署负载均衡器和健康检查。删除权限也会有帮助,以便在测试过程中重新部署环境。

您可以使用特定权限创建服务帐户,然后使用它们部署基础架构组件,而不是常规用户。您还可以创建角色来限制对不同用户或服务帐户的访问。

GCP 实例使用服务帐户来允许应用程序调用 GCP API。例如,OpenShift Container Platform 节点主机可以调用 GCP 磁盘 API,为应用程序提供持久性卷。

IAM 服务可使用对各种基础架构、服务资源和细粒度角色的访问控制。如需更多信息,请参阅 GCP 文档中的访问云概述 部分

SSH 密钥
GCP 将 SSH 公钥作为授权密钥注入,以便您可以在创建的实例中使用 SSH 登录。您可以为每个实例或每个项目配置 SSH 密钥。

您可以使用现有的 SSH 密钥。GCP 元数据可帮助存储实例中引导时注入的 SSH 密钥,以允许 SSH 访问。

如需更多信息,请参阅 GCP 文档中的 Metadata 部分

GCP 区域和区
GCP 有一个覆盖区域和可用区的全局基础架构。在不同区的 GCP 中部署 OpenShift Container Platform 有助于避免出现单点故障,但存储有一些注意事项。

GCP 磁盘在区内创建。因此,如果 OpenShift Container Platform 节点主机在区域 "A" 中停机,并且 pod 移到 zone "B",则持久性存储无法附加到这些 pod,因为磁盘位于不同的区。

在安装 OpenShift Container Platform 前,部署多区 OpenShift Container Platform 环境是一个重要决定。如果部署多区环境,建议的设置是在单一区域中使用三个不同的区。

如需更多信息 ,请参阅 GCP 文档中有关 区域和 区的 Kubernetes 文档

外部 IP 地址
因此,GCP 实例可以与互联网通信,您必须将外部 IP 地址附加到实例。另外,还需要外部 IP 地址与从 Virtual Private Cloud(VPC)网络外部署的实例进行通信。
警告

需要外部 IP 地址 进行互联网访问 是该提供程序的限制。如果需要,您可以将防火墙规则配置为阻止实例中进入的外部流量。

如需更多信息,请参阅外部 IP 地址上的 GCP 文档

Cloud DNS
GCP Cloud DNS 是一个 DNS 服务,用于使用 GCP DNS 服务器将域名发布到全局 DNS。

公共云 DNS 区域需要一个通过 Google 的"Domains"服务或第三方供应商购买的域名。在创建区时,必须将 Google 提供的名称服务器添加到注册商中。

如需更多信息,请参阅 Cloud DNS 的 GCP 文档

注意

GCP VPC 网络有一个内部 DNS 服务,可自动解析内部主机名。

实例的内部完全限定域名(FQDN)遵循 [HOST_NAME].c.[PROJECT_ID].internal 格式。

如需更多信息,请参阅内部 DNS 上的 GCP 文档

负载平衡
GCP 负载均衡服务启用在 GCP 云中的多个实例间流量分布。

负载均衡有三种:

注意

HTTPS 和 TCP 代理负载平衡是 master 节点使用 HTTPS 健康检查的唯一选项,用于检查 /healthz 的状态。

由于 HTTPS 负载均衡需要自定义证书,这种实现使用 TCP 代理负载平衡来简化过程。

如需更多信息,请参阅 GCP 文档

实例大小
成功的 OpenShift Container Platform 环境需要一些最低硬件要求:

表 23.1. 实例大小

角色大小

Master

n1-standard-8

节点

n1-standard-4

GCP 允许您创建自定义实例大小来满足不同的要求。如需更多信息,请参阅使用自定义 Machine Type 创建实例,或参阅 Machine typeOpenShift Container Platform Minimum 硬件要求来获得有关实例大小的更多信息。

存储选项

默认情况下,每个 GCP 实例都有一个包含操作系统的小根磁盘。当实例中运行的应用程序需要更多存储空间时,您可以为实例添加额外的存储选项:

  • 标准持久性磁盘
  • SSD 持久性磁盘
  • 本地 SSD
  • 云存储存储桶

如需更多信息,请参阅有关存储选项的 GCP 文档