在 OCI 上安装


OpenShift Container Platform 4.19

在 Oracle Cloud Infrastructure 上安装 OpenShift Container Platform

Red Hat OpenShift Documentation Team

摘要

本文档论述了如何在 Oracle Cloud Infrastructure 上安装 OpenShift Container Platform。

您可以使用 Assisted Installer 在 Oracle® Cloud Infrastructure (OCI) 上安装集群。对于大多数用户,建议使用这个方法,且需要互联网连接。

如果要手动设置集群或使用其他自动化工具,或者使用断开连接的环境,您可以使用基于 Red Hat Agent 的安装程序进行安装。详情请参阅使用基于代理的安装程序在 Oracle Cloud Infrastructure (OCI)上安装集群

注意

您可以在与 Oracle Cloud Infrastructure (OCI)相同的一个专业区域上部署 OpenShift Container Platform(Oracle 文档)。

1.1. 关于辅助安装程序和 OCI 集成

您可以在支持专用、混合、公共和多个云环境的 Oracle® 云基础架构 (OCI) 基础架构上运行集群工作负载。红帽和 Oracle 测试、验证和支持在 OCI 上的 OpenShift Container Platform 集群中运行的 OCI。

本节介绍如何使用 Assisted Installer 在 OCI 平台上安装 OpenShift Container Platform 集群。安装部署云原生组件,如 Oracle Cloud Controller Manager (CCM) 和 Oracle Container Storage Interface (CSI),并将集群与实例节点、负载均衡器和存储等 OCI API 资源集成。

安装过程使用红帽提供的 OpenShift Container Platform 发现 ISO 镜像,以及由 OCI 提供和维护的脚本和清单。

1.1.1. 预安装注意事项

在 Oracle Cloud Infrastructure (OCI) 上安装 OpenShift Container Platform 前,您必须考虑以下配置选项:

部署平台

OpenShift Container Platform 和 Oracle Cloud Infrastructure (OCI) 之间的集成已在虚拟机 (VM) 和裸机 (BM) 机器上认证。使用 iSCSI 引导驱动器进行裸机安装需要辅助 vNIC,它在 Oracle 提供的 Terraform 堆栈中自动创建。

在创建虚拟机 (VM) 或裸机 (BM) 机器之前,您必须识别相关的 OCI 形成。详情请查看以下资源:

VPU 大小建议

为确保在 OCI 上运行的集群工作负载的最佳性能条件,请确保为您的工作负载调整块卷性能单元(VPU)。以下列表提供了选择特定性能需要 VPU 的指导:

  • 测试或概念验证环境:100 GB,20 到 30 个 VPU。
  • 基本环境:500 GB 和 60 个 VPU。
  • 大型生产环境:500 GB 和 100 个或更多 VPU。

考虑保留额外的 VPU,以便为更新和扩展活动提供足够的容量。有关 VPU 的更多信息,请参阅卷性能单元(Oracle 文档)。

实例大小建议

查找 OpenShift Container Platform 节点的计算实例 CPU、内存、VPU 和卷大小的建议值。详情请参阅在 OCI 节点上调整 OpenShift Container Platform 的实例建议(Oracle 文档)。

1.1.2. 工作流

图 1.1. 在连接的环境中使用 Assisted Installer 的高级别工作流,以便在 OCI 上安装集群

下面概述了在连接的环境中使用 Assisted Installer 在 OCI 上安装集群的步骤:

  1. 在 OCI 控制台中,配置 OCI 帐户以托管集群:

    1. 在现有的 compartment 下创建一个新的子 compartment。
    2. 创建新的对象存储桶,或使用 OCI 提供的存储桶。
    3. 下载本地存储的堆栈文件模板。
  2. 在 Assisted Installer 控制台中设置集群:

    1. 输入集群配置。
    2. 生成并下载发现 ISO 镜像。
  3. 在 OCI 控制台中,创建基础架构:

    1. 将发现 ISO 镜像上传到 OCI 存储桶。
    2. 为 ISO 镜像创建预验证请求(PAR)。
    3. 上传堆栈文件模板,并使用它来创建和应用堆栈。
    4. 从堆栈复制自定义清单 YAML 文件。
  4. 在 Assisted Installer 控制台中完成集群安装:

    1. 为集群节点设置角色。
    2. 上传 Oracle 提供的清单。
    3. 安装集群。
重要

置备 OCI 资源的步骤仅作为示例。您还可以选择通过其他方法创建所需的资源;脚本只是一个示例。使用您提供的基础架构安装集群需要了解云供应商和 OpenShift Container Platform 上的安装过程。您可以访问 OCI 配置来完成这些步骤,或使用配置对您自己的自定义脚本建模。

1.2. 准备 OCI 环境

在使用 Assisted Installer 安装 OpenShift Container Platform 前,请创建必要的资源并在 OCI 环境中下载配置文件。

先决条件

  • 您有一个 OCI 帐户来托管集群。
  • 如果使用防火墙并计划使用 Telemetry 服务,则将防火墙配置为允许 OpenShift Container Platform 访问所需的站点。

流程

  1. 使用管理员权限登录到您的 Oracle Cloud Infrastructure (OCI) 帐户。
  2. 通过定 云账户和资源 (Oracle 文档) 来配置帐户。确保创建了以下资源:

    1. 创建一个子 compartment 用于组织、限制访问以及对 OCI 资源设置用量限制。有关完整流程,请参阅创建 Compartment (Oracle 文档)。
    2. 创建一个新的对象存储桶,您要将发现 ISO 镜像上传到其中。有关完整流程,请参阅创建对象存储 Bucket (Oracle 文档)。
  3. oracle-quickstart/oci-openshift 仓库下载 create-cluster-vX.X.X.zip 配置文件。此文件为集群提供基础架构,包含以下配置:

    • Terraform Stacks :置备 OCI 资源的 Terraform 堆栈代码,以便在 OCI 上创建和管理 OpenShift Container Platform 集群。
    • 自定义清单 :在 OCI 上安装 OpenShift Container Platform 集群所需的清单文件。
    注意

    要对清单进行任何更改,您可以克隆整个 Oracle GitHub 存储库,并直接访问 custom_manifeststerraform-stacks 目录。

    详情请查看配置文件(Oracle 文档)。

创建集群配置并在 Assisted Installer web 控制台中生成发现 ISO 镜像。

先决条件

  • 您在 OCI 上创建子 compartment 和对象存储桶。详情请参阅准备 OCI 环境
  • 您可以参阅有关 OpenShift Container Platform 安装和更新流程的详细信息。

1.3.1. 创建集群

设置集群详情。

流程

  1. 使用您的凭证登录到 Assisted Installer Web 控制台
  2. Red Hat OpenShift 标题中,选择 OpenShift
  3. Red Hat OpenShift Container Platform 标题中,选择 Create Cluster
  4. Cluster Type 页中,向下滚动到 Cloud 选项卡的末尾,然后选择 Oracle Cloud Infrastructure (虚拟机)。
  5. Create a OpenShift Cluster 页中,选择 Interactive 标题。
  6. Cluster Details 页面上,完成以下字段:

    Expand
    字段所需的操作

    集群名称

    指定集群名称,如 oci。这与 OCI 中的集群名称值相同。

    基域

    指定集群的基域,如 openshift-demo.devcluster.openshift.com

    这必须与 OCI 中的区 DNS 服务器的值相同。

    OpenShift version

    * 对于只在虚拟机上安装 OpenShift 4.14 或更高版本,请指定 OpenShift 4.14 或更高版本。

    * 对于包含裸机的安装,请指定 OpenShift 4.16 或更高版本。

    CPU 架构

    指定 x86_64Arm64

    与外部合作伙伴平台集成

    指定 Oracle Cloud Infrastructure

    指定这个值后,会默认选择 Include custom manifests 复选框,并将 Custom manifests 页添加到向导中。

  7. 保留其余字段的默认设置,然后点 Next
  8. Operators 页面上,单击 Next

1.3.2. 生成 Discovery ISO 镜像

生成并下载 Discovery ISO 镜像。

流程

  1. Host Discovery 页中,点 Add hosts 并完成以下步骤:

    1. 对于 Provisioning type 字段,选择 Minimal image file
    2. 对于 SSH 公钥字段,通过复制以下命令的输出来添加本地系统中的 SSH 公钥:

      $ cat ~/.ssh/id_rsa.put
      Copy to Clipboard Toggle word wrap

      SSH 公钥将安装到所有 OpenShift Container Platform control plane 和计算节点上。

    3. Generate Discovery ISO 生成发现 ISO 镜像文件。
    4. Download Discovery ISO 将该文件保存到本地系统。

1.4. 为集群置备 OCI 基础架构

当使用 Assisted Installer 为 OpenShift Container Platform 集群创建详情时,您可以在 Terraform 堆栈中指定这些详情。堆栈是一种 OCI 功能,可自动置备在 OCI 上安装 OpenShift Container Platform 集群所需的所有 OCI 基础架构资源。

先决条件

  • 您已将发现 ISO 镜像下载到本地目录。详情请参阅"使用 Assisted Installer 来生成 OCI 兼容的发现 ISO 镜像"。
  • 将 Terraform 堆栈模板下载到本地目录。详情请参阅"准备 OCI 环境"。

流程

  1. 登录到您的 Oracle Cloud Infrastructure (OCI) 帐户。
  2. 将发现 ISO 镜像从本地驱动器上传到您创建的新对象存储桶。有关完整流程,请参阅将对象存储对象上传到 Bucket (Oracle 文档)。
  3. 找到上传的发现 ISO,并完成以下步骤:

    1. 从相邻选项菜单中,为 ISO 创建 Pre-Authenticated Request (PAR)。
    2. 复制生成的 URL,以在下一步中用作 OpenShift Image Source URI。

    有关完整流程,请参阅在对象存储中创建 Pre-Authenticated Requests (Oracle 文档)

  4. 创建并应用 Terraform 堆栈:

    重要

    Terraform 堆栈包含用于创建集群资源和自定义清单的文件。堆栈还包括脚本,当您应用堆栈时,脚本会创建 OCI 资源,如 DNS 记录、实例和其他资源。如需资源列表,请参阅 OpenShift on OCI (OSO) 中的 terraform-stacks 文件夹。

    1. 将 Terraform 堆栈模板 terraform-stacks 上传到新的对象存储桶。
    2. 完成堆栈信息,然后点下一步

      重要
      • 确保 Cluster Name 与 Assisted Installer 中的 Cluster Name 匹配,并且 Zone DNS 与 Assisted Installer 中的 Base Domain 匹配。
      • OpenShift Image Source URI 字段中,粘贴您在上一步中生成的 Pre-Authenticated Request URL 链接。
      • 根据您要在裸机上或虚拟机上安装,确保定义了正确的 Compute Shape 字段值。如果没有,请从列表中选择不同的形成。详情请查看 Compute Shapes (Oracle 文档)。
    3. Apply 以应用堆栈。

    有关完整流程,请参阅使用资源管理器(Oracle 文档)创建 OpenShift Container Platform 基础架构

  5. 从 Terraform 堆栈的 Outputs 页中复制 dynamic_custom_manifest.yml 文件。

    注意

    YAML 文件包含所有必需的清单,它们对配置值进行串联并进行预格式化。详情请参阅自定义清单 README 文件

    有关完整流程,请参阅获取 OpenShift Container Platform 自定义清单以了解安装(Oracle 文档)。

1.5. 完成剩余的 Assisted Installer 步骤

置备 Oracle® Cloud Infrastructure (OCI) 资源并将 OpenShift Container Platform 自定义清单文件上传到 OCI 后,您必须在 Assisted Installer 上完成剩余的集群安装步骤,然后才能创建实例 OCI。这些步骤包括分配节点角色并添加自定义清单。

1.5.1. 分配节点角色

