×

OpenShift Dedicated 提供客户云订阅 (CCS) 模型,允许 Red Hat 在客户现有的 Google Cloud Platform (GCP) 帐户中部署和管理集群。

了解 GCP 上的客户云订阅

Red Hat OpenShift Dedicated 提供客户云订阅 (CCS) 模型,允许 Red Hat 将 OpenShift Dedicated 部署和管理到客户现有的 Google Cloud Platform (GCP) 帐户中。为了提供此服务,Red Hat 需要满足几个先决条件。

Red Hat 建议使用客户管理的 GCP 项目来组织所有 GCP 资源。项目包含一组用户和 API,以及这些 API 的计费、身份验证和监控设置。

建议使用 CCS 模型的 OpenShift Dedicated 集群托管在 GCP 组织内的 GCP 项目中。组织资源是 GCP 资源层次结构的根节点,属于某个组织的所有资源都分组在组织节点下。客户在创建访问 GCP 项目内 Google Cloud 资源所需的必要角色和凭据时,可以选择使用服务帐户密钥或工作负载身份联合。

客户需求

在 Google Cloud Platform (GCP) 上使用客户云订阅 (CCS) 模型的 OpenShift Dedicated 集群必须在部署之前满足几个先决条件。

帐户

  • 客户确保Google Cloud 限制 足以支持在客户提供的 GCP 帐户中预配的 OpenShift Dedicated。

  • 客户提供的 GCP 帐户应位于客户的 Google Cloud 组织中。

  • 客户提供的 GCP 帐户不得转让给 Red Hat。

  • 客户不得对 Red Hat 的活动施加 GCP 使用限制。施加限制会严重阻碍 Red Hat 响应事件的能力。

  • Red Hat 将监控部署到 GCP,以便在具有高度权限的帐户(例如 root 帐户)登录到客户提供的 GCP 帐户时向 Red Hat 发出警报。

  • 客户可以在同一个客户提供的 GCP 帐户中部署原生 GCP 服务。

    鼓励客户(但并非强制要求)在与托管 OpenShift Dedicated 和其他 Red Hat 支持服务的 VPC 分开的虚拟专用云 (VPC) 中部署资源。

访问要求

  • 为了适当地管理 OpenShift Dedicated 服务,Red Hat 必须始终将AdministratorAccess策略应用于管理员角色。

    此策略仅为 Red Hat 提供在客户提供的 GCP 帐户中更改资源的权限和功能。

  • Red Hat 必须能够访问客户提供的 GCP 帐户的 GCP 控制台。此访问权限由 Red Hat 保护和管理。

  • 客户不得利用 GCP 帐户来提升其在 OpenShift Dedicated 集群中的权限。

  • OpenShift 集群管理器中可用的操作不得直接在客户提供的 GCP 帐户中执行。

支持要求

  • Red Hat 建议客户至少拥有来自 GCP 的增强型支持

  • Red Hat 拥有客户的授权,可以代表他们请求 GCP 支持。

  • Red Hat 拥有客户的授权,可以请求增加客户提供的帐户的 GCP 资源限制。

  • Red Hat 以相同的方式管理所有 OpenShift Dedicated 集群的限制、局限性、期望和默认值,除非本要求部分另有说明。

安全要求

  • 客户提供的 IAM 凭据必须是客户提供的 GCP 帐户独有的,并且不得存储在客户提供的 GCP 帐户中的任何位置。

  • 卷快照将保留在客户提供的 GCP 帐户和客户指定的区域中。

  • 为了管理、监控和排查 OpenShift Dedicated 集群的问题,Red Hat 必须直接访问集群的 API 服务器。您不得限制或阻止 Red Hat 访问 OpenShift Dedicated 集群的 API 服务器。

    SRE 使用各种方法访问集群,具体取决于网络配置。对私有集群的访问仅限于 Red Hat 可信 IP 地址。这些访问限制由 Red Hat 自动管理。

  • OpenShift Dedicated 需要通过互联网访问某些端点。只有使用私有服务连接部署的集群才能使用防火墙来控制出站流量。有关更多信息,请参阅“GCP 防火墙前提条件”部分。

