×

了解OpenShift Container Platform控制平面

控制平面由控制平面机器(也称为主机器)组成,用于管理OpenShift容器平台集群。控制平面计算机管理计算机,也称为工作机。群集本身管理到的所有升级通过群集版本操作符的操作机器配置操作员和一组单独的操作员。

使用机器配置池进行节点配置管理

运行控制平面组件或用户工作负载的机器根据它们处理的资源类型划分为组。这些机器组称为机器配置池(MCP)。每个MCP管理一组节点及其相应的机器配置。节点的角色决定了它属于哪个MCP;MCP根据其分配的节点角色标签管理节点。MCP中的节点具有相同的配置;这意味着节点可以根据工作负载的增加或减少进行扩展和拆卸。

默认情况下,集群在安装时创建了两个MCP:主人工人每个默认MCP都有一个由机器配置操作员(MCO)应用的定义配置,该操作员负责管理MCP并促进MCP升级。您可以创建其他MCP或自定义池来管理具有扩展到默认节点类型之外的自定义用例的节点。

自定义池是从工作池继承其配置的池。它们使用针对工作池的任何机器配置,但添加了仅针对自定义池部署更改的功能。由于自定义池从工作池继承其配置,因此对工作池的任何更改也将应用于自定义池。MCO不支持未从工作池继承其配置的自定义池。

一个节点只能包含在一个MCP中。如果一个节点有多个标签,这些标签对应于几个MCP,比如工人,下层,它由基础自定义池而不是工作池管理。自定义池根据节点标签优先选择要管理的节点;不属于自定义池的节点由工作池管理。

建议为要在集群中管理的每个节点角色提供自定义池。例如,如果您创建infra节点来处理infra工作负载,建议创建自定义infra MCP来将这些节点分组在一起。如果您申请在下面角色标签添加到辅助节点,使其具有工人,下层双标签,但没有自定义的infra MCP,MCO将其视为工作节点。如果您删除工人标记节点并应用在下面如果未在自定义池中对其进行分组,则MCO无法识别该节点,并且该节点未被集群管理。

标记为在下面仅运行infra工作负载的角色不计入订阅总数。管理次节点的MCP与集群确定订阅费用的方式互斥;用适当的在下面角色和使用污点来防止在该节点上调度用户工作负载是避免基础设施工作负载订阅费用的唯一要求。

MCO独立应用池的更新;例如,如果存在影响所有池的更新,则每个池中的节点将并行更新。如果添加自定义池,则该池中的节点也会尝试与主节点和辅助节点同时更新。

OpenShift容器平台中的机器角色

OpenShift容器平台为主机分配不同的角色。这些角色定义集群中机器的功能。集群包含标准主角色和辅助角色类型的定义。

集群还包含引导角色的定义。由于引导机器仅在集群安装期间使用,因此在集群安装文档中解释了其功能。

控制平面和节点主机兼容性

OpenShift Container Platform版本必须在控制平面主机和节点主机之间匹配。例如,在4.9集群中,所有控制平面主机必须为4.9,所有节点必须为4.9。

集群升级期间的临时不匹配是可以接受的。例如,当从OpenShift Container Platform 4.8升级到4.9时,某些节点将比其他节点先升级至4.9。控制平面主机和节点主机的长期倾斜可能会使较旧的计算机器暴露出错误和缺少的功能。用户应尽快解决倾斜的控制平面主机和节点主机。

这个库贝莱服务不得晚于kube-apiserver公司,根据OpenShift容器平台的版本是奇数还是偶数,最多可以有两个较旧的次要版本。下表显示了相应的版本兼容性:

OpenShift容器平台版本 支持库贝莱倾斜

奇数OpenShift容器平台次要版本[1]

最多一个旧版本

甚至OpenShift容器平台次要版本[2]

最多两个旧版本

  1. 例如,OpenShift Container Platform 4.5、4.7、4.9。

  2. 例如,OpenShift Container Platform 4.6、4.8、4.10。

集群工作人员

在Kubernetes集群中,工作节点是运行和管理Kubernete用户请求的实际工作负载的地方。工作节点公布其容量,而作为主服务一部分的调度程序决定在哪个节点上启动容器和pod。重要的服务运行在每个工作节点上,包括CRI-O,它是容器引擎,Kubelet,它是接受并满足运行和停止容器工作负载请求的服务,以及服务代理,它管理工作人员之间pods的通信。

在OpenShift容器平台中,机器集控制工人机器。具有工作者角色的计算机驱动由自动缩放它们的特定计算机池管理的计算工作负载。因为OpenShift Container Platform具有支持多种机器类型的能力,所以工作机器被分类为计算机器。在本版本中,术语工人机器计算机可以互换使用,因为计算机器的唯一默认类型是工作机器。在OpenShift Container Platform的未来版本中,默认情况下可能会使用不同类型的计算机器,例如基础结构机器。