在主机发现后,所有节点都的角色默认显示为 Auto-assign。将每个节点角色更改为 Control Plane 节点Worker

先决条件

  • 您在 OCI 中创建并应用 Terraform 堆栈。详情请参阅 "Provisioning OCI infrastructure for your cluster"。

流程

  1. 在 Assisted Installer 用户界面中,进入 Host 发现页。
  2. Role 列下,为每个目标主机名选择 Control plane 节点Worker。然后单击"下一步"

    注意
    1. 在继续执行下一步前,等待每个节点变为 Ready 状态。
    2. 扩展节点,以验证硬件类型是裸机。
  3. 接受 StorageNetworking 页面的默认设置。然后单击"下一步"

1.5.2. 添加自定义清单

添加 Oracle 提供的强制自定义清单。详情请参阅自定义清单 (Oracle 文档)。

先决条件

  • 您已从 OCI 中的 Terraform 堆栈中复制了 dynamic_custom_manifest.yml 文件。详情请参阅 "Provisioning OCI infrastructure for your cluster"。

流程

  1. Custom manifests 页上的 Folder 字段中,选择 manifests。这是您要保存自定义清单文件的 Assisted Installer 文件夹。
  2. File name 字段中输入文件名,例如 dynamic_custom_manifest.yml
  3. 粘贴您从 OCI 复制的 dynamic_custom_manifest.yml 文件的内容:

    1. Content 部分中,点粘贴内容 图标。
    2. 如果您使用 Firefox,请点 OK 以关闭对话框,然后按 Ctrl+V。否则,请跳过这一步。
  4. Next 以保存自定义清单。
  5. Review and create 页面中,点 Install cluster 在 OCI 上创建 OpenShift Container Platform 集群。

在集群安装和初始化操作后,辅助安装程序表示集群安装操作完成。如需更多信息,请参阅 OpenShift Container Platform 的 Assisted Installer 文档中的"完成安装"部分。

1.6. 在 OCI 上验证集群安装是否成功

验证集群是否已安装并在 Oracle® Cloud Infrastructure (OCI) 上有效运行。

流程

  1. Red Hat Hybrid Cloud Console 中,进入 Clusters > Assisted Clusters 并选择集群名称。
  2. Installation Progress 页中,检查安装进度条是否处于 100%,并显示一条消息 Installation completed successfully
  3. Host inventory 下,确认所有 control plane 和计算节点的状态为 Installed

    注意

    OpenShift Container Platform 将其中一个 control plane 节点指定为 bootstrap 虚拟机,无需单独 bootstrap 机器。

  4. 点 Web Console URL,访问 OpenShift Container Platform Web 控制台。
  5. 在菜单中,选择 Compute > Nodes
  6. Nodes 表中查找您的节点。
  7. Terminal 选项卡中,验证 iSCSI 是否显示在序列号旁。
  8. Overview 选项卡中,检查您的节点的状态是否为 Ready
  9. 选择 YAML 选项卡。
  10. 检查 labels 参数,并验证列出的标签是否应用到您的配置。例如,topology.kubernetes.io/region=us-sanjose-1 标签指示节点部署的 OCI 区域。

1.7. 安装后将主机添加到集群

使用 Assisted Installer 创建集群时,您可以使用 Red Hat Hybrid Cloud Console 在集群中添加新主机节点,并批准其证书签名请求(CRS)。

详情请参阅将节点添加到集群(Oracle 文档)。

1.8. 对在 OCI 上安装集群进行故障排除

如果您在使用 Assisted Installer 在 Oracle® Cloud Infrastructure (OCI)上安装 OpenShift Container Platform 集群时遇到问题,请阅读以下部分以排除常见问题。

OCI 中的 Ingress Load Balancer 处于健康状态

此问题被归类为 Warning,因为通过使用 OCI 创建堆栈,您创建了计算节点池 3,默认情况下会自动添加为 Ingress Load Balancer 的后端监听程序。默认情况下,OpenShift Container Platform 部署 2 个路由器 Pod,它们基于 OpenShift Container Platform 清单文件中的默认值。Warning 是正常的,因为存在与可用路由器 Pod 数量时出现的不匹配(2 个)可在三个计算节点上运行。

图 1.2. 在 OCI 上的 Backend 设置信息选项卡下的 Warning 消息示例

您不需要修改 Ingress Load Balancer 配置。相反,您可以将 Ingress Load Balancer 指向在 OpenShift Container Platform 上在集群中运行的特定计算节点。要做到这一点,您需要在 OpenShift Container Platform 上使用放置机制,如注解,以确保路由器 pod 仅在您最初作为后端监听程序配置的计算节点上运行。

OCI 创建堆栈操作失败,并显示 Error: 400-InvalidParameter 消息

尝试在 OCI 上创建堆栈时,您确定作业的 Logs 部分会输出错误消息。例如:

Error: 400-InvalidParameter, DNS Label oci-demo does not follow Oracle requirements
Suggestion: Please update the parameter(s) in the Terraform config as per error message DNS Label oci-demo does not follow Oracle requirements
Documentation: https://registry.terraform.io/providers/oracle/oci/latest/docs/resources/core_vcn
Copy to Clipboard Toggle word wrap

进入混合云控制台上的使用 Assisted Installer 安装 OpenShift,并检查 Cluster Details 步骤中的 Cluster name 字段。从名称中删除任何特殊字符,如连字符(-),因为这些特殊字符与 OCI 命名约定不兼容。例如,将 oci-demo 更改为 ocidemo

在 OpenShift Container Platform 4.19 中,您可以使用基于代理的安装程序在 Oracle® Cloud Infrastructure (OCI) 上安装集群,以便您可以在支持专用、混合、公共和多个云环境的基础架构上运行集群工作负载。

虚拟机(VM)和裸机支持在 OCI 上安装集群。

注意

您可以在与 Oracle Cloud Infrastructure (OCI)相同的一个专业区域上部署 OpenShift Container Platform(Oracle 文档)。

2.1. 基于代理的安装程序和 OCI 概述

您可以使用基于代理的安装程序在 Oracle® Cloud Infrastructure (OCI) 上安装 OpenShift Container Platform 集群。红帽和 Oracle 测试、验证和支持在 OpenShift Container Platform 集群中运行的 OCI 工作负载。

基于代理的安装程序提供了辅助安装服务的易用性,但可以在连接或断开连接的环境中安装集群。

下图显示了连接的和断开连接的环境的工作流:

图 2.1. 在连接的环境中使用基于代理的安装程序在 OCI 上安装集群的工作流

图 2.2. 在断开连接的环境中使用基于代理的安装程序在 OCI 上安装集群的工作流

OCI 提供可满足您的法规合规性、性能和符合成本效益的服务。OCI 支持 64 位 x86 实例和 64 位 ARM 实例。

注意

考虑为您的引导磁盘选择一个非易失性内存表达(NVMe)驱动器或固态驱动器(SSD),因为这些驱动器为您的引导磁盘提供低延迟和高吞吐量功能。

通过在 OCI 上运行 OpenShift Container Platform 集群,您可以访问以下功能:

  • 计算灵活性形成,您可以在其中自定义虚拟机的 Oracle® CPU (OCPU)和内存资源的数量。通过访问这个功能,集群的工作负载可以在资源平衡的环境中执行操作。您可以通过进入红帽生态系统目录门户上的 Oracle 页面来找到所有 RHEL 认证的 OCI 结构。
  • 块卷存储,您可以在其中为存储卷配置扩展和自动调整设置,以便块卷服务自动调整性能级别以优化性能。
重要

为确保在 OCI 和 OCVS 服务上运行的集群工作负载的最佳性能条件,请确保您的块卷的卷性能单元(VPU)的大小是针对您的工作负载的大小。以下列表提供了一些有关选择特定性能需要 VPU 的指导信息:

  • 测试或概念验证环境:100 GB,20 到 30 个 VPU。
  • 基本环境:500 GB 和 60 个 VPU。
  • 大型生产环境:500 GB 和 100 个或更多 VPU。

考虑保留额外的 VPU,以便为更新和扩展活动提供足够的容量。有关 VPU 的更多信息,请参阅卷性能单元 (Oracle 文档)。

2.2. 安装过程工作流

以下工作流描述了使用基于代理的安装程序在 OCI 上安装 OpenShift Container Platform 集群的过程的高级概述:

  1. 创建 OCI 资源和服务 (Oracle)。
  2. 断开连接的环境:准备可由 OCI 实例访问的 Web 服务器(红帽)。
  3. 为基于代理的安装程序准备配置文件(Red Hat)。
  4. 生成代理 ISO 镜像(红帽)。
  5. 断开连接的环境:将 rootfs 镜像上传到 web 服务器(红帽)。
  6. 为 OpenShift Container Platform 配置防火墙(红帽)。
  7. 将代理 ISO 镜像上传到存储桶(Oracle)。
  8. 从上传的代理 ISO 镜像创建自定义镜像(Oracle)。
  9. 在 OCI 上创建计算实例(Oracle)。
  10. 验证集群是否在 OCI 上运行(Oracle)。

2.3. 创建 OCI 基础架构资源和服务

您必须在虚拟机(VM)或裸机中创建 OCI 环境。通过创建此环境,您可以安装 OpenShift Container Platform,并在支持广泛的云选项和强大的安全策略的基础架构上部署集群。预先了解 OCI 组件的相关知识可帮助您了解 OCI 资源的概念以及如何配置它们来满足您的机构需求。

在 OCI 上安装 OpenShift Container Platform 集群的基于 Agent 的安装程序方法需要您手动创建 OCI 资源和服务。

重要

为确保与 OpenShift Container Platform 兼容,您必须将 A 设置为每个 DNS 记录和名称记录的记录类型,如下所示:

  • api.<cluster_name>.<base_domain>,它以 API 负载均衡器的 apiVIP 参数为目标
  • api-int.<cluster_name>.<base_domain>,它以 API 负载均衡器的 apiVIP 参数为目标
  • *.apps.<cluster_name>.<base_domain>,它以 Ingress 负载均衡器的 ingressVIP 参数为目标

api.*api-int.* DNS 记录与 control plane 机器相关,因此您必须确保安装的 OpenShift Container Platform 集群中的所有节点都可以访问这些 DNS 记录。

先决条件

流程

2.4. 创建用于在 OCI 上安装集群的配置文件

您需要创建 install-config.yamlagent-config.yaml 配置文件,以便您可以使用基于 Agent 的安装程序来生成可引导 ISO 镜像。基于代理的安装包含一个可引导 ISO,它带有辅助发现代理和辅助服务。这两个组件都需要执行集群安装,但后者的组件仅在其中一个主机上运行。

注意

您还可以使用基于代理的安装程序来生成或接受 Zero Touch Provisioning (ZTP)自定义资源。

先决条件

  • 您可以参阅有关 OpenShift Container Platform 安装和更新流程的详细信息。
  • 您可以阅读有关选择集群安装方法的文档,并为用户准备相关的环境。
  • 您已阅读了"准备基于代理的安装程序"文档。
  • 您已从 Red Hat Hybrid Cloud Console 下载了基于代理的安装程序和命令行界面 (CLI)。
  • 如果要在断开连接的环境中安装,您已准备了环境中的镜像 registry,并将发行镜像 mirror 到 registry。

    重要

    运行以下命令,检查 openshift-install 二进制版本是否与本地镜像容器 registry 以及共享 registry (如 Red Hat Quay)相关:

    $ ./openshift-install version
    Copy to Clipboard Toggle word wrap

    共享 registry 二进制文件的输出示例

    ./openshift-install 4.19.0
    built from commit ae7977b7d1ca908674a0d45c5c243c766fa4b2ca
    release image registry.ci.openshift.org/origin/release:4.19ocp-release@sha256:0da6316466d60a3a4535d5fed3589feb0391989982fba59d47d4c729912d6363
    release architecture amd64
    Copy to Clipboard Toggle word wrap

  • 已使用管理员权限登录到 OpenShift Container Platform。