客户所需流程

客户云订阅 (CCS) 模型允许 Red Hat 将 OpenShift Dedicated 部署和管理到客户的 Google Cloud Platform (GCP) 项目中。Red Hat 需要一些前提条件才能提供这些服务。

本主题中的以下要求适用于使用服务帐户和工作负载身份联合身份验证类型创建的 Google Cloud Platform (GCP) 上的 OpenShift Dedicated 集群。有关仅适用于服务帐户身份验证类型的其他要求,请参阅“服务帐户身份验证类型流程”。有关仅适用于工作负载身份联合身份验证类型的其他要求,请参阅“工作负载身份联合身份验证类型流程”。

要在您的 GCP 项目中使用 OpenShift Dedicated,以下 GCP 组织策略约束不得存在

  • constraints/iam.allowedPolicyMemberDomains(此策略约束仅在 Red Hat 的DIRECTORY_CUSTOMER_IDs C02k0l5e8C04j7mbwl包含在允许列表中时才受支持。谨慎使用此策略约束)。

  • constraints/compute.restrictLoadBalancerCreationForTypes

  • constraints/compute.requireShieldedVm(此策略约束仅在初始集群创建期间选择“为屏蔽虚拟机启用安全启动支持”时才受支持)。

  • constraints/compute.vmExternalIpAccess(此策略约束仅在安装后才受支持)。

流程
  1. 创建Google Cloud 项目以托管 OpenShift Dedicated 集群。

  2. 在托管 OpenShift Dedicated 集群的项目中启用以下必需的 API

    表 1. 必需的 API 服务
    API 服务 控制台服务名称 用途

    deploymentmanager.googleapis.com

    用于基础设施资源的自动化部署和管理。

    compute.googleapis.com

    用于创建和管理虚拟机、防火墙、网络、持久性磁盘卷和负载均衡器。

    cloudresourcemanager.googleapis.com

    用于获取项目、获取或设置项目的 IAM 策略、验证所需的权限和标签。

    dns.googleapis.com

    用于创建 DNS 区域和管理集群域的 DNS 记录。

    iamcredentials.googleapis.com

    用于创建用于模拟 IAM 服务帐户的短期凭据。

    iam.googleapis.com

    用于管理集群的 IAM 配置。

    servicemanagement.googleapis.com

    间接用于获取 GCP 资源的配额信息。

    serviceusage.googleapis.com

    用于确定客户的 Google Cloud 帐户中有哪些服务可用。

    storage-api.googleapis.com

    用于访问用于镜像注册表、启动和集群备份(如果适用)的 Cloud Storage。

    storage-component.googleapis.com

    用于管理用于镜像注册表、启动和集群备份(如果适用)的 Cloud Storage。

    orgpolicy.googleapis.com

    用于识别应用于客户 Google Cloud 的治理规则,这些规则可能会影响集群的创建或管理。

    iap.googleapis.com [*]

    在紧急情况下用于排查否则无法访问的集群节点。

    此 API 对于使用私有服务连接部署的集群是必需的。

服务帐户身份验证类型流程

除了“所需客户流程”中列出的所需客户流程外,使用服务帐户作为身份验证类型在 Google Cloud Platform (GCP) 上创建 OpenShift Dedicated 集群时,您还必须执行其他特定操作。

流程
  1. 为确保 Red Hat 可以执行必要的操作,您必须在 GCP 项目中创建一个osd-ccs-admin IAM 服务帐户用户。

    必须将以下角色授予服务帐号

    表 2. 必需的角色
    角色 控制台角色名称

    计算管理员

    roles/compute.admin

    DNS管理员

    roles/dns.admin

    组织策略查看者

    roles/orgpolicy.policyViewer

    服务管理管理员

    roles/servicemanagement.admin

    服务使用管理员

    roles/serviceusage.serviceUsageAdmin

    存储管理员

    roles/storage.admin

    计算负载均衡器管理员

    roles/compute.loadBalancerAdmin

    角色查看者

    roles/viewer

    角色管理员

    roles/iam.roleAdmin

    安全管理员

    roles/iam.securityAdmin

    服务帐号密钥管理员

    roles/iam.serviceAccountKeyAdmin

    服务帐号管理员

    roles/iam.serviceAccountAdmin

    服务帐号用户

    roles/iam.serviceAccountUser

  2. osd-ccs-admin IAM 服务帐号创建服务帐号密钥。将密钥导出到名为osServiceAccount.json的文件;创建集群时,此 JSON 文件将上传到 Red Hat OpenShift 集群管理器。

