第 3 章 安装和更新
3.1. 关于 OpenShift Container Platform 安装
OpenShift Container Platform 安装程序提供了四个部署集群的方法,相关信息包括在以下列表中:
- 交互式 :您可以使用基于 Web 的 辅助安装程序(Assisted Installer)部署集群。对于可以连接到互联网的网络,这是一个理想的方法。Assisted Installer 是安装 OpenShift Container Platform 的最简单方法,它提供智能默认值,并在安装集群前执行预动态验证。它还提供了一个 RESTful API 用于自动化和高级配置场景。
- 本地基于代理的 :对于断开连接的环境或有网络限制的环境,您可以使用基于代理的安装程序。它提供了 Assisted Installer 的许多优点,但您必须首先下载并配置基于代理的安装程序。使用命令行界面完成配置。这个方法适用于断开连接的环境。
- 自动 :您可以在安装程序置备的基础架构中部署集群。安装程序使用每个集群主机的基板管理控制器 (BMC) 进行置备。您可以在有连接或断开连接的环境中部署集群。
- 完全控制:您可以在自己准备和维护的基础架构上部署集群,这种方法提供了最大的定制性。您可以在有连接或断开连接的环境中部署集群。
每种方法部署的集群具有以下特征:
- 没有单点故障的高可用性基础架构,默认可用。
- 管理员可以控制要应用的更新,以及应用的时间。
3.1.1. 关于安装程序
您可以使用安装程序部署每种集群。安装程序会生成主要资产,如 bootstrap、control plane 和计算机器的 Ignition 配置文件。您可以使用这三个机器配置开始使用 OpenShift Container Platform 集群,它为您提供了正确配置的基础架构。
OpenShift Container Platform 安装程序使用一组目标和依赖项来管理集群安装。安装程序具有一组必须实现的目标,并且每个目标都有一组依赖项。因为每个目标仅关注其自己的依赖项,所以安装程序可以并行地实现多个目标,最终组成一个正常运行的集群。安装程序会识别并使用现有组件,而不是运行命令来再次创建它们,因为程序满足依赖项。
图 3.1. OpenShift Container Platform 安装目标和依赖项
3.1.2. 关于 Red Hat Enterprise Linux CoreOS (RHCOS)
在安装后,每一个集群机器都将使用 Red Hat Enterprise Linux CoreOS (RHCOS) 作为操作系统。RHCOS 是 Red Hat Enterprise Linux (RHEL) 的不可变容器主机版本,具有默认启用 SELinux 的 RHEL 内核。RHCOS 包括作为 Kubernetes 节点代理的 kubelet
,以及为 Kubernetes 优化的 CRI-O 容器运行时。
OpenShift Container Platform 4.16 集群中的每一 control plane 机器都必须使用 RHCOS,其中包括一个关键的首次启动置备工具,称为 Ignition。这一工具让集群能够配置机器。操作系统更新作为可引导容器镜像(使用 OSTree 作为后端)提供,该镜像由 Machine Config Operator 在集群中部署。实际的操作系统更改通过使用 rpm-ostree 在每台机器上作为原子操作原位进行。通过结合使用这些技术,OpenShift Container Platform 可以像管理集群上的任何其他应用程序一样管理操作系统,通过原位升级使整个平台保持最新状态。这些原位更新可以减轻运维团队的负担。
如果将 RHCOS 用作所有集群机器的操作系统,则集群将管理其组件和机器的所有方面,包括操作系统在内。因此,只有安装程序和 Machine Config Operator 才能更改机器。安装程序使用 Ignition 配置文件设置每台机器的确切状态,安装后则由 Machine Config Operator 完成对机器的更多更改,例如应用新证书或密钥等。
3.1.3. OpenShift Container Platform 集群支持的平台
在 OpenShift Container Platform 4.16 中,您可以在以下平台上安装使用安装程序置备的基础架构集群:
- Amazon Web Services (AWS)
- 裸机
- Google Cloud Platform (GCP)
- IBM Cloud®
- Microsoft Azure
- Microsoft Azure Stack Hub
- Nutanix
Red Hat OpenStack Platform (RHOSP)
- 最新的 OpenShift Container Platform 版本支持最新的 RHOSP 长生命版本和中间版本。如需完整的 RHOSP 发行版本兼容性信息,请参阅 RHOSP 上的 OpenShift Container Platform 支持列表。
- VMware vSphere
对于所有这些集群,包括用来运行安装过程的计算机在内的所有机器都必须可直接访问互联网,以便为平台容器拉取镜像并向红帽提供 telemetry 数据。
安装后,不支持以下更改:
- 混合云供应商平台.
- 混合云供应商组件。例如,在安装集群的平台上使用另一个平台的持久性存储框架。
在 OpenShift Container Platform 4.16 中,您可以在以下平台上安装使用用户置备的基础架构集群:
- AWS
- Azure
- Azure Stack Hub
- 裸机
- GCP
- IBM Power®
- IBM Z® 或 IBM® LinuxONE
RHOSP
- 最新的 OpenShift Container Platform 版本支持最新的 RHOSP 长生命版本和中间版本。如需完整的 RHOSP 发行版本兼容性信息,请参阅 RHOSP 上的 OpenShift Container Platform 支持列表。
- AWS 上的 VMware Cloud
- VMware vSphere
根据平台支持的情况,您可以在用户置备的基础架构上执行安装,以便您可以运行具有完整互联网访问的机器,将集群放在一个代理的后面,或者执行断开连接的安装。
在断开连接的网络安装中,您可以下载安装集群所需的镜像(image),将它们放在镜像 registry(mirror registry)中,然后使用那些数据安装集群。虽然您需要访问互联网来为平台容器拉取镜像,但在 vSphere 或裸机基础架构上进行断开连接的网络安装,您的集群机器不需要直接访问互联网。
OpenShift Container Platform 4.x Tested Integrations 页面中提供了有关针对不同平台进行集成测试的详细信息。
3.1.4. 安装过程
除了 Assisted Installer 外,当安装 OpenShift Container Platform 集群时,您必须从 OpenShift Cluster Manager Hybrid Cloud Console 上的适当的 Cluster Type 页面下载安装程序。此控制台管理:
- 帐户的 REST API。
- registry 令牌,这是用于获取所需组件的 pull secret。
- 集群注册,将集群身份与您的红帽帐户相关联,以便收集使用指标。
在 OpenShift Container Platform 4.16 中,安装程序是对一组资产执行一系列文件转换的 Go 二进制文件。与安装程序交互的方式因您的安装类型而异。考虑以下安装用例:
- 要使用 Assisted Installer 部署集群,您可以使用 Assisted Installer 配置集群设置。没有安装程序可以下载和配置。设置完集群配置后,您可以下载发现 ISO,然后使用该镜像引导集群机器。您可以使用 Assisted Installer 在完全集成的 Nutanix、vSphere 和裸机上安装集群,以及以前没有集成的环境中安装集群。如果在裸机上安装,您需要提供所有集群基础架构和资源,包括网络、负载均衡、存储和所有集群机器。
- 要使用基于代理的安装程序部署集群,您可以首先下载基于代理的安装程序。然后,您可以配置集群并生成发现镜像。您可以使用发现镜像引导集群机器,它会安装一个与安装程序进行通信的代理,并为您处理置备,您不需要与安装程序进行交互或自行设置置备程序机器。您需要提供所有集群基础架构和资源,包括网络、负载均衡、存储和单个集群机器。这个方法适用于断开连接的环境。
- 对于具有安装程序置备的基础架构集群,您可以将基础架构启动和置备委派给安装程序,而不是亲自执行。安装程序将创建支持集群所需的所有网络、机器和操作系统,除非您载裸机上安装。如果在裸机上安装,您必须提供所有集群基础架构和资源,包括 bootstrap 机器、网络、负载均衡、存储和单个集群机器。
- 如果亲自为集群置备和管理基础架构,则必须提供所有集群基础架构和资源,包括 Bootstrap 机器、网络、负载均衡、存储和独立的集群机器。
对于安装程序,在安装过程中会使用三组文件:名为 install-config.yaml
的安装配置文件、Kubernetes 清单,以及您的集群类型的 Ignition 配置文件。
在安装过程中,您可以修改控制基础 RHCOS 操作系统的 Kubernetes 和 Ignition 配置文件。但是,没有可用的验证机制来确认您对这些对象所做修改是适当的。如果修改了这些对象,集群可能会无法运行。由于存在这种风险,修改 Kubernetes 和 Ignition 配置文件不受支持,除非您遵循记录的流程或在红帽支持指示下操作。
安装配置文件转换为 Kubernetes 清单,然后清单嵌套到 Ignition 配置文件中。安装程序使用这些 Ignition 配置文件来创建集群。
运行安装程序时,所有配置文件会被修剪,因此请务必备份需要再次使用的所有配置文件。
安装之后,您无法修改在安装过程中设置的参数,但可以修改一些集群属性。
使用辅助安装程序的安装过程
使用辅助安装程序进行安装涉及使用基于 Web 的用户界面或使用 RESTful API 以互动方式创建集群配置。Assisted Installer 用户界面会提示您输入所需的值,并为其余参数提供合理的默认值,除非在用户界面或使用 API 中更改它们。Assisted Installer 生成发现镜像,您可以下载并用来引导集群机器。镜像安装 RHCOS 和代理,代理会为您处理置备。您可以使用 Assisted Installer 安装 OpenShift Container Platform,并在 Nutanix、vSphere 和裸机上完全集成。另外,您可以在其他没有集成的情况下使用 Assisted Installer 安装 OpenShift Container Platform。
OpenShift Container Platform 管理集群的所有方面,包括操作系统本身。每台机器在启动时使用的配置引用其加入的集群中托管的资源。此配置允许集群在应用更新时自行管理。
如果可能,请使用 Assisted Installer 功能来避免下载和配置基于代理的安装程序。
基于代理的基础架构的安装过程
基于代理的安装与使用 Assisted Installer 类似,唯一的不同是需要在最初下载并安装基于代理的安装程序。当您希望利用 Assisted Installer 所带来的变量,并需要在断开连接的环境中安装集群时,可以使用基于代理的安装。
如果可能,请使用基于代理的安装功能来避免创建带有 bootstrap 虚拟机的置备程序机器,然后置备和维护集群基础架构。
采用安装程序置备的基础架构的安装过程
默认安装类型为使用安装程序置备的基础架构。默认情况下,安装程序充当安装向导,提示您输入它无法自行确定的值,并为其余参数提供合理的默认值。您还可以自定义安装过程来支持高级基础架构场景。安装程序将为集群置备底层基础架构。
您可以安装标准集群或自定义集群。对于标准集群,您要提供安装集群所需的最低限度详细信息。对于自定义集群,您可以指定有关平台的更多详细信息,如 control plane 使用的机器数量、集群部署的虚拟机的类型,或 Kubernetes 服务网络的 CIDR 范围。
若有可能,可以使用此功能来避免置备和维护集群基础架构。在所有其他环境中,可以使用安装程序来生成置备集群基础架构所需的资产。
对于安装程序置备的基础架构的集群,OpenShift Container Platform 可以管理集群的所有方面,包括操作系统本身。每台机器在启动时使用的配置引用其加入的集群中托管的资源。此配置允许集群在应用更新时自行管理。
采用用户置备的基础架构的安装过程
您还可以在自己提供的基础架构上安装 OpenShift Container Platform。您可以使用安装程序来生成置备集群基础架构所需的资产,再创建集群基础架构,然后将集群部署到您提供的基础架构中。
如果不使用安装程序置备的基础架构,您必须自己管理和维护集群资源。以下列表详细介绍了其中一些自我管理的资源:
- 组成集群的 control plane 和计算机器的底层基础架构
- 负载均衡器
- 集群网络,包括 DNS 记录和所需的子网
- 集群基础架构和应用程序的存储
如果您的集群使用用户置备的基础架构,您可以选择将 RHEL 计算机器添加到集群中。
安装过程详细信息
置备集群时,集群中的每台机器都需要有关集群的信息。OpenShift Container Platform 在初始配置过程中使用临时 bootstrap 机器为永久 control plane 提供所需的信息。临时 bootstrap 机器使用一个带有描述如何创建集群的 Ignition 配置文件进行引导。bootstrap 机器创建组成控制平面(control plane)的 control plane 机器。然后,control plane 机器创建计算(compute)机器。下图说明了这一过程:
图 3.2. 创建 bootstrap、control plane 和计算机器
集群机器初始化后,Bootstrap 机器将被销毁。所有集群都使用 Bootstrap 过程来初始化集群,但若您自己置备集群的基础架构,则必须手动完成许多步骤。
-
安装程序生成的 Ignition 配置文件包含在 24 小时后过期的证书,然后在过期时进行续订。如果在更新证书前关闭集群,且集群在 24 小时后重启,集群会自动恢复过期的证书。一个例外是,您必须手动批准待处理的
node-bootstrapper
证书签名请求(CSR)来恢复 kubelet 证书。如需更多信息,请参阅从过期的 control plane 证书 中恢复的文档。 - 建议您在 Ignition 配置文件生成后的 12 小时内使用它们,因为 24 小时的证书会在集群安装后的 16 小时到 22 小时间进行轮转。通过在 12 小时内使用 Ignition 配置文件,您可以避免在安装过程中因为执行了证书更新而导致安装失败的问题。
bootstrapp 集群涉及以下步骤:
- bootstrap 机器启动并开始托管 control plane 机器引导所需的远程资源。如果您置备基础架构,此步骤需要人工干预。
- bootstrap 机器启动单节点 etcd 集群和一个临时 Kubernetes control plane。
- control plane 机器从 bootstrap 机器获取远程资源并完成启动。如果您置备基础架构,此步骤需要人工干预。
- 临时 control plane 将生产环境的 control plane 调度到生产环境 control plane 机器。
- Cluster Version Operator(CVO)在线并安装 etcd Operator。etcd Operator 在所有 control plane 节点上扩展 etcd。
- 临时 control plane 关机,并将控制权交给生产环境 control plane。
- bootstrap 机器将 OpenShift Container Platform 组件注入生产环境 control plane。
- 安装程序关闭 bootstrap 机器。如果您置备基础架构,此步骤需要人工干预。
- control plane 设置计算节点。
- control plane 以一组 Operator 的形式安装其他服务。
完成此 bootstrap 过程后,将生成一个全面运作的 OpenShift Container Platform 集群。然后,集群会下载并配置日常运作所需的其余组件,包括在受支持的环境中创建计算(compute)机器。
安装范围
OpenShift Container Platform 安装程序的作用范围特意设计得比较狭窄。它旨在简化操作并确保成功。安装完成后,您可以完成更多的配置任务。
其他资源
- 如需有关 OpenShift Container Platform 配置资源的详细信息,请参阅可用的集群自定义。