流程

  1. 运行以下命令,创建一个安装目录来存储配置文件:

    $ mkdir ~/<directory_name>
    Copy to Clipboard Toggle word wrap
  2. 配置 install-config.yaml 配置文件,以满足您的机构的需求,并将文件保存到您创建的目录中。

    设定外部平台的 install-config.yaml 文件

    # install-config.yaml
    apiVersion: v1
    baseDomain: <base_domain> 
    1
    
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      network type: OVNKubernetes
      machineNetwork:
      - cidr: <ip_address_from_cidr> 
    2
    
      serviceNetwork:
      - 172.30.0.0/16
    compute:
      - architecture: amd64 
    3
    
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64 
    4
    
      hyperthreading: Enabled
      name: master
      replicas: 3
    platform:
       external:
        platformName: oci 
    5
    
        cloudControllerManager: External
    sshKey: <public_ssh_key> 
    6
    
    pullSecret: '<pull_secret>' 
    7
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    云供应商的基域。
    2
    CIDR 分配给网络上操作的资源和组件的虚拟网络 (VCN) 的 IP 地址。
    3 4
    根据您的基础架构,您可以选择 arm64amd64
    5
    OCI 设置为外部平台,以便 OpenShift Container Platform 能够与 OCI 集成。
    6
    指定 SSH 公钥。
    7
    为 OpenShift Container Platform 组件和服务(如 Quay.io)下载容器镜像时,您需要验证目的的 pull secret。请参阅通过 Red Hat Hybrid Cloud Console 安装 OpenShift Container Platform 4
  3. 在本地系统上创建一个名为 openshift 的目录。这必须是安装目录的子目录。

    重要

    不要将 install-config.yamlagent-config.yaml 配置文件移到 openshift 目录中。

  4. 如果您使用堆栈置备 OCI 基础架构资源:将 OCI 堆栈的 dynamic_custom_manifest 输出复制并粘贴到名为 manifest.yaml 的文件中,并将该文件保存到 openshift 目录中。
  5. 如果您没有使用堆栈来置备 OCI 基础架构资源:下载并准备自定义清单来创建代理 ISO 镜像:

    1. 进入 配置文件 (Oracle 文档),并按照 GitHub 上的自定义 manifests 目录的链接进行操作。
    2. 复制 condensed-manifest.yml 文件的内容,并将它在本地保存到 openshift 目录中的文件。
    3. condensed-manifest.yml 文件中,更新标记为 TODO 的部分,以指定比较 Oracle® Cloud Identifier (OCID)、VCN OCID、负载均衡器中的子网 OCID,以及安全列表 OCID。
  6. 配置 agent-config.yaml 配置文件,以满足您的机构要求。

    IPv4 网络的 agent-config.yaml 文件示例。

    apiVersion: v1beta1
    metadata:
      name: <cluster_name> 
    1
    
      namespace: <cluster_namespace> 
    2
    
    rendezvousIP: <ip_address_from_CIDR> 
    3
    
    bootArtifactsBaseURL: <server_URL> 
    4
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    您在 DNS 记录中指定的集群名称。
    2
    OpenShift Container Platform 上集群的命名空间。
    3
    如果您使用 IPv4 作为网络 IP 地址格式,请确保将 rendezvousIP 参数设置为在网络上分配的 VCN 的无类别域间路由 (CIDR) 方法的 IPv4 地址。另外,请确保使用 ISO 引导的实例池中至少有一个实例与您为 rendezvousIP 参数设置的 IP 地址值匹配。
    4
    要上传 rootfs 镜像的服务器的 URL。这个参数只适用于断开连接的环境。
  7. 通过在安装目录中输入以下命令来生成最小 ISO 镜像,它排除 rootfs 镜像:

    $ ./openshift-install agent create image --log-level debug
    Copy to Clipboard Toggle word wrap

    该命令还会完成以下操作:

    • 创建子目录 ./<installation_directory>/auth directory::将 kubeadmin-passwordkubeconfig 文件放在 子目录中。
    • 根据您在 agent-config.yaml 配置文件中指定的 IP 地址,创建一个 rendezvousIP 文件。
    • 可选:您对 agent-config.yamlinstall-config.yaml 配置文件所做的任何修改都会导入到 Zero Touch Provisioning (ZTP)自定义资源。

      重要

      基于代理的安装程序使用 Red Hat Enterprise Linux CoreOS (RHCOS)。在后续步骤中提到的 rootfs 镜像是引导、恢复和修复您的操作系统所必需的。

  8. 断开连接的环境:将 rootfs 镜像上传到 web 服务器。

    1. 进入创建最小 ISO 镜像时生成的 ./<installation_directory>/boot-artifacts 目录。
    2. 使用您首选的 Web 服务器,如任何 Hypertext 传输协议守护进程(httpd),将 rootfs 镜像上传到 agent-config.yaml 文件的 bootArtifactsBaseURL 参数中指定的位置。

      例如,如果 bootArtifactsBaseURL 参数状态 http://192.168.122.20,您可以将生成的 rootfs 镜像上传到此位置,以便基于代理的安装程序可以从 http://192.168.122.20/agent.x86_64-rootfs.img 访问镜像。在基于代理的安装程序为外部平台引导最小 ISO 后,基于代理的安装程序将 rootfs 镜像从 http://192.168.122.20/agent.x86_64-rootfs.img 位置下载到系统内存中。

      注意

      基于代理的安装程序还将 bootArtifactsBaseURL 的值添加到最小 ISO 镜像的配置中,以便在 Operator 引导集群节点时,基于代理的安装程序会将 rootfs 镜像下载到系统内存中。

      重要

      考虑超过 1 GB 的完整 ISO 镜像包括 rootfs 镜像。镜像大于最小 ISO 镜像,该镜像通常小于 150 MB。

2.5. 为 OpenShift Container Platform 配置防火墙

在安装 OpenShift Container Platform 前,您必须配置防火墙,以授予 OpenShift Container Platform 所需站点的访问权限。在使用防火墙时,为防火墙提供额外的配置,以便 OpenShift Container Platform 可以访问正常工作所需的站点。

对于断开连接的环境,您必须从 Red Hat 和 Oracle 镜像内容。此环境要求您创建防火墙规则,将防火墙公开给特定端口和 registry。

注意

如果您的环境在 OpenShift Container Platform 集群前面有一个专用的负载均衡器,请查看防火墙和负载均衡器之间的允许列表,以防止对集群造成不必要的网络限制。

流程

  1. 为您的防火墙的允许列表设置以下 registry URL:

    Expand
    URLport功能

    registry.redhat.io

    443

    提供核心容器镜像

    access.redhat.com

    443

    托管签名存储,容器客户端需要验证从 registry.access.redhat.com 中拉取的镜像。在防火墙环境中,确保此资源位于允许列表中。

    registry.access.redhat.com

    443

    托管存储在 Red Hat Ecosytem Catalog 中的所有容器镜像,包括核心容器镜像。

    quay.io

    443

    提供核心容器镜像

    cdn.quay.io

    443

    提供核心容器镜像

    cdn01.quay.io

    443

    提供核心容器镜像

    cdn02.quay.io

    443

    提供核心容器镜像

    cdn03.quay.io

    443

    提供核心容器镜像

    cdn04.quay.io

    443

    提供核心容器镜像

    cdn05.quay.io

    443

    提供核心容器镜像

    cdn06.quay.io

    443

    提供核心容器镜像

    sso.redhat.com

    443

    https://console.redhat.com 站点使用来自 sso.redhat.com 的身份验证

    icr.io

    443

    提供 IBM Cloud Pak 容器镜像。只有在使用 IBM Cloud Paks 时,才需要这个域。

    cp.icr.io

    443

    提供 IBM Cloud Pak 容器镜像。只有在使用 IBM Cloud Paks 时,才需要这个域。

    • 您可以在 allowlist 中使用 wildcard () quay.io 而不是 cdn.quay.iocdn0[1-6].quay.io
    • 您可以使用通配符 *.access.redhat.com 来简化配置,并确保所有子域(包括 registry.access.redhat.com )都被允许。
    • 在 allowlist 中添加站点(如 quay.io )时,不要向 denylist 添加通配符条目,如 *.quay.io。在大多数情况下,镜像 registry 使用内容交付网络(CDN)来提供镜像。如果防火墙阻止访问,则初始下载请求重定向到一个主机名(如 cdn01.quay.io )时,镜像下载将被拒绝。
  2. 将防火墙的允许列表设置为包含为构建所需的语言或框架提供资源的任何站点。
  3. 如果不禁用 Telemetry,您必须授予对以下 URL 的访问权限,以访问 Red Hat Insights:

    Expand
    URLport功能

    cert-api.access.redhat.com

    443

    Telemetry 所需

    api.access.redhat.com

    443

    Telemetry 所需

    infogw.api.openshift.com

    443

    Telemetry 所需

    console.redhat.com

    443

    Telemetry 和 insights-operator需要

  4. 将防火墙的允许列表设置为包含以下 registry URL:

    Expand
    URLport功能

    api.openshift.com

    443

    集群令牌需要,并检查集群是否有可用的更新。

    rhcos.mirror.openshift.com

    443

    下载 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像需要此项。

  5. 将防火墙的允许列表设置为包含以下外部 URL:每个存储库 URL 都托管 OCI 容器。考虑将镜像镜像到几个存储库,以减少任何性能问题。

    Expand
    URLport功能

    k8s.gcr.io

    port

    为基于社区的镜像 registry 托管容器镜像的 Kubernetes registry。此镜像 registry 托管在自定义 Google Container Registry (GCR)域中。

    ghcr.io

    port

    一个 GitHub 镜像 registry,您可以在其中存储和管理开放容器项目镜像。需要访问令牌发布、安装和删除私有、内部和公共软件包。

    storage.googleapis.com

    443

    发行版本镜像签名源,但 Cluster Version Operator 只需要一个可正常工作的源。

    registry.k8s.io

    port

    替换 k8s.gcr.io 镜像 registry,因为 k8s.gcr.io 镜像 registry 不支持其他平台和供应商。

2.6. 在 OCI 上运行集群

要在 Oracle® Cloud Infrastructure (OCI) 上运行集群,您必须将生成的代理 ISO 镜像上传到 OCI 上的默认 Object Storage 存储桶。另外,您必须从提供的基础镜像创建一个计算实例,以便 OpenShift Container Platform 和 OCI 能够相互通信,以便在 OCI 上运行集群。

注意

OCI 支持以下 OpenShift Container Platform 集群拓扑:

  • 在单一节点上安装 OpenShift Container Platform 集群。
  • 高可用性集群至少有三个 control plane 实例和两个计算实例。
  • 紧凑的三节点集群,至少有三个 control plane 实例。

先决条件

  • 您生成了一个代理 ISO 镜像。请参阅"创建配置文件以在 OCI 上安装集群"部分。

流程

  1. 将代理 ISO 镜像上传到 Oracle 的默认 Object Storage 存储桶,并将代理 ISO 镜像作为自定义镜像导入到此存储桶。确保将自定义镜像配置为以统一可扩展固件接口(UEFI)模式引导。如需更多信息,请参阅创建 OpenShift Container Platform ISO 镜像(Oracle 文档)
  2. 从集群拓扑提供的基础镜像创建计算实例。请参阅在 OCI (Oracle 文档)上创建 OpenShift Container Platform 集群

    重要

    在创建计算实例前,请检查您有足够的内存和磁盘资源。另外,请确保至少有一个计算实例与 agent-config.yaml 文件中 rendezvousIP 下声明的地址相同的 IP 地址。

验证集群是否已安装并在 Oracle® Cloud Infrastructure (OCI) 上有效运行。