工作负载身份联合身份验证类型流程

除了必需的客户流程中列出的必需客户流程外,在使用工作负载身份联合作为身份验证类型在 Google Cloud Platform (GCP) 上创建 OpenShift Dedicated 集群时,还必须执行其他特定操作。

流程
  1. 将以下角色分配给实现工作负载身份联合身份验证类型的用户的服务帐号

    表 3. 必需的角色
    角色 控制台角色名称 角色用途

    角色管理员

    roles/iam.roleAdmin

    OCM CLI 中的 GCP 客户端创建自定义角色所需。

    服务帐号管理员

    roles/iam.serviceAccountAdmin

    需要预创建 OSD 部署程序、支持和运营商所需的服务器帐号。

    工作负载身份池管理员

    roles/iam.workloadIdentityPoolAdmin

    需要创建和配置工作负载身份池。

    项目 IAM 管理员

    roles/resourcemanager.projectIamAdmin

    需要为服务帐号分配角色,并授予对执行云资源操作所需的那些角色的权限。

  2. 安装OpenShift 集群管理器 API 命令行界面 (ocm)

    要使用 OCM CLI,必须针对 Red Hat OpenShift 集群管理器帐户进行身份验证。这是通过 OpenShift 集群管理器 API 令牌完成的。

    您可以在此处获取您的令牌。

  3. 要对您的 Red Hat OpenShift 集群管理器帐户进行身份验证,请运行以下命令

    $ ocm login --token <token> (1)
    1 <token>替换为您的 OpenShift 集群管理器 API 令牌。

    OpenShift 集群管理器 API 命令行界面 (ocm) 仅为技术预览功能。有关 Red Hat 技术预览功能的支持范围的更多信息,请参阅技术预览功能支持范围

  4. 安装gcloud CLI

  5. 使用应用程序默认凭据 (ADC)验证 gcloud CLI。

Red Hat 管理的 Google Cloud 资源

Red Hat 负责创建和管理以下 IAM Google Cloud Platform (GCP) 资源。

IAM 服务帐号和角色以及IAM 组和角色主题仅适用于使用服务帐号身份验证类型创建的集群。

IAM 服务帐号和角色

osd-managed-admin IAM 服务帐号在接管客户提供的 GCP 帐户后立即创建。这是将执行 OpenShift Dedicated 集群安装的用户。

以下角色附加到服务帐号

表 4. osd-managed-admin 的 IAM 角色
角色 控制台角色名称 描述

计算管理员

roles/compute.admin

提供对所有 Compute Engine 资源的完全控制。

DNS管理员

roles/dns.admin

提供对所有 Cloud DNS 资源的读写访问权限。

安全管理员

roles/iam.securityAdmin

安全管理员角色,具有获取和设置任何 IAM 策略的权限。

存储管理员

roles/storage.admin

授予对对象和存储桶的完全控制。

当应用于单个存储桶时,控制仅适用于指定的存储桶和存储桶中的对象。

服务帐号管理员

roles/iam.serviceAccountAdmin

创建和管理服务帐号。

服务帐号密钥管理员

roles/iam.serviceAccountKeyAdmin

创建和管理(以及轮换)服务帐号密钥。

服务帐号用户

roles/iam.serviceAccountUser

以服务帐号身份运行操作。

角色管理员

roles/iam.roleAdmin

提供对项目中所有自定义角色的访问权限。

IAM 组和角色

