1.3. 集群功能
集群管理员可在安装前使用集群功能启用或禁用可选组件。集群管理员可以在安装后随时启用集群功能。
集群管理员无法在启用集群后禁用集群功能。
1.3.1. 启用集群功能
如果您使用包含自定义集群的安装方法,通过创建 install-config.yaml
文件,您可以选择您要在集群中可用的集群功能。
如果启用或禁用特定集群功能来自定义集群,您必须手动维护 install-config.yaml
文件。新的 OpenShift Container Platform 更新可能会为现有组件声明新的功能处理,或者完全引入新的组件。自定义 install-config.yaml
文件的用户应该会在 OpenShift Container Platform 更新时定期更新其 install-config.yaml
文件。
您可以使用以下配置参数来选择集群功能:
capabilities: baselineCapabilitySet: v4.11 1 additionalEnabledCapabilities: 2 - CSISnapshot - Console - Storage
- 1
- 定义要安装的一组基准功能。有效值为
None
、vCurrent
和v4.x
。如果选择None
,则禁用所有可选功能。默认值为vCurrent
,它启用了所有可选功能。注意v4.x
代表最高为当前集群版本(包括当前版本)的任何值。例如,OpenShift Container Platform 4.12 集群的有效值为v4.11
和v4.12
。 - 2
- 定义要显式启用的功能列表。除了
baselineCapabilitySet
中指定的功能外,这些功能还启用了。注意在本例中,默认能力被设置为
v4.11
。additionalEnabledCapabilities
字段启用了默认的v4.11
功能集的额外功能。
下表描述了 baselineCapabilitySet
值。
值 | 描述 |
---|---|
| 当您要自动添加新版本中引入的新功能时,指定这个选项。 |
|
当要为 OpenShift Container Platform 4.11 启用默认功能时指定这个选项。通过指定 |
|
当您要为 OpenShift Container Platform 4.12 启用默认功能时指定这个选项。通过指定 |
|
当要为 OpenShift Container Platform 4.13 启用默认功能时,指定这个选项。通过指定 |
|
当要为 OpenShift Container Platform 4.14 启用默认功能时指定这个选项。通过指定 |
|
当要为 OpenShift Container Platform 4.15 启用默认功能时指定这个选项。通过指定 |
|
当要为 OpenShift Container Platform 4.16 启用默认功能时指定这个选项。通过指定 |
|
指定其他集合太大,您不需要任何功能,或者想要 |
1.3.2. OpenShift Container Platform 4.16 中的可选集群功能
目前,集群 Operator 为这些可选功能提供功能。以下总结了每个功能提供的功能,并在禁用时丢失的功能。
其他资源
1.3.2.1. 裸机功能
用途
Cluster Baremetal Operator 为 baremetal
功能提供功能。
Cluster Baremetal Operator (CBO) 会部署使裸机服务器成为一个可完全正常工作的节点以运行 OpenShift Container Platform 计算节点所需的所有组件。CBO 确保 metal3 部署(由 Bare Metal Operator (BMO) 和 Ironic 容器组成)在 OpenShift Container Platform 集群内的一个 control plane 节点上运行。CBO 还会侦听 OpenShift Container Platform 对资源的更新,它会监视并采取适当的操作。
使用安装程序置备的基础架构部署需要裸机功能。禁用裸机功能可能会导致这些部署出现意外问题。
建议集群管理员仅在带有集群中没有任何 BareMetalHost
资源的用户置备的基础架构禁用裸机功能。
如果禁用裸机功能,集群将无法置备或管理裸机节点。只有在部署中没有 BareMetalHost
资源时才禁用该功能。baremetal
能力取决于 MachineAPI
功能。如果启用 baremetal
功能,还必须启用 MachineAPI
。
其他资源
1.3.2.2. 构建功能
用途
Build
功能启用 Build
API。Build
API 管理 Build
和 BuildConfig
对象的生命周期。
如果您禁用 Build
功能,集群中没有提供以下资源:
-
Build
和BuildConfig
资源 -
builder
服务帐户
仅在不需要 Build
或 BuildConfig
资源,或集群中有 builder
服务帐户时,才禁用 Build
功能。
1.3.2.3. 云控制器管理器功能
用途
Cloud Controller Manager Operator 为 CloudControllerManager
提供功能。
目前,在所有平台上都不支持禁用 CloudControllerManager
功能。
您可以通过检查集群的安装配置 (install-config.yaml
) 文件中的值来确定集群是否支持禁用 CloudControllerManager
功能。
在 install-config.yaml
文件中,找到 platform
参数。
-
如果
platform
参数的值是Baremetal
或None
,您可以在集群中禁用CloudControllerManager
功能。 -
如果
platform
参数的值是External
,找到platform.external.cloudControllerManager
参数。如果platform.external.cloudControllerManager
参数的值为None
,您可以在集群中禁用CloudControllerManager
功能。
如果这些参数包含除列出的值以外的其他值,则无法在集群中禁用 CloudControllerManager
功能。
对于 Amazon Web Services (AWS), Google Cloud Platform (GCP), IBM Cloud®, global Microsoft Azure, Microsoft Azure Stack Hub, Nutanix, Red Hat OpenStack Platform (RHOSP), 和 VMware vSphere,这个 Operator 的状态是正式发布(GA)。
Operator 作为技术预览提供 IBM Power® Virtual Server。
Cloud Controller Manager Operator 管理并更新在 OpenShift Container Platform 上部署的云控制器管理器。Operator 基于 Kubebuilder 框架和 controller-runtime
库。它通过 Cluster Version Operator (CVO) 安装。
它包含以下组件:
- Operator
- 云配置观察
默认情况下,Operator 通过 metrics
服务公开 Prometheus 指标数据。
1.3.2.4. 云凭证功能
用途
Cloud Credential Operator 为 CloudCredential
提供功能。
目前,禁用 CloudCredential
只在裸机集群中被支持。
Cloud Credential Operator(CCO)将云供应商凭证作为 Kubernetes 自定义资源定义(CRD)进行管理。CredentialsRequest
自定义资源(CR)的 CCO 同步,允许 OpenShift Container Platform 组件使用集群运行所需的特定权限请求云供应商凭证。
通过在 install-config.yaml
文件中为 credentialsMode
参数设置不同的值,可将 CCO 配置为以几种不同模式操作。如果没有指定模式,或将 credentialsMode
参数被设置为空字符串(""
)。
1.3.2.5. 集群存储功能
用途
Cluster Storage Operator 为存储
功能提供功能。
Cluster Storage Operator 设置 OpenShift Container Platform 集群范围内的存储默认设置。它确保了 OpenShift Container Platform 集群存在默认存储类
。它还安装 Container Storage Interface (CSI) 驱动程序,使集群能够使用各种存储后端。
如果禁用了集群存储功能,集群将没有默认的 storageclass
或任何 CSI 驱动程序。具有管理员特权的用户可以创建默认存储类
,并在禁用集群存储功能时手动安装 CSI 驱动程序。
备注
- Operator 创建的存储类可以通过编辑其注解来实现非默认设置,但只要 Operator 运行,这个存储类就无法被删除。
1.3.2.6. 控制台功能
用途
Console Operator 为 Console
功能提供功能。
Console Operator 在集群中安装和维护 OpenShift Container Platform web 控制台。Console Operator 会被默认安装,并自动维护控制台。
其他资源
1.3.2.7. CSI 快照控制器功能
用途
Cluster CSI Snapshot Controller Operator 为 CSISnapshot
功能提供功能。
Cluster CSI Snapshot Controller Operator 安装和维护 CSI Snapshot Controller。CSI Snapshot Controller 负责监视 VolumeSnapshot
CRD 对象,并管理卷快照的创建和删除生命周期。
其他资源
1.3.2.8. DeploymentConfig 功能
用途
DeploymentConfig
功能启用和管理 DeploymentConfig
API。
如果禁用 DeploymentConfig
功能,集群中将无法使用以下资源:
-
DeploymentConfig
资源 -
deployer
服务帐户
仅在不需要 DeploymentConfig
资源以及集群中有 deployer
服务帐户时才禁用 DeploymentConfig 功能。
1.3.2.9. Ingress 能力
用途
Ingress Operator 为 Ingress
提供功能。
Ingress Operator 配置并管理 OpenShift Container Platform 路由。
项目
CRD
clusteringresses.ingress.openshift.io
- Scope: Namespaced
-
CR:
clusteringresses
- Validation: No
Configuration objects
Cluster config
-
类型名:
clusteringresses.ingress.openshift.io
-
实例名称:
default
查看命令:
$ oc get clusteringresses.ingress.openshift.io -n openshift-ingress-operator default -o yaml
-
类型名:
备注
Ingress Operator 在 openshift-ingress
项目中设置路由,并为路由创建部署:
$ oc get deployment -n openshift-ingress
Ingress Operator 使用来自 network/cluster
状态的 clusterNetwork[].cidr
来决定受管入口控制器(路由器)应该在其中操作的模式(IPv4、IPv6 或双堆栈)。例如,如果 clusterNetwork
只包含 v6 cidr
,则 Ingress Controller 在只纯 IPv6 模式下运行。
在以下示例中,Ingress Operator 管理的 ingress 控制器将以 IPv4 模式运行,因为只有一个集群网络存在,网络是 IPv4 cidr
:
$ oc get network/cluster -o jsonpath='{.status.clusterNetwork[*]}'
输出示例
map[cidr:10.128.0.0/14 hostPrefix:23]
1.3.2.10. Insights 功能
用途
Insights Operator 为 Insights
功能提供功能。
Insights Operator 收集 OpenShift Container Platform 配置数据并将其发送到红帽。数据用于生成有关集群可能暴露的潜在问题的主动分析建议。这些建议通过 console.redhat.com 上的 Insights Advisor 与集群管理员通信。
备注
Insights Operator 补充 OpenShift Container Platform Telemetry。
其他资源
1.3.2.11. 机器 API 功能
用途
machine-api-operator
、cluster-autoscaler-operator
和 cluster-control-plane-machine-set-operator
Operator 提供了与 MachineAPI
功能相关的功能。只有在使用用户置备的基础架构安装集群时,才能禁用此功能。
Machine API 功能负责集群中的所有机器配置和管理。如果在安装过程中禁用 Machine API 功能,则需要手动管理所有与机器相关的任务。
1.3.2.12. Marketplace 功能
用途
Marketplace Operator 提供了 marketplace
功能。
Marketplace Operator 通过使用集群中的一组默认 Operator Lifecycle Manager (OLM) 目录简化了将非集群 Operator 引入集群的过程。安装 Marketplace Operator 时,它会创建 openshift-marketplace
命名空间。OLM 确保在 openshift-marketplace
命名空间中安装的目录源可用于集群中的所有命名空间。
如果禁用 marketplace
功能,Marketplace Operator 不会创建 openshift-marketplace
命名空间。目录源仍可在集群中配置和管理,但 OLM 依赖于 openshift-marketplace
命名空间,以便目录可供集群中的所有命名空间使用。有权创建带 openshift-
前缀的命名空间(如系统或集群管理员)的用户可以手动创建 openshift-marketplace
命名空间。
如果启用 marketplace
功能,您可以通过配置 Marketplace Operator 来启用和禁用单个目录。
其他资源
1.3.2.13. Operator Lifecycle Manager 功能
用途
Operator Lifecycle Manager(OLM)可帮助用户安装、更新和管理所有 Kubernetes 原生应用程序(Operator)以及在 OpenShift Container Platform 集群中运行的关联服务的生命周期。它是 Operator Framework 的一部分,后者是一个开源工具包,用于以有效、自动化且可扩展的方式管理 Operator。
如果 Operator 需要以下 API,则必须启用 OperatorLifecycleManager
功能:
-
ClusterServiceVersion
-
CatalogSource
-
订阅
-
InstallPlan
-
OperatorGroup
marketplace
功能取决于 OperatorLifecycleManager
功能。您无法禁用 OperatorLifecycleManager
功能并启用 marketplace
功能。
1.3.2.14. 节点调优功能
用途
Node Tuning Operator 为 NodeTuning
功能提供功能。
Node Tuning Operator 可以帮助您通过编排 TuneD 守护进程来管理节点级别的性能优化,并使用 Performance Profile 控制器获得低延迟性能。大多数高性能应用程序都需要一定程度的内核级性能优化。Node Tuning Operator 为用户提供了一个统一的、节点一级的 sysctl 管理接口,并可以根据具体用户的需要灵活地添加自定义性能优化设置。
如果您禁用了 NodeTuning 功能,一些默认的性能优化设置不会应用到 control-plane 节点。这可能会限制具有 900 个节点或 900 路由的大型集群的可扩展性和性能。
1.3.2.15. OpenShift 示例功能
用途
Cluster Samples Operator 为 openshift-samples
功能提供功能。
Cluster Samples Operator 管理存储在 openshift
命名空间中的示例镜像流和模板。
在初始启动时,Operator 会创建默认样本配置资源来启动镜像流和模板的创建。配置对象是一个集群范围内的对象,它带有一个键 cluster
和类型 configs.samples
。
镜像流是基于 Red Hat Enterprise Linux CoreOS (RHCOS) 的 OpenShift Container Platform 镜像流,指向 registry.redhat.io
上的镜像。同样,模板也被归类为 OpenShift Container Platform 模板。
如果您禁用示例功能,用户无法访问它提供的镜像流、示例和模板。根据您的部署,如果不需要,您可能需要禁用此组件。
1.3.2.16. 集群 Image Registry 功能
用途
Cluster Image Registry Operator 为 ImageRegistry
功能提供功能。
Cluster Image Registry Operator 管理 OpenShift 镜像 registry 的单个实例。它管理 registry 的所有配置,包括创建存储。
在初始启动时,Operator 会基于集群中检测到的配置创建默认的 image-registry
资源实例。这代表了根据云供应商要使用的云存储类型。
如果没有足够的信息来定义完整的 image-registry
资源,则会定义一个不完整的资源,Operator 将更新资源状态以提供缺失的内容。
Cluster Image Registry Operator在openshift-image-registry
命名空间中运行,并管理该位置中的 registry 实例。registry的所有配置和工作负载资源都位于该命名空间中。
要将镜像 registry 集成到集群的用户身份验证和授权系统中,会为集群中的每个服务帐户生成一个镜像 pull secret。
如果您禁用 ImageRegistry
功能,或者在 Cluster Image Registry Operator 配置中禁用集成的 OpenShift 镜像 registry,则不会为每个服务帐户生成镜像 pull secret。
如果禁用 ImageRegistry
功能,您可以在 Telco 环境中减少 OpenShift Container Platform 的整体资源占用空间。根据您的部署,如果需要,可以禁用此组件。
项目
1.3.3. 查看集群功能
作为集群管理员,您可以使用 clusterversion
资源状态来查看功能。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
要查看集群功能的状态,请运行以下命令:
$ oc get clusterversion version -o jsonpath='{.spec.capabilities}{"\n"}{.status.capabilities}{"\n"}'
输出示例
{"additionalEnabledCapabilities":["openshift-samples"],"baselineCapabilitySet":"None"} {"enabledCapabilities":["openshift-samples"],"knownCapabilities":["CSISnapshot","Console","Insights","Storage","baremetal","marketplace","openshift-samples"]}
1.3.4. 通过设置基准功能集启用集群功能
作为集群管理员,您可以通过设置 baselineCapabilitySet
配置参数,在 OpenShift Container Platform 安装后随时启用集群功能。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
要设置
baselineCapabilitySet
配置参数,请运行以下命令:$ oc patch clusterversion version --type merge -p '{"spec":{"capabilities":{"baselineCapabilitySet":"vCurrent"}}}' 1
- 1
- 对于
baselineCapabilitySet
,您可以指定vCurrent
、v4.16
或None
。
1.3.5. 通过设置其他启用的功能来启用集群功能
作为集群管理员,您可以通过设置 additionalEnabledCapabilities
配置参数,在 OpenShift Container Platform 安装后随时启用集群功能。
先决条件
-
已安装 OpenShift CLI(
oc
)。
流程
运行以下命令查看附加启用的功能:
$ oc get clusterversion version -o jsonpath='{.spec.capabilities.additionalEnabledCapabilities}{"\n"}'
输出示例
["openshift-samples"]
要设置
additionalEnabledCapabilities
配置参数,请运行以下命令:$ oc patch clusterversion/version --type merge -p '{"spec":{"capabilities":{"additionalEnabledCapabilities":["openshift-samples", "marketplace"]}}}'
无法禁用集群中已经启用的功能。集群版本 Operator (CVO) 继续协调集群中已经启用的功能。
如果您尝试禁用某个功能,则 CVO 会显示相关的 spec:
$ oc get clusterversion version -o jsonpath='{.status.conditions[?(@.type=="ImplicitlyEnabledCapabilities")]}{"\n"}'
输出示例
{"lastTransitionTime":"2022-07-22T03:14:35Z","message":"The following capabilities could not be disabled: openshift-samples","reason":"CapabilitiesImplicitlyEnabled","status":"True","type":"ImplicitlyEnabledCapabilities"}
在集群升级过程中,可以隐式启用给定功能。如果在升级前已在集群上运行资源,那么将启用属于资源的任何功能。例如,在集群升级过程中,已在集群中运行的资源已更改为系统已作为 marketplace
功能的一部分。即使集群管理员没有明确启用了 marketplace
功能,它也会被系统隐式启用。