先决条件

  • 您创建了所有必需的 OCI 资源和服务。请参阅"创建 OCI 基础架构资源和服务"部分。
  • 已创建 install-config.yamlagent-config.yaml 配置文件。请参阅"创建配置文件以在 OCI 上安装集群"部分。
  • 将代理 ISO 镜像上传到默认的 Oracle Object Storage 存储桶,并在 OCI 上创建计算实例。如需更多信息,请参阅"在 OCI 上运行集群"。

流程

在 OpenShift Container Platform 集群的自管理节点上部署计算实例后,您可以选择以下选项之一来监控集群的状态:

  • 在 OpenShift Container Platform CLI 中输入以下命令:

    $ ./openshift-install agent wait-for install-complete --log-level debug
    Copy to Clipboard Toggle word wrap

    检查运行 bootstrap 节点的 rendezvous 主机节点的状态。主机重启后,集群的主机表单部分。

  • 使用 kubeconfig API 检查各种 OpenShift Container Platform 组件的状态。对于 KUBECONFIG 环境变量,请设置集群的 kubeconfig 配置文件的相对路径:

    $  export KUBECONFIG=~/auth/kubeconfig
    Copy to Clipboard Toggle word wrap

    检查每个集群的自我管理的节点的状态。CCM 对每个节点应用标签,以指定在 OCI 上集群中运行的节点。

    $ oc get nodes -A
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                   STATUS ROLES                 AGE VERSION
    main-0.private.agenttest.oraclevcn.com Ready  control-plane, master 7m  v1.27.4+6eeca63
    main-1.private.agenttest.oraclevcn.com Ready  control-plane, master 15m v1.27.4+d7fa83f
    main-2.private.agenttest.oraclevcn.com Ready  control-plane, master 15m v1.27.4+d7fa83f
    Copy to Clipboard Toggle word wrap

    检查每个集群的 Operator 的状态,其中 CCM Operator 状态是集群正在运行的良好指示。

    $ oc get co
    Copy to Clipboard Toggle word wrap

    截断的输出示例

    NAME           VERSION     AVAILABLE  PROGRESSING    DEGRADED   SINCE   MESSAGE
    authentication 4.19.0-0    True       False          False      6m18s
    baremetal      4.19.0-0    True       False          False      2m42s
    network        4.19.0-0    True       True           False      5m58s  Progressing: …
        …
    Copy to Clipboard Toggle word wrap

您可以使用基于代理的安装程序在 Oracle® Compute Cloud@Customer 上安装集群,以便您可以在内部基础架构上运行集群工作负载,同时仍然使用 Oracle® Cloud Infrastructure (OCI)服务。

3.1. 安装过程工作流

以下工作流描述了使用基于代理的安装程序在 Compute Cloud@Customer 上安装 OpenShift Container Platform 集群的过程的高级概述:

  1. 创建 Compute Cloud@Customer 资源和服务(Oracle)。
  2. 为基于代理的安装程序准备配置文件(Red Hat)。
  3. 生成代理 ISO 镜像(红帽)。
  4. 将 ISO 镜像转换为 Oracle Cloud Infrastructure (OCI)镜像,将其上传到 OCI Home Region Bucket,然后将上传的镜像导入到 Compute Cloud@Customer 系统(Oracle)。
  5. 断开连接的环境:准备可由 OCI 实例访问的 Web 服务器(红帽)。
  6. 断开连接的环境:将 rootfs 镜像上传到 web 服务器(红帽)。
  7. 为 OpenShift Container Platform 配置防火墙(红帽)。
  8. 创建 control plane 节点并配置负载均衡器(Oracle)。
  9. 创建计算节点并配置负载均衡器(Oracle)。
  10. 验证集群是否在 OCI 上运行(Oracle)。

您必须在虚拟机(VM)上创建 Compute Cloud@Customer 环境。通过创建此环境,您可以安装 OpenShift Container Platform,并在支持广泛的云选项和强大的安全策略的基础架构上部署集群。预先了解 OCI 组件的相关知识可帮助您了解 OCI 资源的概念以及如何配置它们来满足您的机构需求。

重要

为确保与 OpenShift Container Platform 兼容,您必须将 A 设置为每个 DNS 记录和名称记录的记录类型,如下所示:

  • api.<cluster_name>.<base_domain>,它以 API 负载均衡器的 apiVIP 参数为目标
  • api-int.<cluster_name>.<base_domain>,它以 API 负载均衡器的 apiVIP 参数为目标
  • *.apps.<cluster_name>.<base_domain>,它以 Ingress 负载均衡器的 ingressVIP 参数为目标

api.*api-int.* DNS 记录与 control plane 机器相关,因此您必须确保安装的 OpenShift Container Platform 集群中的所有节点都可以访问这些 DNS 记录。

先决条件

流程

您需要创建 install-config.yamlagent-config.yaml 配置文件,以便您可以使用基于 Agent 的安装程序来生成可引导 ISO 镜像。基于代理的安装包含一个可引导 ISO,它带有辅助发现代理和辅助服务。这两个组件都需要执行集群安装,但后者的组件仅在其中一个主机上运行。

注意

您还可以使用基于代理的安装程序来生成或接受 Zero Touch Provisioning (ZTP)自定义资源。

先决条件

  • 您可以参阅有关 OpenShift Container Platform 安装和更新流程的详细信息。
  • 您可以阅读有关选择集群安装方法的文档,并为用户准备相关的环境。
  • 您已阅读了"准备基于代理的安装程序"文档。
  • 您已从 Red Hat Hybrid Cloud Console 下载了基于代理的安装程序和命令行界面 (CLI)。
  • 如果要在断开连接的环境中安装,您已准备了环境中的镜像 registry,并将发行镜像 mirror 到 registry。

    重要

    运行以下命令,检查 openshift-install 二进制版本是否与本地镜像容器 registry 以及共享 registry (如 Red Hat Quay)相关:

    $ ./openshift-install version
    Copy to Clipboard Toggle word wrap

    共享 registry 二进制文件的输出示例

    ./openshift-install 4.19.0
    built from commit ae7977b7d1ca908674a0d45c5c243c766fa4b2ca
    release image registry.ci.openshift.org/origin/release:4.19ocp-release@sha256:0da6316466d60a3a4535d5fed3589feb0391989982fba59d47d4c729912d6363
    release architecture amd64
    Copy to Clipboard Toggle word wrap

  • 已使用管理员权限登录到 OpenShift Container Platform。

流程

  1. 运行以下命令,创建一个安装目录来存储配置文件:

    $ mkdir ~/<directory_name>
    Copy to Clipboard Toggle word wrap
  2. 配置 install-config.yaml 配置文件,以满足您的机构的需求,并将文件保存到您创建的目录中。

    设定外部平台的 install-config.yaml 文件

    # install-config.yaml
    apiVersion: v1
    baseDomain: <base_domain> 
    1
    
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      network type: OVNKubernetes
      machineNetwork:
      - cidr: <ip_address_from_cidr> 
    2
    
      serviceNetwork:
      - 172.30.0.0/16
    compute:
      - architecture: amd64 
    3
    
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64 
    4
    
      hyperthreading: Enabled
      name: master
      replicas: 3
    platform:
       external:
        platformName: oci 
    5
    
        cloudControllerManager: External
    sshKey: <public_ssh_key> 
    6
    
    pullSecret: '<pull_secret>' 
    7
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    云供应商的基域。
    2
    CIDR 分配给网络上操作的资源和组件的虚拟网络 (VCN) 的 IP 地址。
    3 4
    根据您的基础架构,您可以选择 arm64amd64
    5
    OCI 设置为外部平台,以便 OpenShift Container Platform 能够与 OCI 集成。
    6
    指定 SSH 公钥。
    7
    为 OpenShift Container Platform 组件和服务(如 Quay.io)下载容器镜像时,您需要验证目的的 pull secret。请参阅通过 Red Hat Hybrid Cloud Console 安装 OpenShift Container Platform 4
  3. 在本地系统上创建一个名为 openshift 的目录。这必须是安装目录的子目录。

    重要

    不要将 install-config.yamlagent-config.yaml 配置文件移到 openshift 目录中。

  4. 配置 Oracle 自定义清单文件。

    1. 进入 OpenShift Cluster Setup with Agent Based Installer on Compute Cloud@Customer (Oracle 文档) 中的 "Prepare the OpenShift Master Images"。
    2. oci-ccm.ymloci-csi.ymlmachineconfig-ccm.yml 文件复制到 openshift 目录中。
    3. 编辑 oci-ccm.ymloci-csi.yml 文件,以指定比较 Oracle® 云标识符(OCID)、VCN OCID、负载均衡器中的子网 OCID 和 c3-cert.pem 部分。
  5. 配置 agent-config.yaml 配置文件,以满足您的机构要求。

    IPv4 网络的 agent-config.yaml 文件示例。

    apiVersion: v1beta1
    metadata:
      name: <cluster_name> 
    1
    
      namespace: <cluster_namespace> 
    2
    
    rendezvousIP: <ip_address_from_CIDR> 
    3
    
    bootArtifactsBaseURL: <server_URL> 
    4
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    您在 DNS 记录中指定的集群名称。
    2
    OpenShift Container Platform 上集群的命名空间。
    3
    如果您使用 IPv4 作为网络 IP 地址格式,请确保将 rendezvousIP 参数设置为在网络上分配的 VCN 的无类别域间路由 (CIDR) 方法的 IPv4 地址。另外,请确保使用 ISO 引导的实例池中至少有一个实例与您为 rendezvousIP 参数设置的 IP 地址值匹配。
    4
    要上传 rootfs 镜像的服务器的 URL。这个参数只适用于断开连接的环境。
  6. 通过在安装目录中输入以下命令来生成最小 ISO 镜像,它排除 rootfs 镜像:

    $ ./openshift-install agent create image --log-level debug
    Copy to Clipboard Toggle word wrap

    该命令还会完成以下操作:

    • 创建子目录 ./<installation_directory>/auth directory::将 kubeadmin-passwordkubeconfig 文件放在 子目录中。
    • 根据您在 agent-config.yaml 配置文件中指定的 IP 地址,创建一个 rendezvousIP 文件。
    • 可选:您对 agent-config.yamlinstall-config.yaml 配置文件所做的任何修改都会导入到 Zero Touch Provisioning (ZTP)自定义资源。

      重要

      基于代理的安装程序使用 Red Hat Enterprise Linux CoreOS (RHCOS)。在后续步骤中提到的 rootfs 镜像是引导、恢复和修复您的操作系统所必需的。

  7. 断开连接的环境:将 rootfs 镜像上传到 web 服务器。

    1. 进入创建最小 ISO 镜像时生成的 ./<installation_directory>/boot-artifacts 目录。
    2. 使用您首选的 Web 服务器,如任何 Hypertext 传输协议守护进程(httpd),将 rootfs 镜像上传到 agent-config.yaml 文件的 bootArtifactsBaseURL 参数中指定的位置。

      例如,如果 bootArtifactsBaseURL 参数状态 http://192.168.122.20,您可以将生成的 rootfs 镜像上传到此位置,以便基于代理的安装程序可以从 http://192.168.122.20/agent.x86_64-rootfs.img 访问镜像。在基于代理的安装程序为外部平台引导最小 ISO 后,基于代理的安装程序将 rootfs 镜像从 http://192.168.122.20/agent.x86_64-rootfs.img 位置下载到系统内存中。

      注意

      基于代理的安装程序还将 bootArtifactsBaseURL 的值添加到最小 ISO 镜像的配置中,以便在 Operator 引导集群节点时,基于代理的安装程序会将 rootfs 镜像下载到系统内存中。

      重要

      考虑超过 1 GB 的完整 ISO 镜像包括 rootfs 镜像。镜像大于最小 ISO 镜像,该镜像通常小于 150 MB。

3.4. 为 OpenShift Container Platform 配置防火墙