sd-sre-platform-gcp-access Google 组被授予对 GCP 项目的访问权限,以允许 Red Hat 站点可靠性工程 (SRE) 访问控制台以进行紧急故障排除。

  • 有关sd-sre-platform-gcp-access组中特定于使用工作负载身份联合 (WIF) 身份验证类型创建的集群的角色的信息,请参阅managed-cluster-config

  • 有关使用工作负载身份联合身份验证类型创建集群的信息,请参阅其他资源

以下角色附加到该组

表 5. sd-sre-platform-gcp-access 的 IAM 角色
角色 控制台角色名称 描述

计算管理员

roles/compute.admin

提供对所有 Compute Engine 资源的完全控制。

编辑者

roles/editor

提供所有查看器权限,以及修改状态的操作权限。

组织策略查看者

roles/orgpolicy.policyViewer

提供访问权限以查看资源上的组织策略。

项目 IAM 管理员

roles/resourcemanager.projectIamAdmin

提供权限以管理项目上的 IAM 策略。

配额管理员

roles/servicemanagement.quotaAdmin

提供管理服务配额的访问权限。

角色管理员

roles/iam.roleAdmin

提供对项目中所有自定义角色的访问权限。

服务帐号管理员

roles/iam.serviceAccountAdmin

创建和管理服务帐号。

服务使用管理员

roles/serviceusage.serviceUsageAdmin

能够启用、禁用和检查服务状态、检查操作以及使用消费者项目的配额和账单。

技术支持编辑者

roles/cloudsupport.techSupportEditor

提供对技术支持案例的完全读写访问权限。

已预配的 GCP 基础设施

这是已部署 OpenShift Dedicated 集群上已预配的 Google Cloud Platform (GCP) 组件的概述。有关所有已预配 GCP 组件的更详细列表,请参阅OpenShift Container Platform 文档

计算实例

GCP 计算实例需要在 GCP 中部署 OpenShift Dedicated 的控制平面和数据平面功能。根据工作节点数,控制平面和基础设施节点的实例类型可能会有所不同。

  • 单个可用区

    • 2 个基础设施节点(自定义机器类型:4 个 vCPU 和 32 GB RAM)

    • 3 个控制平面节点(自定义机器类型:8 个 vCPU 和 32 GB RAM)

    • 2 个工作节点(自定义机器类型:4 个 vCPU 和 16 GB RAM)

  • 多个可用区

    • 3 个基础设施节点(自定义机器类型:4 个 vCPU 和 32 GB RAM)

    • 3 个控制平面节点(自定义机器类型:8 个 vCPU 和 32 GB RAM)

    • 3 个工作节点(自定义机器类型:4 个 vCPU 和 16 GB RAM)

存储

  • 基础设施卷

    • 300 GB SSD 持久性磁盘(在实例删除时删除)

    • 110 GB 标准持久性磁盘(实例删除时保留)

  • Worker 卷

    • 300 GB SSD 持久性磁盘(在实例删除时删除)

  • 控制平面卷

    • 350 GB SSD 持久性磁盘(实例删除时删除)

VPC

  • 子网:一个用于控制平面工作负载的主子网和一个用于所有其他工作负载的 Worker 子网。

  • 路由表:每个 VPC 一个全局路由表。

  • 互联网网关:每个集群一个互联网网关。

  • NAT 网关:每个集群一个主 NAT 网关和一个 Worker NAT 网关。

服务

必须在 GCP CCS 集群上启用以下服务

  • deploymentmanager

  • compute

  • cloudapis

  • cloudresourcemanager

  • dns

  • iamcredentials

  • iam

  • servicemanagement

  • serviceusage

  • storage-api

  • storage-component

  • orgpolicy

  • networksecurity

GCP 账户配额

OpenShift Dedicated 集群使用许多 Google Cloud Platform (GCP) 组件,但默认的配额不会影响您安装 OpenShift Dedicated 集群的能力。

标准 OpenShift Dedicated 集群使用以下资源。请注意,某些资源仅在引导过程中需要,并在集群部署后移除。

