搜索

第 3 章 control plane 架构

download PDF

control plane 由 control plane 机器组成,负责管理 OpenShift Dedicated 集群。control plane 机器管理计算机器(也被称为 worker)上的工作负载。集群本身通过 Cluster Version Operator (CVO)和一组单独 Operator 的操作来管理对机器的所有升级。

3.1. OpenShift Dedicated 中的机器角色

OpenShift Dedicated 分配主机不同的角色。这些角色定义机器在集群内的功能。集群包含标准 masterworker 角色类型的定义。

3.1.1. 集群 worker

在 Kubernetes 集群中,worker 节点运行和管理 Kubernetes 用户请求的实际工作负载。worker 节点公告其容量,以及 control plane 服务调度程序,决定在哪些节点上启动 pod 和容器。以下重要服务在每个 worker 节点上运行:

  • CRI-O,即容器引擎。
  • kubelet,这是接受并履行运行和停止容器工作负载的请求的服务。
  • 服务代理,用于管理跨 worker 的 pod 的通信。
  • runC 或 crun 低级别容器运行时,用于创建和运行容器。
注意

有关如何启用 crun 而不是默认的 runC 的详情,请参考创建 ContainerRuntimeConfig CR 的文档。

在 OpenShift Dedicated 中,计算机器集控制分配了 worker 机器的计算机器。具有 worker 角色的机器驱动计算工作负载,这些工作负载由自动扩展它们的特定机器池管理。由于 OpenShift Dedicated 具有支持多个机器类型的能力,所以具有 worker 角色的机器被归类为 计算机器。在本发行版本中,worker 机器计算机器是可以被互换使用的术语,因为计算机器的唯一默认类型是 worker 机器。在以后的 OpenShift Dedicated 版本中,可能会默认使用不同类型的计算机器,如基础架构机器。

注意

计算机器集是 machine-api 命名空间下的计算机器资源分组。计算机器集是设计在特定云供应商上启动新计算机器的配置。相反,机器配置池(MCP)是 Machine Config Operator(MCO)命名空间的一部分。MCP 用于将机器分组在一起,以便 MCO 能够管理其配置并便于升级。

3.1.2. 集群 control plane

在 Kubernetes 集群中,master 节点运行控制 Kubernetes 集群所需的服务。在 OpenShift Dedicated 中,control plane 由具有 master 机器角色的 control plane 机器组成。它们不仅仅包含用于管理 OpenShift Dedicated 集群的 Kubernetes 服务。

对于大多数 OpenShift Dedicated 集群,control plane 机器由一系列独立的机器 API 资源定义。control plane 使用 control plane 机器集管理。额外的控件应用到 control plane 机器,以防止您删除所有 control plane 机器并破坏集群。

注意

单可用区集群和多个可用区集群至少需要三个 control plane 节点。

control plane 上属于 Kubernetes 类别的服务包括 Kubernetes API 服务器、etcd、Kubernetes 控制器管理器和 Kubernetes 调度程序。

表 3.1. 在 control plane 上运行的 Kubernetes 服务
组件描述

Kubernetes API 服务器

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

etcd

etcd 存储持久 control plane 状态,其他组件则监视 etcd 的更改,以使其自身进入指定状态。

Kubernetes 控制器管理器

Kubernetes 控制器管理器监视 etcd 是否有对象的更改,如复制、命名空间,务帐户控制器对象,然后使用 API 来强制实施指定的状态。多个这样的过程会创建在某个时间点上有一个活跃群首的集群。

Kubernetes 调度程序

Kubernetes 调度程序监视没有分配节点的新创建的 pod,并选择托管该 pod 的最佳节点。

另外,在 control plane 上运行的 OpenShift 服务包括 OpenShift API 服务器、OpenShift 控制器管理器、OpenShift OAuth API 服务器和 OpenShift OAuth 服务器。

表 3.2. 在 control plane 上运行的 OpenShift 服务
组件描述

OpenShift API 服务器

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

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

OpenShift 控制器管理器

OpenShift 控制器管理器监视 etcd 是否有 OpenShift 对象的更改,如项目、路由和模板控制器对象,然后使用 API 来强制实施指定的状态。

OpenShift 控制器管理器由 OpenShift Controller Manager Operator 管理。

OpenShift OAuth API 服务器

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

OpenShift OAuth API 服务器由 Cluster Authentication Operator 管理。

OpenShift OAuth 服务器

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

OpenShift OAuth 服务器由 Cluster Authentication Operator 管理。

control plane 机器上的某些服务作为 systemd 服务运行,另一些则作为静态 pod 运行。

systemd 服务适合需要始终在特定系统启动后不久出现的服务。对于 control plane 机器,这包括允许远程登录的 sshd。它还包括以下服务:

  • CRI-O 容器引擎 (crio),用于运行和管理容器。OpenShift Dedicated 4 使用 CRI-O,而不是 Docker Container Engine。
  • kubelet (kubelet),从 control plane 服务接受管理机器上容器的请求。

CRI-O 和 Kubelet 必须作为 systemd 服务直接在主机上运行,因为它们必须先运行,然后您才能运行其他容器。

installer-*revision-pruner-* control plane pod 必须使用 root 权限运行,因为它们需要写入属于 root 用户的 /etc/kubernetes 目录。这些 pod 位于以下命名空间中:

  • openshift-etcd
  • openshift-kube-apiserver
  • openshift-kube-controller-manager
  • openshift-kube-scheduler
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.