机器集是在机器api命名空间。机器集是设计用于在特定云提供商上启动新机器的配置。相反,机器配置池(MCP)是机器配置操作符(MCO)名称空间的一部分。MCP用于将机器分组,以便MCO可以管理其配置并促进其升级。

群集主机

在Kubernetes集群中,控制平面节点(也称为主节点)运行控制Kubernetes集群所需的服务。在OpenShift容器平台中,控制平面机器是控制平面。它们不仅包含用于管理OpenShift容器平台集群的Kubernetes服务。因为所有具有控制平面角色的机器都是控制平面机器,所以术语主人控制平面可以互换使用来描述它们。控制平面机器不是被分组到一个机器集中,而是由一系列独立的机器API资源定义的。额外的控件应用于控制平面计算机,以防止删除所有控制平面计算机并中断群集。

所有生产部署都必须使用三个控制平面节点。

主服务器上属于Kubernetes类别的服务包括KubernetesAPI服务器、etcd、Kubernete控制器管理器和Kuberneties调度程序。

表1。在控制平面上运行的Kubernetes服务
组件 描述

Kubernetes API服务器

Kubernetes API服务器验证并配置pods、服务、,和复制控制器。它还为集群的共享状态提供了一个焦点。

etcd(etcd)

etcd存储持久主状态,而其他组件则监视etcd更改以使其进入指定状态。

Kubernetes控制器经理

Kubernetes控制器管理器监视etcd中对象的更改,例如复制、命名空间和服务帐户控制器对象,然后使用用于强制指定状态的API。几个这样的进程创建了一个具有一次一个活跃的领导者。

Kubernetes调度程序

Kubernetes调度器监视没有指定节点的新创建的pod,并选择最佳节点来承载pod。

还有在控制平面上运行的OpenShift服务,其中包括OpenShift API服务器、OpenShift控制器管理器、OpenShift-OAuth API服务器和OpenShift OAuth服务器。

表2。在控制平面上运行的OpenShift服务
组件 描述

OpenShift API服务器

OpenShift API服务器验证和配置OpenShift资源的数据,例如项目、路由和模板。

OpenShift API服务器由OpenShift APIServer Operator管理。

OpenShift控制器管理器

OpenShift控制器管理器监视etcd以获取对OpenShift对象(例如项目、路由和模板控制器对象)的更改,然后使用API强制执行指定的状态。

OpenShift控制器管理器由OpenShift controller manager操作员管理。

OpenShift OAuth API服务器

OpenShift OAuth API服务器验证并配置数据以向OpenShift容器平台进行身份验证,例如用户、组和OAuth令牌。

OpenShift OAuth API服务器由群集身份验证操作员管理。

OpenShift OAuth服务器

用户从OpenShift OAuth服务器请求令牌,以向API进行身份验证。

OpenShift OAuth服务器由群集身份验证操作员管理。

控制平面计算机上的一些服务作为系统服务运行,而其他服务作为静态吊舱运行。

系统化服务适用于您需要在特定系统启动后立即启动的服务。对于控制平面机器,这些机器包括sshd,它允许远程登录。它还包括以下服务:

  • CRI-O容器引擎(crio),用于运行和管理容器。OpenShift Container Platform 4.6使用CRI-O而不是Docker Container Engine。

  • Kubelet(Kubelet),它接受来自主服务的管理机器上容器的请求。

CRI-O和Kubelet必须作为系统服务直接在主机上运行,因为它们需要在运行其他容器之前运行。

这个安装程序-*修订-主席-*控制平面pods必须以root权限运行,因为它们写入/etc/kubernetes等目录,该目录由根用户所有。这些pods位于以下命名空间中:

  • openshift-etcd

  • openshift-kube-apiserver

  • openshift-kube控制器管理器

  • openshift-kube调度程序

OpenShift容器平台中的操作员

在OpenShift容器平台中,操作员是打包、部署、,和管理控制平面上的服务。它们还为用户运行的应用程序。运营商与集成Kubernetes API和CLI工具,如库贝特尔oc公司命令。他们提供监视应用程序、执行健康检查、管理空中更新,并确保应用程序保留在您的指定的状态。

因为CRI-O和Kubelet运行在每个节点上,几乎每个其他集群上可以使用运算符在控制平面上管理功能。操作员是OpenShift Container Platform 4.6最重要的组件之一。使用运算符添加到控制平面的组件包括关键网络和凭据服务。

管理OpenShift容器平台集群中其他操作员的操作员是集群版本操作员。

OpenShift Container Platform 4.6使用不同类别的操作员执行集群操作和在集群上运行服务以供应用程序使用。

OpenShift集装箱平台中的平台运营商

在OpenShift Container Platform 4.6中,所有集群功能都被划分为一系列平台操作员。平台操作员管理集群功能,如集群范围的应用程序日志记录、Kubernetes控制平面或机器供应系统。