表 6. 默认集群中使用的 GCP 资源
服务 组件 位置 所需总资源 引导后移除的资源

服务账户

IAM

全局

5

0

防火墙规则

计算

全局

11

1

转发规则

计算

全局

2

0

正在使用的全局 IP 地址

计算

全局

4

1

健康检查

计算

全局

3

0

镜像

计算

全局

1

0

网络

计算

全局

2

0

静态 IP 地址

计算

区域

4

1

路由器

计算

全局

1

0

路由

计算

全局

2

0

子网

计算

全局

2

0

目标池

计算

全局

3

0

CPU

计算

区域

28

4

持久性磁盘 SSD (GB)

计算

区域

896

128

如果安装期间任何配额不足,安装程序将显示错误消息,说明超过了哪个配额以及区域。

请务必考虑您的实际集群大小、计划的集群增长以及与您的帐户关联的其他集群的任何使用情况。CPU、静态 IP 地址和持久性磁盘 SSD(存储)配额最有可能不足。

如果您计划在以下区域之一部署集群,则会超过最大存储配额,并且很可能会超过 CPU 配额限制

  • asia-east2

  • asia-northeast2

  • asia-south1

  • australia-southeast1

  • europe-north1

  • europe-west2

  • europe-west3

  • europe-west6

  • northamerica-northeast1

  • southamerica-east1

  • us-west2

您可以从GCP 控制台增加资源配额,但是您可能需要提交支持工单。请务必尽早规划您的集群大小,以便您可以在安装 OpenShift Dedicated 集群之前留出时间来解决支持工单。

GCP 防火墙前提条件

如果您使用防火墙来控制来自 Google Cloud Platform (GCP) 上的 OpenShift Dedicated 的出站流量,则必须配置防火墙以授予对下表中列出的某些域和端口组合的访问权限。OpenShift Dedicated 需要此访问权限才能提供完全托管的 OpenShift 服务。

仅使用私有服务连接部署的 Google Cloud Platform (GCP) 上的 OpenShift Dedicated 集群可以使用防火墙来控制出站流量。

