使用 OpenShift Container Platform 4,您可以使用 Web 控制台或 OpenShift CLI (oc) 通过单个操作更新 OpenShift Container Platform 集群。平台管理员可以通过访问 Web 控制台中的**管理** → **集群设置**或查看oc adm upgrade命令的输出,查看新的更新选项。
Red Hat 托管一个公共 OpenShift 更新服务 (OSUS),它根据官方注册表中的 OpenShift Container Platform 发行版镜像提供更新可能性图。该图包含任何公共 OCP 发行版的更新信息。OpenShift Container Platform 集群默认配置为连接到 OSUS,OSUS 会向集群响应有关已知更新目标的信息。
当集群管理员或自动更新控制器使用新版本编辑集群版本操作符 (CVO) 的自定义资源 (CR) 时,更新开始。为了使集群与新指定的版本协调一致,CVO 从镜像注册表检索目标发行版镜像并开始将更改应用于集群。
|
以前通过 Operator Lifecycle Manager (OLM) 安装的操作符遵循不同的更新流程。有关更多信息,请参阅更新已安装的操作符。 |
目标发行版镜像包含构成特定 OCP 版本的所有集群组件的清单文件。在将集群更新到新版本时,CVO 分阶段应用清单,这些阶段称为运行级别。大多数(但并非全部)清单都支持集群操作符之一。当 CVO 将清单应用于集群操作符时,操作符可能会执行更新任务以使其自身与其新指定的版本协调一致。
CVO 监控每个已应用资源的状态以及所有集群操作符报告的状态。只有当活动运行级别中的所有清单和集群操作符都达到稳定状态时,CVO 才会继续进行更新。在 CVO 通过此过程更新整个控制平面后,机器配置操作符 (MCO) 将更新集群中每个节点的操作系统和配置。
有几个因素会影响是否以及何时向 OpenShift Container Platform 集群提供更新。以下列表提供了有关更新可用性的常见问题
各个更新渠道之间有什么区别?
新版本最初添加到candidate渠道。
在最终测试成功后,candidate渠道上的版本将提升到fast渠道,发布勘误表,并且该版本现在已完全受支持。
延迟一段时间后,fast渠道上的版本最终将提升到stable渠道。此延迟是fast和stable渠道之间唯一的区别。
|
对于最新的 z 流版本,此延迟通常为一到两周。但是,对最新次要版本的初始更新的延迟可能会长得多,通常为 45-90 天。 |
提升到stable渠道的版本会同时提升到eus渠道。eus渠道的主要目的是为执行仅控制平面更新的集群提供便利。
stable渠道上的版本比fast渠道上的版本更安全或更受支持吗?
如果在快速通道的版本中发现回归问题,则会与在稳定通道的版本中发现回归问题一样,得到同等程度的解决和处理。
快速和稳定通道版本的唯一区别在于,版本只有在快速通道存在一段时间后才会出现在稳定通道,这为发现新的更新风险提供了更多时间。
在快速通道上可用的版本,经过这段延迟后,始终会在稳定通道上可用。
更新存在已知问题意味着什么?
Red Hat持续评估来自多个来源的数据,以确定从一个版本到另一个版本的更新是否存在已声明的问题。已识别的问题通常记录在版本的发布说明中。即使更新路径存在已知问题,如果客户执行更新,仍然会得到支持。
Red Hat不会阻止用户更新到特定版本。Red Hat可能会声明条件更新风险,这些风险可能适用于或不适用于特定集群。
声明的风险为集群管理员提供了关于受支持更新的更多上下文信息。集群管理员仍然可以接受风险并更新到该特定目标版本。
如果我看到对特定版本的更新不再推荐会怎样?
如果Red Hat由于回归问题而从任何受支持版本中删除更新建议,则会向纠正该回归问题的未来版本提供替代的更新建议。在缺陷被纠正、测试并推广到您选择的通道期间,可能会有延迟。
下一个z-stream版本在快速和稳定通道上可用还需要多长时间?
虽然具体节奏可能会因多种因素而异,但最新次要版本的新的z-stream版本通常大约每周发布一次。较旧的次要版本随着时间的推移变得更加稳定,新的z-stream版本的发布可能会花费更长时间。
|
这些只是基于过去关于z-stream版本数据的估计。Red Hat保留根据需要更改发布频率的权利。任何数量的问题都可能导致此发布节奏出现不规则和延迟。 |
z-stream版本发布后,也会出现在该次要版本的快速通道中。经过一段延迟后,z-stream版本可能会出现在该次要版本的稳定通道中。
OpenShift更新服务(OSUS)为OpenShift Container Platform(包括Red Hat Enterprise Linux CoreOS (RHCOS))提供更新建议。它提供一个包含组件Operator的顶点和连接它们的边的图形或图表。图表中的边显示您可以安全更新到的版本。顶点是指定被管理集群组件预期状态的更新有效负载。
您集群中的集群版本操作器(CVO)会检查OpenShift更新服务,以查看基于当前组件版本和图表中信息的有效更新和更新路径。当您请求更新时,CVO使用相应的发布镜像来更新您的集群。发布工件作为容器镜像托管在Quay中。
为了允许OpenShift更新服务仅提供兼容的更新,一个发布验证管道驱动自动化。每个发布工件都会验证其与受支持的云平台和系统架构以及其他组件包的兼容性。管道确认发布的适用性后,OpenShift更新服务会通知您它可用。
|
OpenShift更新服务显示当前集群的所有推荐更新。如果OpenShift更新服务不推荐更新路径,可能是因为与更新路径相关的已知问题,例如不兼容性或可用性。 |
在持续更新模式下运行两个控制器。第一个控制器持续更新有效负载清单,将清单应用于集群,并输出操作员的可控推出状态,以指示它们是可用、正在升级还是失败。第二个控制器轮询OpenShift更新服务以确定更新是否可用。
|
仅支持更新到较新版本。不支持将集群回滚或回退到以前的版本。如果更新失败,请联系Red Hat支持。 |
在更新过程中,机器配置操作器(MCO)会将新配置应用于您的集群机器。MCO隔离机器配置池上maxUnavailable字段指定的节点数,并将它们标记为不可用。默认情况下,此值设置为1。MCO根据topology.kubernetes.io/zone标签按区域字母顺序更新受影响的节点。如果一个区域有多个节点,则首先更新最旧的节点。对于不使用区域的节点(例如在裸机部署中),节点按年龄更新,最旧的节点首先更新。MCO一次更新机器配置池上maxUnavailable字段指定的节点数。然后,MCO应用新配置并重新启动机器。
|
OpenShift Container Platform中所有机器配置池的 |
如果您使用Red Hat Enterprise Linux (RHEL)机器作为工作节点,MCO不会更新kubelet,因为您必须首先更新机器上的OpenShift API。
使用应用于旧kubelet的新版本规范,RHEL机器无法返回到就绪状态。在机器可用之前,您无法完成更新。但是,最大不可用节点数已设置为确保正常的集群操作可以继续进行,即使有这么多机器无法使用。
OpenShift更新服务由一个Operator和一个或多个应用程序实例组成。
集群Operator的状态包括它们的条件类型,这会告知您Operator当前的健康状况。以下定义涵盖了一些常见的ClusterOperator条件类型的列表。已省略具有其他条件类型并使用特定于Operator的语言的操作符。
集群版本操作器(CVO)负责收集集群Operator的状态条件,以便集群管理员可以更好地理解OpenShift Container Platform集群的状态。
可用:条件类型Available表示Operator在集群中功能正常且可用。如果状态为False,则至少有一个操作数部件功能失常,并且此条件需要管理员干预。
正在进行:条件类型Progressing表示Operator正在积极推出新代码、传播配置更改或以其他方式从一个稳定状态移动到另一个稳定状态。
当Operator协调先前已知状态时,不会将条件类型Progressing报告为True。如果观察到的集群状态已更改并且Operator正在对其做出反应,则状态会报告为True,因为它正在从一个稳定状态移动到另一个稳定状态。
降级:条件类型降级表示操作员的当前状态在一段时间内与其所需状态不匹配。这段时间因组件而异,但降级状态代表对操作员条件的持续观测。因此,操作员不会在降级状态进出波动。
如果从一种状态到另一种状态的转换持续时间不足以报告降级,则可能存在不同的条件类型。操作员在正常更新过程中不会报告降级。操作员可能会响应需要管理员最终干预的持续基础设施故障而报告降级。
|
此条件类型仅表示某些内容可能需要调查和调整。只要操作员可用, |
可升级:条件类型可升级指示基于当前集群状态,操作员是否可以安全更新。消息字段包含关于管理员为使集群成功更新需要执行的操作的人类可读描述。当此条件为True、Unknown或缺失时,CVO允许更新。
当可升级状态为False时,只有次要更新受到影响,并且CVO会阻止集群执行受影响的更新,除非强制执行。
集群版本操作员 (CVO) 监控集群操作员和其他组件,并负责收集集群版本及其操作员的状态。此状态包括条件类型,它告知您OpenShift Container Platform集群的健康状况和当前状态。
除了可用、正在进行和可升级之外,还有一些影响集群版本和操作员的条件类型。
失败:集群版本条件类型失败表示集群无法达到其所需状态,不健康,需要管理员干预。
无效:集群版本条件类型无效表示集群版本存在错误,阻止服务器采取行动。只要设置了此条件,CVO 才会协调当前状态。
已检索更新:集群版本条件类型已检索更新指示是否已从上游更新服务器检索可用更新。在检索之前,条件为Unknown;如果更新最近失败或无法检索,则为False;如果availableUpdates字段既最近又准确,则为True。
已接受发行版:已接受发行版集群版本条件类型,状态为True,表示在图像验证和前提条件检查期间,请求的发行版有效负载已成功加载,未发生故障。
隐式启用的功能:隐式启用的功能集群版本条件类型,状态为True,表示启用了用户当前未通过spec.capabilities请求的功能。如果任何关联资源以前由 CVO 管理,则 CVO 不支持禁用功能。
控制平面由控制平面机器组成,管理OpenShift Container Platform集群。控制平面机器管理计算机器上的工作负载,计算机器也称为工作机器。
集群版本操作员 (CVO) 启动集群的更新过程。它根据当前集群版本与 OSUS 检查,并检索包含可用或可能的更新路径的图。
机器配置操作员 (MCO) 是一个集群级操作员,它管理操作系统和机器配置。通过 MCO,平台管理员可以配置和更新工作节点上的 systemd、CRI-O 和 Kubelet、内核、NetworkManager 和其他系统功能。
OpenShift 更新服务 (OSUS) 为 OpenShift Container Platform 提供空中更新,包括 Red Hat Enterprise Linux CoreOS (RHCOS)。它提供一个图或图表,其中包含组件操作员的顶点以及连接它们的边。
通道声明与 OpenShift Container Platform 的次要版本相关的更新策略。OSUS 使用此配置的策略来推荐与该策略一致的更新边。
推荐的更新边是在 OpenShift Container Platform 版本之间推荐的更新。给定的更新是否被推荐可能取决于集群的配置通道、当前版本、已知错误和其他信息。OSUS 将推荐的边传达给在每个集群中运行的 CVO。