在安装 OpenShift Container Platform 前,您必须配置防火墙,以授予 OpenShift Container Platform 所需站点的访问权限。在使用防火墙时,为防火墙提供额外的配置,以便 OpenShift Container Platform 可以访问正常工作所需的站点。

与 worker 节点相比,仅在控制器节点上运行的服务没有特殊的配置注意事项。

注意

如果您的环境在 OpenShift Container Platform 集群前面有一个专用的负载均衡器,请查看防火墙和负载均衡器之间的允许列表,以防止对集群造成不必要的网络限制。

流程

  1. 为您的防火墙的允许列表设置以下 registry URL:

    Expand
    URLport功能

    registry.redhat.io

    443

    提供核心容器镜像

    access.redhat.com

    443

    托管签名存储,容器客户端需要验证从 registry.access.redhat.com 中拉取的镜像。在防火墙环境中,确保此资源位于允许列表中。

    registry.access.redhat.com

    443

    托管存储在 Red Hat Ecosytem Catalog 中的所有容器镜像,包括核心容器镜像。

    quay.io

    443

    提供核心容器镜像

    cdn.quay.io

    443

    提供核心容器镜像

    cdn01.quay.io

    443

    提供核心容器镜像

    cdn02.quay.io

    443

    提供核心容器镜像

    cdn03.quay.io

    443

    提供核心容器镜像

    cdn04.quay.io

    443

    提供核心容器镜像

    cdn05.quay.io

    443

    提供核心容器镜像

    cdn06.quay.io

    443

    提供核心容器镜像

    sso.redhat.com

    443

    https://console.redhat.com 站点使用来自 sso.redhat.com 的身份验证

    icr.io

    443

    提供 IBM Cloud Pak 容器镜像。只有在使用 IBM Cloud Paks 时,才需要这个域。

    cp.icr.io

    443

    提供 IBM Cloud Pak 容器镜像。只有在使用 IBM Cloud Paks 时,才需要这个域。

    • 您可以在 allowlist 中使用 wildcard () quay.io 而不是 cdn.quay.iocdn0[1-6].quay.io
    • 您可以使用通配符 *.access.redhat.com 来简化配置,并确保所有子域(包括 registry.access.redhat.com )都被允许。
    • 在 allowlist 中添加站点(如 quay.io )时,不要向 denylist 添加通配符条目,如 *.quay.io。在大多数情况下,镜像 registry 使用内容交付网络(CDN)来提供镜像。如果防火墙阻止访问,则初始下载请求重定向到一个主机名(如 cdn01.quay.io )时,镜像下载将被拒绝。
  2. 将防火墙的允许列表设置为包含为构建所需的语言或框架提供资源的任何站点。
  3. 如果不禁用 Telemetry,您必须授予对以下 URL 的访问权限,以访问 Red Hat Insights:

    Expand
    URLport功能

    cert-api.access.redhat.com

    443

    Telemetry 所需

    api.access.redhat.com

    443

    Telemetry 所需

    infogw.api.openshift.com

    443

    Telemetry 所需

    console.redhat.com

    443

    Telemetry 和 insights-operator需要

  4. 如果使用 Alibaba Cloud、Amazon Web Services (AWS)、Microsoft Azure 或 Google Cloud Platform (GCP) 来托管您的集群,您必须授予对为该云提供云供应商 API 和 DNS 的 URL 的访问权限:

    Expand
    URLport功能

    Alibaba

    *.aliyuncs.com

    443

    需要此项以访问 Alibaba Cloud 服务和资源。查看 Alibaba endpoint_config.go 文件,以查找您使用的区域所允许的确切端点。

    AWS

    aws.amazon.com

    443

    用于在 AWS 环境中安装和管理集群。

    *.amazonaws.com

    另外,如果您选择不对 AWS API 使用通配符,则必须在允许列表中包含以下 URL:

    443

    需要此项以访问 AWS 服务和资源。请参阅 AWS 文档中的 AWS Service Endpoints,以查找您使用的区域所允许的确切端点。

    ec2.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    events.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    iam.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    route53.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    *.s3.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    *.s3.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    *.s3.dualstack.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    sts.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    sts.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    tagging.us-east-1.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。此端点始终为 us-east-1,无论集群要部署到的区域。

    ec2.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    elasticloadbalancing.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    servicequotas.<aws_region>.amazonaws.com

    443

    必需。用于确认用于部署该服务的配额。

    tagging.<aws_region>.amazonaws.com

    443

    允许以标签的形式分配 AWS 资源的元数据。

    *.cloudfront.net

    443

    用于提供对 CloudFront 的访问。如果使用 AWS 安全令牌服务(STS)和私有 S3 存储桶,您必须提供对 CloudFront 的访问。

    GCP

    *.googleapis.com

    443

    需要此项以访问 GCP 服务和资源。请参阅 GCP 文档中的 Cloud Endpoints,以查找您的 API 允许的端点。

    accounts.google.com

    443

    需要此项以访问您的 GCP 帐户。

    Microsoft Azure

    management.azure.com

    443

    需要此项以访问 Microsoft Azure 服务和资源。请参阅 Microsoft Azure 文档中的 Microsoft Azure REST API 参考,以查找允许您 API 的端点。

    *.blob.core.windows.net

    443

    需要下载 Ignition 文件。

    login.microsoftonline.com

    443

    需要此项以访问 Microsoft Azure 服务和资源。请参阅 Microsoft Azure 文档中的 Azure REST API 参考,以查找您的 API 允许的端点。

  5. 将以下 URL 列入允许列表:

    Expand
    URLport功能

    *.apps.<cluster_name>.<base_domain>

    443

    需要此项以访问默认集群路由,除非您在安装过程中设置了入口通配符。

    api.openshift.com

    443

    集群令牌需要,并检查集群是否有可用的更新。

    console.redhat.com

    443

    集群令牌所需。

    mirror.openshift.com

    443

    需要此项以访问镜像安装内容和镜像。此站点也是发行版本镜像签名的来源,但 Cluster Version Operator 只需要一个可正常工作的源。

    quayio-production-s3.s3.amazonaws.com

    443

    需要此项以访问 AWS 中的 Quay 镜像内容。

    rhcos.mirror.openshift.com

    443

    下载 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像需要此项。

    sso.redhat.com

    443

    https://console.redhat.com 站点使用来自 sso.redhat.com 的身份验证

    storage.googleapis.com/openshift-release

    443

    发行版本镜像签名源,但 Cluster Version Operator 只需要一个可正常工作的源。

    Operator 需要路由访问权限来执行健康检查。特别是,身份验证和 Web 控制台 Operator 会连接到两个路由,以验证路由是否正常工作。如果您是集群管理员,且不想允许 *.apps.<cluster_name>.<base_domain>,则允许这些路由:

    • oauth-openshift.apps.<cluster_name>.<base_domain>
    • canary-openshift-ingress-canary.apps.<cluster_name>.<base_domain>
    • console-openshift-console.apps.<cluster_name>.<base_domain>,或在 consoles.operator/cluster 对象中的 spec.route.hostname 项指定的主机名(如果这个项不为空)。
  6. 将以下 URL 列入允许的可选第三方内容:

    Expand
    URLport功能

    registry.connect.redhat.com

    443

    所有第三方镜像和认证操作器必填.

    rhc4tp-prod-z8cxf-image-registry-us-east-1-evenkyleffocxqvofrk.s3.dualstack.us-east-1.amazonaws.com

    443

    提供对托管在 registry.connect.redhat.com上的容器镜像的访问

    oso-rhc4tp-docker-registry.s3-us-west-2.amazonaws.com

    443

    对于 Sonatype Nexus, F5 Big IP operator 是必需的。

  7. 如果您使用默认的红帽网络时间协议(NTP)服务器允许以下 URL:

    • 1.rhel.pool.ntp.org
    • 2.rhel.pool.ntp.org
    • 3.rhel.pool.ntp.org
注意

如果您不使用默认的 Red Hat NTP 服务器,请验证您的平台的 NTP 服务器并在防火墙中允许它。

3.5. 在 Compute Cloud@Customer 上运行集群

要在 Oracle® Compute Cloud@Customer 上运行集群,您必须首先将生成的 Agent ISO 镜像转换为 OCI 镜像,将其上传到 OCI Home Region Bucket 中,然后将上传的镜像导入到 Compute Cloud@Customer 系统。

注意

Compute Cloud@Customer 支持以下 OpenShift Container Platform 集群拓扑:

  • 在单一节点上安装 OpenShift Container Platform 集群。
  • 高可用性集群至少有三个 control plane 实例和两个计算实例。
  • 紧凑的三节点集群,至少有三个 control plane 实例。

先决条件

  • 您生成了 Agent ISO 镜像。请参阅"创建配置文件以在 Compute Cloud@Customer"部分安装集群。

流程

  1. 将代理 ISO 镜像转换为 OCI 镜像,将它上传到 OCI Home Region Bucket,然后将上传的镜像导入到 Compute Cloud@Customer 系统。具体步骤,请参阅 OpenShift Cluster Setup with Agent Based Installer on Compute Cloud@Customer (Oracle documentation) 中的 "Prepare the OpenShift Master Images"。
  2. 在 Compute Cloud@Customer 上创建 control plane 实例。具体步骤,请参阅 OpenShift Cluster Setup with Agent Based Installer on Compute Cloud@Customer (Oracle documentation) 中的 "Create control plane instances on C3 and Master Node LB Backend Sets"。
  3. 从集群拓扑提供的基础镜像创建计算实例。具体步骤,请参阅 OpenShift Cluster Setup with Agent Based Installer on Compute Cloud@Customer (Oracle documentation) 中的 "Add worker nodes"。

    重要

    在创建计算实例前,请检查您有足够的内存和磁盘资源。另外,请确保至少有一个计算实例与 agent-config.yaml 文件中 rendezvousIP 下声明的地址相同的 IP 地址。

验证集群是否已安装,并在 Compute Cloud@Customer 上高效运行。

先决条件

  • 您创建了所有必需的 Oracle® Compute Cloud@Customer 资源和服务。请参阅 "Creating Oracle Compute Cloud@Customer infrastructure resources and services" 部分。
  • 已创建 install-config.yamlagent-config.yaml 配置文件。请参阅"创建配置文件以在 Compute Cloud@Customer"部分安装集群。
  • 将代理 ISO 镜像上传到默认的 Oracle Object Storage 存储桶,并在 Compute Cloud@Customer 上创建计算实例。如需更多信息,请参阅"在 Compute Cloud@Customer 上运行集群"。

流程

在 OpenShift Container Platform 集群的自管理节点上部署计算实例后,您可以选择以下选项之一来监控集群的状态:

  • 在 OpenShift Container Platform CLI 中输入以下命令:

    $ ./openshift-install agent wait-for install-complete --log-level debug
    Copy to Clipboard Toggle word wrap

    检查运行 bootstrap 节点的 rendezvous 主机节点的状态。主机重启后,集群的主机表单部分。

  • 使用 kubeconfig API 检查各种 OpenShift Container Platform 组件的状态。对于 KUBECONFIG 环境变量,请设置集群的 kubeconfig 配置文件的相对路径:

    $  export KUBECONFIG=~/auth/kubeconfig
    Copy to Clipboard Toggle word wrap

    检查每个集群的自我管理的节点的状态。CCM 对每个节点应用标签,以指定在 OCI 上集群中运行的节点。

    $ oc get nodes -A
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                   STATUS ROLES                 AGE VERSION
    main-0.private.agenttest.oraclevcn.com Ready  control-plane, master 7m  v1.27.4+6eeca63
    main-1.private.agenttest.oraclevcn.com Ready  control-plane, master 15m v1.27.4+d7fa83f
    main-2.private.agenttest.oraclevcn.com Ready  control-plane, master 15m v1.27.4+d7fa83f
    Copy to Clipboard Toggle word wrap

    检查每个集群的 Operator 的状态,其中 CCM Operator 状态是集群正在运行的良好指示。

    $ oc get co
    Copy to Clipboard Toggle word wrap

    截断的输出示例

    NAME           VERSION     AVAILABLE  PROGRESSING    DEGRADED   SINCE   MESSAGE
    authentication 4.19.0-0    True       False          False      6m18s
    baremetal      4.19.0-0    True       False          False      2m42s
    network        4.19.0-0    True       True           False      5m58s  Progressing: …
        …
    Copy to Clipboard Toggle word wrap