流程
  1. 添加以下用于安装和下载软件包和工具的 URL 到允许列表

    域名 端口 功能

    registry.redhat.io

    443

    提供核心容器镜像。

    quay.io

    443

    提供核心容器镜像。

    cdn01.quay.io

    cdn02.quay.io

    cdn03.quay.io

    cdn04.quay.io

    cdn05.quay.io

    cdn06.quay.io

    443

    提供核心容器镜像。

    sso.redhat.com

    443

    必需。https://console.redhat.com/openshift 站点使用 sso.redhat.com 的身份验证来下载拉取密钥并使用 Red Hat SaaS 解决方案来促进对您的订阅、集群清单、收费报表等的监控。

    quayio-production-s3.s3.amazonaws.com

    443

    提供核心容器镜像。

    pull.q1w2.quay.rhcloud.com

    443

    提供核心容器镜像。

    registry.access.redhat.com

    443

    托管存储在 Red Hat 生态系统目录上的所有容器镜像。此外,注册表还提供对odo CLI 工具的访问,该工具可帮助开发人员在 OpenShift 和 Kubernetes 上构建。

    registry.connect.redhat.com

    443

    所有第三方镜像和认证的 Operators 都需要。

    console.redhat.com

    443

    必需。允许集群和 Red Hat OpenShift 集群管理器之间进行交互,以启用诸如调度升级之类的功能。

    sso.redhat.com

    443

    https://console.redhat.com/openshift站点使用sso.redhat.com进行身份验证。

    catalog.redhat.com

    443

    registry.access.redhat.comhttps://registry.redhat.io站点通过catalog.redhat.com重定向。

  2. 将以下遥测 URL 添加到允许列表

    域名 端口 功能

    cert-api.access.redhat.com

    443

    遥测必需。

    api.access.redhat.com

    443

    遥测必需。

    infogw.api.openshift.com

    443

    遥测必需。

    console.redhat.com

    443

    遥测和 Red Hat Insights 必需。

    observatorium-mst.api.openshift.com

    443

    需要进行托管的 OpenShift 特定遥测。

    observatorium.api.openshift.com

    443

    需要进行托管的 OpenShift 特定遥测。

    托管集群需要启用遥测,以允许 Red Hat 更快地响应问题,更好地支持客户,并更好地了解产品升级如何影响集群。有关 Red Hat 如何使用远程运行状况监控数据的更多信息,请参阅“附加资源”部分中的“关于远程运行状况监控”。

  3. 将以下 OpenShift Dedicated URL 添加到允许列表

    域名 端口 功能

    mirror.openshift.com

    443

    用于访问镜像安装内容和镜像。此站点也是发行版镜像签名的来源。

    api.openshift.com

    443

    用于检查集群是否有可用的更新。

  4. 将以下站点可靠性工程 (SRE) 和管理 URL 添加到允许列表

    域名 端口 功能

    api.pagerduty.com

    443

    此警报服务由集群内警报管理器用于发送警报,通知 Red Hat SRE 需要采取行动的事件。

    events.pagerduty.com

    443

    此警报服务由集群内警报管理器用于发送警报,通知 Red Hat SRE 需要采取行动的事件。

    api.deadmanssnitch.com

    443

    OpenShift Dedicated 使用的警报服务,用于发送定期 ping 以指示集群是否可用并正在运行。

    nosnch.in

    443

    OpenShift Dedicated 使用的警报服务,用于发送定期 ping 以指示集群是否可用并正在运行。

    *.osdsecuritylogs.splunkcloud.com

    inputs1.osdsecuritylogs.splunkcloud.com

    inputs2.osdsecuritylogs.splunkcloud.com

    inputs4.osdsecuritylogs.splunkcloud.com

    inputs5.osdsecuritylogs.splunkcloud.com

    inputs6.osdsecuritylogs.splunkcloud.com

    inputs7.osdsecuritylogs.splunkcloud.com

    inputs8.osdsecuritylogs.splunkcloud.com

    inputs9.osdsecuritylogs.splunkcloud.com

    inputs10.osdsecuritylogs.splunkcloud.com

    inputs11.osdsecuritylogs.splunkcloud.com

    inputs12.osdsecuritylogs.splunkcloud.com

    inputs13.osdsecuritylogs.splunkcloud.com

    inputs14.osdsecuritylogs.splunkcloud.com

    inputs15.osdsecuritylogs.splunkcloud.com

    9997

    splunk-forwarder-operator用作日志转发端点,供Red Hat SRE进行基于日志的告警。

    http-inputs-osdsecuritylogs.splunkcloud.com

    443

    splunk-forwarder-operator用作日志转发端点,供Red Hat SRE进行基于日志的告警。

    sftp.access.redhat.com(推荐)

    22

    must-gather-operator使用的SFTP服务器,用于上传诊断日志以帮助排查集群问题。

  5. 将以下Google Cloud Platform (GCP) API端点的URL添加到允许列表

    域名 端口 功能

    accounts.google.com

    443

    用于访问您的GCP账户。

    *.googleapis.com

    storage.googleapis.com

    iam.googleapis.com

    serviceusage.googleapis.com

    cloudresourcemanager.googleapis.com

    compute.googleapis.com

    oauth2.googleapis.com

    dns.googleapis.com

    iamcredentials.googleapis.com

    443

    用于访问GCP服务和资源。请查看GCP文档中的Cloud Endpoints,以确定要允许的API端点。

    所需的Google API可以使用私有Google访问受限虚拟IP (VIP)公开,服务使用API (serviceusage.googleapis.com) 除外。要解决此问题,必须使用私有Google访问私有VIP公开服务使用API。

附加资源

  • 关于远程健康监控

  • 有关使用工作负载身份联合 (WIF) 身份验证类型创建OpenShift Dedicated集群的更多信息,请参阅创建WIF配置

  • 有关使用工作负载身份联合 (WIF) 身份验证类型创建的集群的特定角色和权限的更多信息,请参阅managed-cluster-config