在 OpenShift Container Platform 4.17 中,您可以使用基于代理的安装程序在 Oracle® Cloud Infrastructure (OCI) 上安装集群,以便您可以在支持专用、混合、公共和多个云环境的基础设施上运行集群工作负载。
在 OCI 上安装集群支持虚拟机 (VM) 和裸机。
您可以使用基于代理的安装程序在 Oracle® Cloud Infrastructure (OCI) 上安装 OpenShift Container Platform 集群。Red Hat 和 Oracle 对在 OpenShift Container Platform 集群中运行 OCI 工作负载进行了测试、验证和支持。
基于代理的安装程序提供了 Assisted Installation 服务的易用性,但能够在连接或断开连接的环境中安装集群。
下图显示了连接和断开连接环境的工作流程
OCI 提供可以满足您的法规遵从性、性能和成本效益需求的服务。OCI 支持 64 位x86
实例和 64 位ARM
实例。此外,OCI 还提供 OCVS 服务,您可以使用它将 VMware 工作负载迁移到 OCI,而无需对应用程序进行大量的重新架构。
建议为引导磁盘选择非易失性内存(NVMe)驱动器或固态硬盘(SSD),因为这些驱动器为引导磁盘提供了低延迟和高吞吐量。 |
通过在 OCI 上运行您的 OpenShift Container Platform 集群,您可以访问以下功能:
计算灵活的形状,您可以在其中自定义虚拟机的 Oracle® CPU (OCPU) 和内存资源数量。通过访问此功能,集群的工作负载可以在资源平衡的环境中执行操作。您可以通过访问 Red Hat 生态系统目录门户上的 Oracle 页面查找所有 RHEL 认证的 OCI 形状。
块卷存储,您可以在其中为存储卷配置缩放和自动调整设置,以便块卷服务自动调整性能级别以优化性能。
Oracle® Cloud VMware Solution (OCVS),您可以在运行在 VMware® vSphere 软件定义数据中心 (SDDC) 的公有云环境中部署集群。您仍然可以完全控制您的 VMware vSphere 环境,但是您可以使用 OCI 服务来改进您在灵活、可扩展和安全的基础设施上的应用程序。
为了确保在 OCI 和 OCVS 服务上运行的集群工作负载获得最佳性能,请确保块卷的卷性能单元 (VPU) 能够满足您的工作负载需求。以下列表提供了一些关于选择特定性能需求所需的 VPU 的指导:
建议预留额外的 VPU 以提供足够的更新和扩展活动容量。有关 VPU 的更多信息,请参阅卷性能单元(Oracle 文档)。 |
以下工作流程描述了使用基于代理的安装程序在 OCI 上安装 OpenShift Container Platform 集群过程的高级概述
创建 OCI 资源和服务(Oracle)。
断开连接的环境:准备一个 OCI 实例可以访问的 Web 服务器(Red Hat)。
为基于代理的安装程序准备配置文件(Red Hat)。
生成代理 ISO 映像(Red Hat)。
断开连接的环境:将 rootfs 映像上传到 Web 服务器(Red Hat)。
为 OpenShift Container Platform 配置防火墙(Red Hat)。
将代理 ISO 映像上传到存储桶(Oracle)。
从上传的代理 ISO 映像创建自定义映像(Oracle)。
在 OCI 上创建计算实例(Oracle)。
验证您的集群是否在 OCI 上运行(Oracle)。
您必须在虚拟机 (VM) 或裸机形状上创建 OCI 环境。通过创建此环境,您可以安装 OpenShift Container Platform 并在一个支持各种云选项和强大安全策略的基础设施上部署集群。事先了解 OCI 组件可以帮助您理解 OCI 资源的概念以及如何配置它们以满足您的组织需求。
在 OCI 上安装 OpenShift Container Platform 集群的基于代理的安装程序方法要求您手动创建 OCI 资源和服务。
为了确保与 OpenShift Container Platform 的兼容性,您必须将
|
您已配置 OCI 帐户来托管 OpenShift Container Platform 集群。请参阅 先决条件(Oracle 文档)。
创建所需的 OCI 资源和服务。请参阅 使用基于代理的安装程序所需的 OCI 资源(Oracle 文档)。
您必须创建 install-config.yaml
和 agent-config.yaml
配置文件,以便可以使用基于代理的安装程序生成可引导的 ISO 映像。基于代理的安装包含一个可引导的 ISO,其中包含 Assisted discovery 代理和 Assisted Service。这两个组件都是执行集群安装所必需的,但后者仅在一个主机上运行。
稍后,您必须按照 Oracle 文档中的步骤,将生成的代理 ISO 映像上传到 Oracle 的默认对象存储桶,这是在 Oracle® Cloud Infrastructure (OCI) 上集成 OpenShift Container Platform 集群的初始步骤。
您还可以使用基于代理的安装程序生成或接受零接触配置 (ZTP) 自定义资源。 |
您已查看有关 OpenShift Container Platform 安装和更新过程的详细信息。
您已阅读有关选择集群安装方法和为用户准备方法的文档。
您已阅读“准备使用基于代理的安装程序进行安装”文档。
您已从 Red Hat Hybrid Cloud Console 下载了基于代理的安装程序和命令行界面 (CLI)。
如果您在脱机环境中安装,则已在您的环境中准备了一个镜像注册表,并将发行版镜像镜像到该注册表。
通过运行以下命令,检查您的
共享注册表二进制文件的示例输出
|
您已以管理员权限登录到 OpenShift Container Platform。
通过运行以下命令创建一个安装目录来存储配置文件
$ mkdir ~/<directory_name>
配置 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 (3)
hyperthreading: Enabled
name: master
replicas: 3
platform:
external:
platformName: oci (4)
cloudControllerManager: External
sshKey: <public_ssh_key> (5)
pullSecret: '<pull_secret>' (6)
# ...
1 | 您的云提供商的基础域名。 |
2 | 虚拟云网络 (VCN) 中的 IP 地址,CIDR 将其分配给在您的网络上运行的资源和组件。 |
3 | 根据您的基础设施,您可以选择 arm64 或 amd64 。 |
4 | 将 OCI 设置为外部平台,以便 OpenShift Container Platform 可以与 OCI 集成。 |
5 | 指定您的 SSH 公钥。 |
6 | 下载 OpenShift Container Platform 组件和服务(如 Quay.io)的容器镜像时,您需要进行身份验证的拉取密钥。请参阅 Red Hat Hybrid Cloud Console 中的 安装 OpenShift Container Platform 4。 |
在您的本地系统上创建一个名为 openshift
的目录。这必须是安装目录的子目录。
不要将 |
如果您使用堆栈来配置 OCI 基础设施资源:将 OCI 堆栈的 dynamic_custom_manifest
输出复制并粘贴到名为 manifest.yaml
的文件中,并将文件保存在 openshift
目录中。
如果您没有使用堆栈来配置 OCI 基础设施资源:下载并准备自定义清单以创建代理 ISO 映像
访问 配置文件(Oracle 文档),然后点击链接访问 GitHub 上的自定义清单目录。
复制 condensed-manifest.yml
文件的内容,并将其本地保存到 openshift
目录中的文件中。
在 condensed-manifest.yml
文件中,更新标有 TODO
的部分,以指定区隔 Oracle® Cloud 标识符 (OCID)、VCN OCID、负载均衡器的子网 OCID 和安全列表 OCID。
配置 agent-config.yaml
配置文件以满足您组织的需求。
agent-config.yaml
文件。apiVersion: v1beta1
metadata:
name: <cluster_name> (1)
namespace: <cluster_namespace> (2)
rendezvousIP: <ip_address_from_CIDR> (3)
bootArtifactsBaseURL: <server_URL> (4)
# ...
1 | 您在 DNS 记录中指定的集群名称。 |
2 | 您在 OpenShift Container Platform 上的集群命名空间。 |
3 | 如果您使用 IPv4 作为网络 IP 地址格式,请确保将 rendezvousIP 参数设置为 VCN 的无类别域间路由 (CIDR) 方法在您的网络上分配的 IPv4 地址。还要确保使用 ISO 启动的实例池中的至少一个实例与您为 rendezvousIP 参数设置的 IP 地址值匹配。 |
4 | 您要将 rootfs 映像上传到的服务器的 URL。此参数仅在脱机环境中需要。 |
通过在安装目录中输入以下命令生成最小 ISO 映像,该映像不包括 rootfs 映像
$ ./openshift-install agent create image --log-level debug
该命令还完成以下操作
创建一个子目录 ./<安装目录>/auth 目录:
,并将 kubeadmin-password
和 kubeconfig
文件放在子目录中。
根据您在 agent-config.yaml
配置文件中指定的 IP 地址创建 rendezvousIP
文件。
可选:您对 agent-config.yaml
和 install-config.yaml
配置文件所做的任何修改都将导入到零接触配置 (ZTP) 自定义资源中。
基于代理的安装程序使用 Red Hat Enterprise Linux CoreOS (RHCOS)。稍后步骤中提到的 rootfs 映像是引导、恢复和修复操作系统的必需项。 |
仅限脱机环境:将 rootfs 映像上传到 Web 服务器。
转到创建最小 ISO 映像时生成的 ./<安装目录>/boot-artifacts
目录。
使用您首选的 Web 服务器(例如任何超文本传输协议守护程序 (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
位置下载到系统内存中。
基于代理的安装程序还会将 |
请注意,完整的 ISO 映像(超过 |
在安装 OpenShift Container Platform 之前,必须配置防火墙以允许访问 OpenShift Container Platform 所需的站点。使用防火墙时,请对防火墙进行额外配置,以便 OpenShift Container Platform 可以访问其正常运行所需的站点。
对于断开连接的环境,必须镜像来自 Red Hat 和 Oracle 的内容。此环境要求您创建防火墙规则,以将防火墙暴露给特定端口和注册表。
如果您的环境在 OpenShift Container Platform 集群前面有一个专用的负载均衡器,请检查防火墙和负载均衡器之间的允许列表,以防止对集群产生不需要的网络限制。 |
为防火墙的允许列表设置以下注册表 URL
URL | 端口 | 功能 |
---|---|---|
|
443 |
提供核心容器镜像 |
|
443 |
托管容器客户端验证从 |
|
443 |
托管 Red Hat 生态系统目录中存储的所有容器镜像,包括核心容器镜像。 |
|
443 |
提供核心容器镜像 |
|
443 |
提供核心容器镜像 |
|
443 |
提供核心容器镜像 |
|
443 |
提供核心容器镜像 |
|
443 |
提供核心容器镜像 |
|
443 |
提供核心容器镜像 |
|
443 |
提供核心容器镜像 |
|
443 |
提供核心容器镜像 |
|
443 |
|
您可以使用通配符*.quay.io
和*.openshiftapps.com
代替cdn.quay.io
和cdn0[1-6].quay.io
添加到您的允许列表。
您可以使用通配符*.access.redhat.com
简化配置并确保允许所有子域,包括registry.access.redhat.com
。
将站点(例如quay.io
)添加到允许列表时,请不要将通配符条目(例如*.quay.io
)添加到拒绝列表。在大多数情况下,镜像注册表使用内容分发网络 (CDN) 来提供镜像。如果防火墙阻止访问,则初始下载请求重定向到主机名(例如cdn01.quay.io
)时,将拒绝镜像下载。
将防火墙的允许列表设置为包含任何为您的构建所需的语言或框架提供资源的站点。
如果未禁用遥测,则必须授予对以下 URL 的访问权限才能访问 Red Hat Insights
URL | 端口 | 功能 |
---|---|---|
|
443 |
遥测所需 |
|
443 |
遥测所需 |
|
443 |
遥测所需 |
|
443 |
遥测和 |
将防火墙的允许列表设置为包含以下注册表 URL
URL | 端口 | 功能 |
---|---|---|
|
443 |
集群令牌和检查集群是否有可用更新都必需。 |
|
443 |
下载 Red Hat Enterprise Linux CoreOS (RHCOS) 镜像所需。 |
将防火墙的允许列表设置为包含以下外部 URL。每个仓库 URL 都托管 OCI 容器。请尽量将镜像镜像到尽可能少的仓库,以减少任何性能问题。
URL | 端口 | 功能 |
---|---|---|
|
端口 |
一个 Kubernetes 注册表,它为基于社区的镜像注册表托管容器镜像。此镜像注册表托管在自定义 Google Container Registry (GCR) 域上。 |
|
端口 |
一个 GitHub 镜像注册表,您可以在其中存储和管理开放容器倡议镜像。需要访问令牌才能发布、安装和删除私有、内部和公共包。 |
|
443 |
发行版镜像签名的来源,尽管集群版本操作符只需要一个可用的来源。 |
|
端口 |
替换 |
要在 Oracle® Cloud Infrastructure (OCI) 上运行集群,必须将生成的 agent ISO 镜像上传到 OCI 上的默认对象存储桶。此外,必须从提供的基本镜像创建计算实例,以便您的 OpenShift Container Platform 和 OCI 可以相互通信,以便在 OCI 上运行集群。
OCI 支持以下 OpenShift Container Platform 集群拓扑
|
您生成了一个 agent ISO 镜像。请参见“为在 OCI 上安装集群创建配置文件”部分。
将 agent ISO 镜像上传到 Oracle 的默认对象存储桶,并将 agent ISO 镜像作为自定义镜像导入到此存储桶。确保将自定义镜像配置为在统一可扩展固件接口 (UEFI) 模式下启动。更多信息,请参见创建 OpenShift Container Platform ISO 镜像(Oracle 文档)。
为您的集群拓扑从提供的基本镜像创建一个计算实例。请参见在 OCI 上创建 OpenShift Container Platform 集群(Oracle 文档)。
在创建计算实例之前,请检查您是否有足够的内存和磁盘资源用于您的集群。此外,请确保至少一个计算实例具有与 |
验证您的集群是否已安装并在 Oracle® Cloud Infrastructure (OCI) 上有效运行。
您创建了所有必需的 OCI 资源和服务。请参见“创建 OCI 基础架构资源和服务”部分。
您创建了install-config.yaml
和agent-config.yaml
配置文件。请参见“为在 OCI 上安装集群创建配置文件”部分。
您已将 agent ISO 镜像上传到 Oracle 的默认对象存储桶,并在 OCI 上创建了一个计算实例。更多信息,请参见“在 OCI 上运行集群”。
在 OpenShift Container Platform 集群中自托管节点上部署计算实例后,您可以通过选择以下选项之一来监控集群状态
从 OpenShift Container Platform 命令行界面 (CLI) 输入以下命令:
$ ./openshift-install agent wait-for install-complete --log-level debug
检查运行引导节点的 rendezvous
主机节点的状态。主机重新启动后,该主机将成为集群的一部分。
使用 kubeconfig
API 检查各种 OpenShift Container Platform 组件的状态。对于 KUBECONFIG
环境变量,请设置集群 kubeconfig
配置文件的相对路径。
$ export KUBECONFIG=~/auth/kubeconfig
检查集群中每个自管理节点的状态。CCM 为每个节点应用标签,以将其指定为在 OCI 上集群中运行的节点。
$ oc get nodes -A
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
检查集群中每个 Operator 的状态,其中 CCM Operator 的状态是集群正在运行的一个良好指标。
$ oc get co
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE MESSAGE
authentication 4.17.0-0 True False False 6m18s
baremetal 4.17.0-0 True False False 2m42s
network 4.17.0-0 True True False 5m58s Progressing: …
…