每个操作员都为您提供了一个简单的API来确定集群功能。运营商隐藏了管理其生命周期的详细信息组件。操作员可以管理单个组件或数十个组件,但最终目标始终是通过自动化常见操作来减少操作负担。运营商还提供更精细的配置体验。您配置每个组件,方法是修改操作员公开的API,而不是修改全局配置文件。

由OLM管理的操作员

群集操作员生命周期管理(OLM)组件管理操作员可在应用程序中使用的。它不管理包括OpenShift容器平台。OLM是一个将Kubernetes-native应用程序作为Operators进行管理的框架。它不是管理Kubernetes清单,而是管理Kubernet Operators。OLM管理两类操作员,即Red Hat操作员和认证操作员。

一些Red Hat操作员驱动集群功能,如调度程序和问题检测器。还提供了其他工具供您管理自己并在中使用您的应用程序,如etcd。OpenShift集装箱平台还提供认证操作员,社区建造和维护的。这些认证操作员提供传统应用程序的API层,以便您可以通过以下方式管理应用程序Kubernetes构造。

关于OpenShift更新服务

OpenShift更新服务(OSUS)提供OpenShift容器平台的空中更新,包括Red Hat Enterprise Linux CoreOS(RHCOS)。它提供了一个包含顶点组件运算符和边缘连接它们的。图中的边显示可以安全更新到的版本。顶点是更新有效载荷,用于指定受管集群组件的预期状态。

集群中的Cluster Version Operator(CVO)使用OpenShift Update Service进行检查,以根据图中的当前组件版本和信息查看有效更新和更新路径。当您请求更新时,CVO会使用该更新的发布映像来更新集群。发布工件作为容器图像托管在Quay中。

为了允许OpenShift更新服务只提供兼容的更新,发布验证管道推动了自动化。每个发布工件都经过验证,以与受支持的云平台和系统架构以及其他组件包兼容。在管道确认版本的适用性后,OpenShift更新服务会通知您该版本可用。

OpenShift更新服务显示当前集群的所有建议更新。如果OpenShift更新服务不建议升级路径,则可能是因为更新或目标版本存在已知问题。

两个控制器在连续更新模式下运行。第一个控制器持续更新有效负载清单,将清单应用于集群,并输出操作员的受控卷展状态,以指示它们是否可用、升级或失败。第二个控制器轮询OpenShift更新服务以确定更新是否可用。

仅支持升级到较新版本。不支持将群集还原或回滚到以前的版本。如果更新失败,请联系Red Hat支持。

在更新过程中,机器配置操作员(MCO)将新配置应用于集群机器。MCO根据最大不可用字段,并将其标记为不可用。默认情况下,此值设置为1然后,MCO应用新配置并重新启动机器。

如果您使用Red Hat Enterprise Linux(RHEL)机器作为工作机,MCO不会更新kubelet,因为您必须首先更新机器上的OpenShift API。

随着新版本的规范应用于旧kubelet,RHEL机器无法返回到准备就绪状态。在计算机可用之前,您无法完成更新。但是,设置了不可用节点的最大数量,以确保在该数量的机器停止服务的情况下,正常的集群操作可以继续。

OpenShift更新服务由一个操作员和一个或多个应用程序实例组成。

了解机器配置操作员

OpenShift Container Platform 4.6集成了这两者操作系统和群集管理。因为集群管理自己的更新,包括对群集节点上Red Hat Enterprise Linux CoreOS(RHCOS)的更新,OpenShift容器平台提供了固执己见的生命周期管理简化节点升级协调的经验。

OpenShift容器平台使用三个守护程序集和控制器简化节点管理。这些守护程序集协调操作系统更新以及使用标准Kubernetes样式对主机进行配置更改构造。它们包括:

  • 这个机器配置控制器,它从控件协调机器升级平面。它监视所有群集节点并协调其配置更新。

  • 这个机器配置守护程序守护程序集,运行于集群中的每个节点,并将机器更新为定义的配置机器配置和MachineConfigController的指示。当节点检测到更改后,它会清空pods,应用更新,然后重新启动。这些变化以点火配置文件的形式出现,应用指定的机器配置和控制kubelet配置。更新本身是装在集装箱里交付。这个过程是管理成功的关键OpenShift容器平台和RHCOS一起更新。

  • 这个机器配置服务器守护程序集,提供点火配置文件控制平面节点加入簇。

机器配置是点火配置的子集。这个机器配置守护程序读取机器配置以查看是否需要OSTree更新或必须应用一系列systemd kubelet文件更改,配置更改,或操作系统或OpenShift容器平台的其他更改配置。

执行节点管理操作时,可以创建或修改Kubelet配置自定义资源(CR)。

当对机器配置进行更改时,机器配置操作员会自动重新启动所有相应的节点以使更改生效。

为了防止节点在计算机配置更改后自动重新启动,在进行更改之前,必须通过设置规范.暂停字段到真的在相应的机器配置池中。暂停时,在设置规范.暂停字段到节点已重新启动到新配置。

其他资源