您可以使用基于代理的安装程序在 Oracle® Private Cloud Appliance 上安装集群,以便您可以在内部基础架构上运行集群工作负载,同时仍然使用 Oracle® Cloud Infrastructure (OCI)服务。

4.1. 安装过程工作流

以下工作流描述了使用基于代理的安装程序在私有云设备上安装 OpenShift Container Platform 集群的过程的高级概述:

  1. 创建私有云设备资源和服务(Oracle)。
  2. 为基于代理的安装程序准备配置文件(Red Hat)。
  3. 生成代理 ISO 镜像(红帽)。
  4. 将 ISO 镜像转换为 Oracle Cloud Infrastructure (OCI) 镜像,将其上传到 OCI Home Region Bucket,然后将上传的镜像导入到私有云设备系统 (Oracle)。
  5. 断开连接的环境:准备可由 OCI 实例访问的 Web 服务器(红帽)。
  6. 断开连接的环境:将 rootfs 镜像上传到 web 服务器(红帽)。
  7. 为 OpenShift Container Platform 配置防火墙(红帽)。
  8. 创建 control plane 节点并配置负载均衡器(Oracle)。
  9. 创建计算节点并配置负载均衡器(Oracle)。
  10. 验证集群是否在 OCI 上运行(Oracle)。

您必须在虚拟机(VM)上创建私有云设备环境。通过创建此环境,您可以安装 OpenShift Container Platform,并在支持广泛的云选项和强大的安全策略的基础架构上部署集群。预先了解 OCI 组件的相关知识可帮助您了解 OCI 资源的概念以及如何配置它们来满足您的机构需求。

重要

为确保与 OpenShift Container Platform 兼容,您必须将 A 设置为每个 DNS 记录和名称记录的记录类型,如下所示:

  • api.<cluster_name>.<base_domain>,它以 API 负载均衡器的 apiVIP 参数为目标
  • api-int.<cluster_name>.<base_domain>,它以 API 负载均衡器的 apiVIP 参数为目标
  • *.apps.<cluster_name>.<base_domain>,它以 Ingress 负载均衡器的 ingressVIP 参数为目标

api.*api-int.* DNS 记录与 control plane 机器相关,因此您必须确保安装的 OpenShift Container Platform 集群中的所有节点都可以访问这些 DNS 记录。

先决条件

流程

您需要创建 install-config.yamlagent-config.yaml 配置文件,以便您可以使用基于 Agent 的安装程序来生成可引导 ISO 镜像。基于代理的安装包含一个可引导 ISO,它带有辅助发现代理和辅助服务。这两个组件都需要执行集群安装,但后者的组件仅在其中一个主机上运行。

注意

您还可以使用基于代理的安装程序来生成或接受 Zero Touch Provisioning (ZTP)自定义资源。

先决条件

  • 您可以参阅有关 OpenShift Container Platform 安装和更新流程的详细信息。
  • 您可以阅读有关选择集群安装方法的文档,并为用户准备相关的环境。
  • 您已阅读了"准备基于代理的安装程序"文档。
  • 您已从 Red Hat Hybrid Cloud Console 下载了基于代理的安装程序和命令行界面 (CLI)。
  • 如果要在断开连接的环境中安装,您已准备了环境中的镜像 registry,并将发行镜像 mirror 到 registry。

    重要

    运行以下命令,检查 openshift-install 二进制版本是否与本地镜像容器 registry 以及共享 registry (如 Red Hat Quay)相关:

    $ ./openshift-install version
    Copy to Clipboard Toggle word wrap

    共享 registry 二进制文件的输出示例

    ./openshift-install 4.19.0
    built from commit ae7977b7d1ca908674a0d45c5c243c766fa4b2ca
    release image registry.ci.openshift.org/origin/release:4.19ocp-release@sha256:0da6316466d60a3a4535d5fed3589feb0391989982fba59d47d4c729912d6363
    release architecture amd64
    Copy to Clipboard Toggle word wrap

  • 已使用管理员权限登录到 OpenShift Container Platform。

流程

  1. 运行以下命令,创建一个安装目录来存储配置文件:

    $ mkdir ~/<directory_name>
    Copy to Clipboard Toggle word wrap
  2. 配置 install-config.yaml 配置文件,以满足您的机构的需求,并将文件保存到您创建的目录中。

    设定外部平台的 install-config.yaml 文件

    # install-config.yaml
    apiVersion: v1
    baseDomain: <base_domain> 
    1
    
    networking:
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      network type: OVNKubernetes
      machineNetwork:
      - cidr: <ip_address_from_cidr> 
    2
    
      serviceNetwork:
      - 172.30.0.0/16
    compute:
      - architecture: amd64 
    3
    
      hyperthreading: Enabled
      name: worker
      replicas: 0
    controlPlane:
      architecture: amd64 
    4
    
      hyperthreading: Enabled
      name: master
      replicas: 3
    platform:
       external:
        platformName: oci 
    5
    
        cloudControllerManager: External
    sshKey: <public_ssh_key> 
    6
    
    pullSecret: '<pull_secret>' 
    7
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    云供应商的基域。
    2
    CIDR 分配给网络上操作的资源和组件的虚拟网络 (VCN) 的 IP 地址。
    3 4
    根据您的基础架构,您可以选择 arm64amd64
    5
    OCI 设置为外部平台,以便 OpenShift Container Platform 能够与 OCI 集成。
    6
    指定 SSH 公钥。
    7
    为 OpenShift Container Platform 组件和服务(如 Quay.io)下载容器镜像时,您需要验证目的的 pull secret。请参阅通过 Red Hat Hybrid Cloud Console 安装 OpenShift Container Platform 4
  3. 在本地系统上创建一个名为 openshift 的目录。这必须是安装目录的子目录。

    重要

    不要将 install-config.yamlagent-config.yaml 配置文件移到 openshift 目录中。

  4. 配置 Oracle 自定义清单文件。

    1. 进入 OpenShift Cluster Setup with Agent Based Installer on Private Cloud Appliance (Oracle 文档) 中的 "Prepare the OpenShift Master Images" 部分。
    2. oci-ccm.ymloci-csi.ymlmachineconfig-ccm.yml 文件复制到 openshift 目录中。
    3. 编辑 oci-ccm.ymloci-csi.yml 文件,以指定比较 Oracle® 云标识符(OCID)、VCN OCID、负载均衡器中的子网 OCID 和 c3-cert.pem 部分。
  5. 配置 agent-config.yaml 配置文件,以满足您的机构要求。

    IPv4 网络的 agent-config.yaml 文件示例。

    apiVersion: v1beta1
    metadata:
      name: <cluster_name> 
    1
    
      namespace: <cluster_namespace> 
    2
    
    rendezvousIP: <ip_address_from_CIDR> 
    3
    
    bootArtifactsBaseURL: <server_URL> 
    4
    
    # ...
    Copy to Clipboard Toggle word wrap

    1
    您在 DNS 记录中指定的集群名称。
    2
    OpenShift Container Platform 上集群的命名空间。
    3
    如果您使用 IPv4 作为网络 IP 地址格式,请确保将 rendezvousIP 参数设置为在网络上分配的 VCN 的无类别域间路由 (CIDR) 方法的 IPv4 地址。另外,请确保使用 ISO 引导的实例池中至少有一个实例与您为 rendezvousIP 参数设置的 IP 地址值匹配。
    4
    要上传 rootfs 镜像的服务器的 URL。这个参数只适用于断开连接的环境。
  6. 通过在安装目录中输入以下命令来生成最小 ISO 镜像,它排除 rootfs 镜像:

    $ ./openshift-install agent create image --log-level debug
    Copy to Clipboard Toggle word wrap

    该命令还会完成以下操作:

    • 创建子目录 ./<installation_directory>/auth directory::将 kubeadmin-passwordkubeconfig 文件放在 子目录中。
    • 根据您在 agent-config.yaml 配置文件中指定的 IP 地址,创建一个 rendezvousIP 文件。
    • 可选:您对 agent-config.yamlinstall-config.yaml 配置文件所做的任何修改都会导入到 Zero Touch Provisioning (ZTP)自定义资源。

      重要

      基于代理的安装程序使用 Red Hat Enterprise Linux CoreOS (RHCOS)。在后续步骤中提到的 rootfs 镜像是引导、恢复和修复您的操作系统所必需的。

  7. 断开连接的环境:将 rootfs 镜像上传到 web 服务器。

    1. 进入创建最小 ISO 镜像时生成的 ./<installation_directory>/boot-artifacts 目录。
    2. 使用您首选的 Web 服务器,如任何 Hypertext 传输协议守护进程(httpd),将 rootfs 镜像上传到 agent-config.yaml 文件的 bootArtifactsBaseURL 参数中指定的位置。

      例如,如果 bootArtifactsBaseURL 参数状态 http://192.168.122.20,您可以将生成的 rootfs 镜像上传到此位置,以便基于代理的安装程序可以从 http://192.168.122.20/agent.x86_64-rootfs.img 访问镜像。在基于代理的安装程序为外部平台引导最小 ISO 后,基于代理的安装程序将 rootfs 镜像从 http://192.168.122.20/agent.x86_64-rootfs.img 位置下载到系统内存中。

      注意

      基于代理的安装程序还将 bootArtifactsBaseURL 的值添加到最小 ISO 镜像的配置中,以便在 Operator 引导集群节点时,基于代理的安装程序会将 rootfs 镜像下载到系统内存中。

      重要

      考虑超过 1 GB 的完整 ISO 镜像包括 rootfs 镜像。镜像大于最小 ISO 镜像,该镜像通常小于 150 MB。

4.4. 为 OpenShift Container Platform 配置防火墙

在安装 OpenShift Container Platform 前,您必须配置防火墙,以授予 OpenShift Container Platform 所需站点的访问权限。在使用防火墙时,为防火墙提供额外的配置,以便 OpenShift Container Platform 可以访问正常工作所需的站点。

与 worker 节点相比,仅在控制器节点上运行的服务没有特殊的配置注意事项。

注意

如果您的环境在 OpenShift Container Platform 集群前面有一个专用的负载均衡器,请查看防火墙和负载均衡器之间的允许列表,以防止对集群造成不必要的网络限制。

流程

  1. 为您的防火墙的允许列表设置以下 registry URL:

    Expand
    URLport功能

    registry.redhat.io

    443

    提供核心容器镜像

    access.redhat.com

    443

    托管签名存储,容器客户端需要验证从 registry.access.redhat.com 中拉取的镜像。在防火墙环境中,确保此资源位于允许列表中。

    registry.access.redhat.com

    443

    托管存储在 Red Hat Ecosytem Catalog 中的所有容器镜像,包括核心容器镜像。

    quay.io

    443

    提供核心容器镜像

    cdn.quay.io

    443

    提供核心容器镜像

    cdn01.quay.io

    443

    提供核心容器镜像

    cdn02.quay.io

    443

    提供核心容器镜像

    cdn03.quay.io

    443

    提供核心容器镜像

    cdn04.quay.io

    443

    提供核心容器镜像

    cdn05.quay.io

    443

    提供核心容器镜像

    cdn06.quay.io

    443

    提供核心容器镜像

    sso.redhat.com

    443

    https://console.redhat.com 站点使用来自 sso.redhat.com 的身份验证

    icr.io

    443

    提供 IBM Cloud Pak 容器镜像。只有在使用 IBM Cloud Paks 时,才需要这个域。

    cp.icr.io

    443

    提供 IBM Cloud Pak 容器镜像。只有在使用 IBM Cloud Paks 时,才需要这个域。

    • 您可以在 allowlist 中使用 wildcard () quay.io 而不是 cdn.quay.iocdn0[1-6].quay.io
    • 您可以使用通配符 *.access.redhat.com 来简化配置,并确保所有子域(包括 registry.access.redhat.com )都被允许。
    • 在 allowlist 中添加站点(如 quay.io )时,不要向 denylist 添加通配符条目,如 *.quay.io。在大多数情况下,镜像 registry 使用内容交付网络(CDN)来提供镜像。如果防火墙阻止访问,则初始下载请求重定向到一个主机名(如 cdn01.quay.io )时,镜像下载将被拒绝。
  2. 将防火墙的允许列表设置为包含为构建所需的语言或框架提供资源的任何站点。
  3. 如果不禁用 Telemetry,您必须授予对以下 URL 的访问权限,以访问 Red Hat Insights:

    Expand
    URLport功能

    cert-api.access.redhat.com

    443

    Telemetry 所需

    api.access.redhat.com

    443

    Telemetry 所需

    infogw.api.openshift.com

    443

    Telemetry 所需

    console.redhat.com

    443

    Telemetry 和 insights-operator需要

  4. 如果使用 Alibaba Cloud、Amazon Web Services (AWS)、Microsoft Azure 或 Google Cloud Platform (GCP) 来托管您的集群,您必须授予对为该云提供云供应商 API 和 DNS 的 URL 的访问权限:

    Expand
    URLport功能

    Alibaba

    *.aliyuncs.com

    443

    需要此项以访问 Alibaba Cloud 服务和资源。查看 Alibaba endpoint_config.go 文件,以查找您使用的区域所允许的确切端点。

    AWS

    aws.amazon.com

    443

    用于在 AWS 环境中安装和管理集群。

    *.amazonaws.com

    另外,如果您选择不对 AWS API 使用通配符,则必须在允许列表中包含以下 URL:

    443

    需要此项以访问 AWS 服务和资源。请参阅 AWS 文档中的 AWS Service Endpoints,以查找您使用的区域所允许的确切端点。

    ec2.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    events.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    iam.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    route53.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    *.s3.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    *.s3.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    *.s3.dualstack.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    sts.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    sts.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    tagging.us-east-1.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。此端点始终为 us-east-1,无论集群要部署到的区域。

    ec2.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    elasticloadbalancing.<aws_region>.amazonaws.com

    443

    用于在 AWS 环境中安装和管理集群。

    servicequotas.<aws_region>.amazonaws.com

    443

    必需。用于确认用于部署该服务的配额。

    tagging.<aws_region>.amazonaws.com

    443

    允许以标签的形式分配 AWS 资源的元数据。

    *.cloudfront.net

    443

    用于提供对 CloudFront 的访问。如果使用 AWS 安全令牌服务(STS)和私有 S3 存储桶,您必须提供对 CloudFront 的访问。

    GCP

    *.googleapis.com

    443

    需要此项以访问 GCP 服务和资源。请参阅 GCP 文档中的 Cloud Endpoints,以查找您的 API 允许的端点。

    accounts.google.com

    443

    需要此项以访问您的 GCP 帐户。

    Microsoft Azure

    management.azure.com

    443

    需要此项以访问 Microsoft Azure 服务和资源。请参阅 Microsoft Azure 文档中的 Microsoft Azure REST API 参考,以查找允许您 API 的端点。

    *.blob.core.windows.net

    443

    需要下载 Ignition 文件。

    login.microsoftonline.com

    443

    需要此项以访问 Microsoft Azure 服务和资源。请参阅 Microsoft Azure 文档中的 Azure REST API 参考,以查找您的 API 允许的端点。

  5. 将以下 URL 列入允许列表:

    Expand
    URLport功能

    *.apps.<cluster_name>.<base_domain>

    443

    需要此项以访问默认集群路由,除非您在安装过程中设置了入口通配符。

    api.openshift.com

    443

    集群令牌需要,并检查集群是否有可用的更新。

    console.redhat.com

    443

    集群令牌所需。

    mirror.openshift.com

    443

    需要此项以访问镜像安装内容和镜像。此站点也是发行版本镜像签名的来源,但 Cluster Version Operator 只需要一个可正常工作的源。

    quayio-production-s3.s3.amazonaws.com

    443

    需要此项以访问 AWS 中的 Quay 镜像内容。

    rhcos.mirror.openshift.com

    443

    下载 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像需要此项。

    sso.redhat.com

    443

    https://console.redhat.com 站点使用来自 sso.redhat.com 的身份验证

    storage.googleapis.com/openshift-release

    443

    发行版本镜像签名源,但 Cluster Version Operator 只需要一个可正常工作的源。

    Operator 需要路由访问权限来执行健康检查。特别是,身份验证和 Web 控制台 Operator 会连接到两个路由,以验证路由是否正常工作。如果您是集群管理员,且不想允许 *.apps.<cluster_name>.<base_domain>,则允许这些路由:

    • oauth-openshift.apps.<cluster_name>.<base_domain>
    • canary-openshift-ingress-canary.apps.<cluster_name>.<base_domain>
    • console-openshift-console.apps.<cluster_name>.<base_domain>,或在 consoles.operator/cluster 对象中的 spec.route.hostname 项指定的主机名(如果这个项不为空)。
  6. 将以下 URL 列入允许的可选第三方内容:

    Expand
    URLport功能

    registry.connect.redhat.com

    443

    所有第三方镜像和认证操作器必填.

    rhc4tp-prod-z8cxf-image-registry-us-east-1-evenkyleffocxqvofrk.s3.dualstack.us-east-1.amazonaws.com

    443

    提供对托管在 registry.connect.redhat.com上的容器镜像的访问

    oso-rhc4tp-docker-registry.s3-us-west-2.amazonaws.com

    443

    对于 Sonatype Nexus, F5 Big IP operator 是必需的。

  7. 如果您使用默认的红帽网络时间协议(NTP)服务器允许以下 URL:

    • 1.rhel.pool.ntp.org
    • 2.rhel.pool.ntp.org
    • 3.rhel.pool.ntp.org
注意

如果您不使用默认的 Red Hat NTP 服务器,请验证您的平台的 NTP 服务器并在防火墙中允许它。

4.5. 在私有云设备上运行集群

要在 Oracle® Private Cloud Appliance 上运行集群,您必须首先将生成的 Agent ISO 镜像转换为 OCI 镜像,将其上传到 OCI Home Region Bucket 中,然后将上传的镜像导入到 Private Cloud Appliance 系统。

注意

私有云设备支持以下 OpenShift Container Platform 集群拓扑:

  • 在单一节点上安装 OpenShift Container Platform 集群。
  • 高可用性集群至少有三个 control plane 实例和两个计算实例。
  • 紧凑的三节点集群,至少有三个 control plane 实例。

先决条件

  • 您生成了 Agent ISO 镜像。请参阅"为在私有云设备上安装集群创建配置文件"部分。

流程

  1. 将代理 ISO 镜像转换为 OCI 镜像,将它上传到 OCI Home Region Bucket,然后将上传的镜像导入到 Private Cloud Appliance 系统。进入 OpenShift Cluster Setup with Agent Based Installer on Private Cloud Appliance (Oracle 文档) 中的 "Prepare the OpenShift Master Images" 部分。
  2. 在私有云设备上创建 control plane 实例。具体步骤,请参阅 OpenShift Cluster Setup with Agent Based Installer on Private Cloud Appliance (Oracle documentation) 中的 "Create control plane instances on PCA and Master Node LB Backend Sets"。
  3. 从集群拓扑提供的基础镜像创建计算实例。具体步骤,请参阅 OpenShift Cluster Setup with Agent Based Installer on Private Cloud Appliance (Oracle documentation) 中的 "Add worker nodes"。

    重要

    在创建计算实例前,请检查您有足够的内存和磁盘资源。另外,请确保至少有一个计算实例与 agent-config.yaml 文件中 rendezvousIP 下声明的地址相同的 IP 地址。

验证集群是否已安装,并在 Private Cloud Appliance 上高效运行。

先决条件

  • 您创建了所有必需的 Oracle® Private Cloud Appliance 资源和服务。请参阅"创建 Oracle 私有云设备基础架构资源和服务"部分。
  • 已创建 install-config.yamlagent-config.yaml 配置文件。请参阅"为在私有云设备上安装集群创建配置文件"部分。
  • 将代理 ISO 镜像上传到默认的 Oracle Object Storage 存储桶,并在 Private Cloud Appliance 上创建计算实例。如需更多信息,请参阅"在 Private Cloud Appliance 上运行集群"。

流程

在 OpenShift Container Platform 集群的自管理节点上部署计算实例后,您可以选择以下选项之一来监控集群的状态:

  • 在 OpenShift Container Platform CLI 中输入以下命令:

    $ ./openshift-install agent wait-for install-complete --log-level debug
    Copy to Clipboard Toggle word wrap

    检查运行 bootstrap 节点的 rendezvous 主机节点的状态。主机重启后,集群的主机表单部分。

  • 使用 kubeconfig API 检查各种 OpenShift Container Platform 组件的状态。对于 KUBECONFIG 环境变量,请设置集群的 kubeconfig 配置文件的相对路径:

    $  export KUBECONFIG=~/auth/kubeconfig
    Copy to Clipboard Toggle word wrap

    检查每个集群的自我管理的节点的状态。CCM 对每个节点应用标签,以指定在 OCI 上集群中运行的节点。

    $ oc get nodes -A
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                                   STATUS ROLES                 AGE VERSION
    main-0.private.agenttest.oraclevcn.com Ready  control-plane, master 7m  v1.27.4+6eeca63
    main-1.private.agenttest.oraclevcn.com Ready  control-plane, master 15m v1.27.4+d7fa83f
    main-2.private.agenttest.oraclevcn.com Ready  control-plane, master 15m v1.27.4+d7fa83f
    Copy to Clipboard Toggle word wrap

    检查每个集群的 Operator 的状态,其中 CCM Operator 状态是集群正在运行的良好指示。

    $ oc get co
    Copy to Clipboard Toggle word wrap

    截断的输出示例

    NAME           VERSION     AVAILABLE  PROGRESSING    DEGRADED   SINCE   MESSAGE
    authentication 4.19.0-0    True       False          False      6m18s
    baremetal      4.19.0-0    True       False          False      2m42s
    network        4.19.0-0    True       True           False      5m58s  Progressing: …
        …
    Copy to Clipboard Toggle word wrap

借助 Oracle® Compute Cloud@Customer (C3),您可以通过在数据中心中高性能云基础架构上使用 Oracle® Cloud Infrastructure (OCI)服务运行应用程序和中间件。

5.1. 概述

您可以使用 Assisted Installer 在 Oracle Compute Cloud@Customer 上安装 OpenShift Container Platform。

有关替代安装方法,请参阅"使用基于代理的安装程序在 Oracle® Compute Cloud@Customer 上安装集群"。

预安装注意事项

  • 确保您的安装满足为 Oracle 指定的先决条件。详情请查看 Oracle 文档中的 "访问权限和注意事项"部分。
  • 确保您的基础架构经过认证并使用兼容的云实例类型。详情请查看 Oracle Cloud Infrastructure
  • 确保您在虚拟机上执行安装。

安装过程

安装过程在 OpenShift Container Platform 集群的指定划分中构建堡垒主机。堡垒主机用于运行两个 Terraform 脚本:

  • 第一个脚本在 Compute Cloud@Customer 系统的 OCI Home 区域(两个动态组和一个策略)中构建 IAM 资源。
  • 第二个脚本在 Compute Cloud@Customer 系统上构建基础架构资源,以支持 OpenShift Container Platform 集群,包括 OpenShift Container Platform VCN、公共和私有子网、负载均衡器、互联网 GW、NAT GW 和 DNS 服务器。该脚本包括激活 control plane 节点和组成集群的计算节点所需的所有资源。

堡垒主机安装在指定的 OpenShift Container Platform 中,并配置为通过 Compute Cloud@Customer 父租期中的指定 Compute Cloud@Customer DRG 子网或互联网 GW 子网进行通信。

随后安装过程会置备三个 control plane (master)节点和三个计算(worker)节点,以及组成集群的外部和内部负载平衡器。这是 Oracle Cloud Infrastructure (OCI)的标准实施。

主要步骤

该流程的主要步骤如下:

  1. 准备 Compute Cloud@Customer bastion 服务器。
  2. 通过 Home 区域运行 Terraform 脚本。
  3. 为 Oracle Cloud Infrastructure (OCI) 准备 OpenShift Container Platform 镜像。
  4. 通过 Compute Cloud@Customer 区域运行 Terraform 脚本。
  5. 使用 Assisted Installer Web 控制台安装集群。

5.2. 准备 OCI 堡垒服务器

通过实施堡垒主机,您可以安全、高效地管理对 Oracle Compute Cloud@Customer 资源的访问,确保私有实例保持保护并只能通过安全控制的入口点访问。

先决条件

  • 请参阅 Oracle 文档中的 "Bastion server - 先决条件"部分。

流程

  1. 安装堡垒服务器。详情请查看 Oracle 文档中的 "安装"部分。
  2. 安装用于运行 Terraform 脚本的 Terraform 应用程序。详情请查看 Oracle 文档中的 "Terraform Installation"部分。
  3. 安装和配置 OCI 命令行界面(CLI)。详情请参阅 Oracle 文档中的 "安装和配置 OCI CLI"部分。

5.3. 通过 Home 区域运行 Terraform 脚本

将 Terraform 脚本 createInfraResources.tfterraform.tfvars 复制到堡垒服务器。然后运行 createInfraResources.tf 脚本,在 Compute Cloud@Customer OCI Home Region 上创建 Dynamic Group Identity 资源。这些资源包括动态组、策略和标签。

先决条件

  • 您有租期权限来创建动态组和策略。如果没有,您可以在此过程中手动置备它们。

流程

  1. 通过 SSH 连接到堡垒服务器。
  2. 创建 OpenShift\createResourceOnHomeRegion 文件夹。
  3. createInfraResources.tfterraform.tfvars 文件从 C3_PCA GitHub 存储库复制到 createResourceOnHomeRegion 文件夹中。
  4. 确保您有权访问源环境,并且已导出了 C3 证书。
  5. 运行 createInfraResources.tf Terraform 脚本。

有关完整流程,请参阅 Oracle 文档中的 "Terraform Script Execution Part-1 (Run Script via Home Region) "部分。

5.4. 准备 OCI 镜像

在红帽客户门户上的 Assisted Installer 中生成 OpenShift Container Platform ISO 镜像。然后,将镜像转换为 Oracle Cloud Infrastructure (OCI)兼容镜像,并将其上传到 Oracle Compute Cloud@Customer 环境的 Custom Images 页。

您可以在笔记本电脑上生成、转换和上传镜像,而不是在堡垒服务器或 Oracle 解决方案中心等环境中生成和上传。

5.4.1. 在 Assisted Installer 中生成镜像

创建集群并下载发现 ISO 镜像。

流程

  1. 使用您的凭证登录到 Assisted Installer Web 控制台
  2. Red Hat OpenShift 标题中,选择 OpenShift
  3. Red Hat OpenShift Container Platform 标题中,选择 Create Cluster
  4. Cluster Type 页中,滚动到 Cloud 选项卡的末尾,然后选择 Oracle Cloud Infrastructure (虚拟机)。
  5. Create a OpenShift Cluster 页中,选择 Interactive 标题。
  6. Cluster Details 页面上,完成以下字段:

    Expand
    字段所需的操作

    集群名称

    指定 OpenShift Container Platform 集群的名称。这个名称与您通过 Terraform 脚本创建资源的名称相同。名称必须在 1 到 54 个字符之间。它可以使用小写字母数字字符或连字符(-),但必须以小写或数字开头和结尾。

    基域

    指定集群的基域。这是在 Compute Cloud@Customer 上运行的 Terraform 脚本中的 zone_dns 变量的值。记录下这个值。

    OpenShift version

    选择 OpenShift 4.16.20。如果没有立即可见,请滚动到下拉菜单的末尾,选择 Show all available version,然后在搜索框中输入版本。

    与外部合作伙伴平台集成

    选择 Oracle Cloud Infrastructure

    指定这个值后,会默认选择 Include custom manifests 复选框,并将 Custom manifests 页添加到向导中。

  7. 保留其余字段的默认设置,然后点 Next
  8. Operators 页面上,单击 Next
  9. Host Discovery 页中,点 Add hosts 并完成以下步骤:

    注意

    最小 ISO 镜像是 Oracle Cloud Infrastructure (OCI)的强制 置备类型,且无法更改。

    1. SSH 公钥 字段中,通过复制以下命令的输出来添加 SSH 公钥:

      $ cat ~/.ssh/id_rsa.put
      Copy to Clipboard Toggle word wrap

      SSH 公钥将安装到所有 OpenShift Container Platform control plane 和计算节点上。

    2. Show proxy settings 复选框。
    3. 从您之前配置的堡垒服务器的 /etc/environment 文件中添加代理变量:

      http_proxy=http://www-proxy.<your_domain>.com:80
      https_proxy=http://www-proxy.<your_domain>.com:80
      no_proxy=localhost,127.0.0.1,1,2,3,4,5,6,7,8,9,0,.<your_domain>.com
      #(ie.oracle.com,.oraclecorp.com)
      Copy to Clipboard Toggle word wrap
    4. Generate Discovery ISO 生成发现 ISO 镜像文件。
  10. Download Discovery ISO 将该文件保存到本地系统。下载 ISO 文件后,您可以根据需要重命名该文件,如 discovery_image_<your_cluster_name>.iso

将 ISO 镜像转换为 OCI 镜像,并将它上传到来自 OCI Home Region Object Store 的 Compute Cloud@Customer 系统。

流程

  1. 将镜像从 ISO 转换为 OCI。
  2. 将 OCI 镜像上传到 OCI 存储桶,并生成 Pre-Authenticated Request (PAR) URL。
  3. 将 OCI 镜像导入到 Compute Cloud@Customer 门户。
  4. 复制镜像的 Oracle Cloud Identifier (OCID),以便在下一步中使用。

有关完整流程,请参阅 Oracle 文档中的 "OpenShift 镜像准备"部分中的第 6 - 8 步。

5.5. 通过 C3 区域运行 Terraform 脚本

运行 terraform.tfvars Terraform 脚本,以在 Compute Cloud@Customer 上创建所有基础架构资源。这些资源包括 OpenShift Container Platform VCN、公共和私有子网、负载均衡器、互联网 GW、NAT GW 和 DNS 服务器。

此流程部署一个由三个 control plane (master) 和三个计算 (worker) 节点组成的集群。部署后,您必须重命名并重新引导节点。此过程临时复制节点,需要在下一步中手动清理。

流程

  1. 通过 SSH 连接到堡垒服务器。
  2. 设置 C3 证书位置并导出证书。
  3. 运行 terraform.tfvars 脚本,以创建三个 control plane 节点和三个计算节点。
  4. 更新 control plane 和计算节点的标签。
  5. 在 Compute Cloud@Customer 门户上逐一停止并重启实例。

有关完整流程,请参阅 Oracle 文档中的 "Terraform Script Execution - 第 2 部分。

5.6. 使用 Assisted Installer Web 控制台完成安装

配置基础架构后,实例现在正在运行并准备好与红帽注册。

5.6.1. 分配节点角色

如果 Terraform 脚本成功完成,则会为集群列出十二个主机。三个 control plane 主机和三个计算主机的状态为 "Disconnected"。三个 control plane 主机和三个计算主机的状态为 "Insufficient"。

删除断开连接的主机,并将角色分配给剩余的主机。

流程

  1. Assisted Installer web 控制台中选择集群并进入到 Host discovery 页。
  2. 通过点每个主机的选项按钮并选择 Remove host 来删除六个带有"Disconnected"状态的主机。剩余的主机的状态从 "Insufficient" 改为 "Ready"。这个过程最多可能需要三分钟时间。
  3. Role 列中,将 Control plane 角色分配给引导大小为 1.10 TB 的三个节点。将 Worker 角色分配给三个节点,其引导大小为 100 GB。
  4. 点主机的选项按钮并选择 Change hostname 来重命名任何带有名称小于 63 个字符的主机。否则,集群安装将失败。
  5. Next
  6. Storage 页中,点 Next

5.6.2. 配置网络

Networking 页中,为显示 Some validations failed 状态的任何主机添加 NTP 源。

流程

  1. Host inventory 表中,点显示此状态的每个主机的 Some validations failed 链接。
  2. Add NTP sources,然后为其中一个节点添加 IP 地址 169.254.169.254
  3. 等待 2 - 3 分钟,直到所有 Some validations failed 指标都消失。
  4. 选择 Next

5.6.3. 添加自定义清单

创建、修改和上传 Oracle 提供的四个强制自定义清单。

  • C3/custom_manifests_C3/manifests 文件夹中,需要以下清单:

    • oci-ccm.yml
    • oci-csi.yml
  • C3/custom_manifests_C3/openshift 文件夹中,需要以下清单:

    • machineconfig-ccm.yml
    • machineconfig-csi.yml

先决条件

  • 准备自定义清单。详情请参阅 Oracle 文档中的 "使用 RH Assisted Installer UI 安装集群"一节中的第 8 步。

流程

  1. 进入到 Custom manifests 页面。
  2. 上传并保存 oci-ccm.ymloci-csi.yml 清单文件:

    1. Folder 字段中,选择 manifests
    2. File name 字段中,输入 oci-ccm.yml
    3. Content 部分中,单击 Browse
    4. C3/custom_ manifest_C3/manifests 文件夹中选择 oci-ccm.yml 文件。
    5. Add another manifest,为 oci-csi.yml 文件重复前面的子步骤。
  3. 上传并保存 machineconfig-ccm.ymlmachineconfig-csi.yml 清单文件:

    1. 单击 Add another inventory
    2. Folder 字段中,选择 openshift
    3. File name 字段中,输入 machineconfig-ccm.yml
    4. Content 部分中,单击 Browse
    5. C3/custom_ manifest_C3/openshift 文件夹中选择 machineconfig-ccm.yml 文件。
    6. Add another manifest,为 machineconfig-csi.yml 文件重复前面的子步骤。
  4. Next 以保存自定义清单。
  5. Review and create 页中,点 Install cluster 创建 OpenShift Container Platform 集群。这个过程大约需要 30 分钟。

有关从 Oracle Compute Cloud@Customer 访问 OpenShift Container Platform 控制台的说明,请参阅 Oracle 文档中的 "安装集群"一节中的第 15 - 17 步。

Legal Notice

Copyright © 2025 Red Hat

OpenShift documentation is licensed under the Apache License 2.0 (https://www.apache.org/licenses/LICENSE-2.0).

Modified versions must remove all Red Hat trademarks.

Portions adapted from https://github.com/kubernetes-incubator/service-catalog/ with modifications by Red Hat.

Red Hat, Red Hat Enterprise Linux, the Red Hat logo, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.

Linux® is the registered trademark of Linus Torvalds in the United States and other countries.

Java® is a registered trademark of Oracle and/or its affiliates.

XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.

MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.

Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.

The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation’s permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.

All other trademarks are the property of their respective owners.

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat