capabilities:
baselineCapabilitySet: v4.11 (1)
additionalEnabledCapabilities: (2)
- CSISnapshot
- Console
- Storage
集群管理员可以在安装之前使用集群功能启用或禁用可选组件。集群管理员可以在安装后随时启用集群功能。
集群管理员无法禁用已启用的集群功能。 |
如果您使用包含通过创建install-config.yaml
文件来自定义集群的安装方法,则可以选择要在集群上提供的集群功能。
如果您通过启用或禁用特定集群功能来自定义集群,则必须手动维护您的 |
您可以使用以下配置参数来选择集群功能
capabilities:
baselineCapabilitySet: v4.11 (1)
additionalEnabledCapabilities: (2)
- CSISnapshot
- Console
- Storage
1 | 定义要安装的功能的基线集。有效值为None 、vCurrent 和v4.x 。如果您选择None ,则所有可选功能都将被禁用。默认值为vCurrent ,它启用所有可选功能。
|
||
2 | 定义要显式启用的功能列表。除了在baselineCapabilitySet 中指定的功能外,还会启用这些功能。
|
下表描述了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 的默认功能,请指定此选项。通过指定 |
|
如果您想启用 OpenShift Container Platform 4.17 的默认功能,请指定此选项。通过指定 |
|
当其他集合过大,并且您不需要任何功能或想通过 |
目前,集群操作符提供了这些可选功能的功能。以下是每个功能提供的功能以及禁用它后会丢失哪些功能的总结。
集群裸机操作符提供baremetal
功能的功能。
集群裸机操作符 (CBO) 部署所有必要的组件,以将裸机服务器转变为可运行 OpenShift Container Platform 计算节点的完全功能的 worker 节点。CBO 确保包含裸机操作符 (BMO) 和 Ironic 容器的 metal3 部署在 OpenShift Container Platform 集群中的一个控制平面节点上运行。CBO 还侦听 OpenShift Container Platform 对其监视的资源的更新,并采取相应的措施。
使用安装程序配置的基础设施进行部署需要裸机功能。禁用裸机功能可能会导致这些部署出现意外问题。
建议集群管理员仅在没有集群中任何BareMetalHost
资源的用户配置的基础设施安装期间禁用裸机功能。
如果禁用了裸机功能,集群将无法配置或管理裸机节点。只有在部署中没有 |
Build
功能启用Build
API。Build
API 管理Build
和BuildConfig
对象的生命周期。
如果您禁用了
只有在您不需要集群中的 |
云控制器管理器操作符提供CloudControllerManager
功能的功能。
目前,并非所有平台都支持禁用 |
您可以通过检查集群的安装配置 (install-config.yaml
) 文件中的值来确定您的集群是否支持禁用CloudControllerManager
功能。
在install-config.yaml
文件中,找到platform
参数。
如果platform
参数的值为Baremetal
或None
,则可以在集群上禁用CloudControllerManager
功能。
如果platform
参数的值为External
,则找到platform.external.cloudControllerManager
参数。如果platform.external.cloudControllerManager
参数的值为None
,则可以在集群上禁用CloudControllerManager
功能。
如果这些参数包含任何其他值(而非列出的值),则无法在集群上禁用 |
此操作符在 Amazon Web Services (AWS)、Google Cloud Platform (GCP)、IBM Cloud®、全球 Microsoft Azure、Microsoft Azure Stack Hub、Nutanix、Red Hat OpenStack Platform (RHOSP) 和 VMware vSphere 上处于通用可用性状态。 该操作符作为技术预览版提供给 IBM Power® 虚拟服务器。 |
云控制器管理器操作符管理和更新部署在 OpenShift Container Platform 之上的云控制器管理器。该操作符基于 Kubebuilder 框架和controller-runtime
库。它是通过集群版本操作符 (CVO) 安装的。
它包含以下组件:
操作符
云配置观察器
默认情况下,操作符通过metrics
服务公开 Prometheus 指标。
云凭据操作符提供CloudCredential
功能的功能。
目前,仅裸机集群支持禁用 |
云凭据操作符 (CCO) 将云提供商凭据作为 Kubernetes 自定义资源定义 (CRD) 进行管理。CCO 同步CredentialsRequest
自定义资源 (CR),以允许 OpenShift Container Platform 组件请求具有集群运行所需特定权限的云提供商凭据。
通过为install-config.yaml
文件中的credentialsMode
参数设置不同的值,可以将 CCO 配置为以几种不同的模式运行。如果没有指定模式,或者credentialsMode
参数设置为空字符串 (""
),则 CCO 将以其默认模式运行。
集群镜像注册表操作符提供ImageRegistry
功能的功能。
集群镜像注册表操作符管理 OpenShift 镜像注册表的单例实例。它管理注册表的所有配置,包括创建存储。
在初始启动时,操作符将根据在集群中检测到的配置创建一个默认的image-registry
资源实例。这指示根据云提供商使用哪种云存储类型。
如果可用信息不足以定义完整的image-registry
资源,则会定义一个不完整的资源,并且 Operator 会使用有关缺少哪些信息的信息更新资源状态。
集群镜像注册表 Operator 运行在openshift-image-registry
命名空间中,它也管理该位置的注册表实例。注册表的所有配置和工作负载资源都驻留在该命名空间中。
为了将镜像注册表集成到集群的用户身份验证和授权系统中,将为集群中的每个服务帐户生成一个镜像拉取密钥。
如果禁用 |
如果禁用ImageRegistry
功能,可以减少电信环境中 OpenShift Container Platform 的整体资源占用。根据您的部署情况,如果不需要此组件,可以禁用它。
集群存储 Operator 提供Storage
功能。
集群存储 Operator 设置 OpenShift Container Platform 集群范围的存储默认值。它确保 OpenShift Container Platform 集群存在默认的storageclass
。它还安装容器存储接口 (CSI) 驱动程序,使您的集群能够使用各种存储后端。
如果禁用集群存储功能,则集群将没有默认的 |
可以通过编辑 Operator 创建的存储类的注释将其设置为非默认值,但只要 Operator 运行,就不能删除此存储类。
控制台 Operator 提供Console
功能。
控制台 Operator 在集群上安装和维护 OpenShift Container Platform Web 控制台。控制台 Operator 默认安装并自动维护控制台。
集群 CSI 快照控制器 Operator 提供CSISnapshot
功能。
集群 CSI 快照控制器 Operator 安装和维护 CSI 快照控制器。CSI 快照控制器负责监视VolumeSnapshot
CRD 对象并管理卷快照的创建和删除生命周期。
DeploymentConfig
功能启用并管理DeploymentConfig
API。
如果禁用
只有在不需要集群中的 |
Ingress Operator 提供 Ingress 功能。Ingress 功能默认启用。
如果将 |
Ingress Operator 配置和管理 OpenShift Container Platform 路由器。
clusteringresses.ingress.openshift.io
范围:命名空间
CR:clusteringresses
验证:否
集群配置
类型名称: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
来确定托管 Ingress 控制器(路由器)应以何种模式(IPv4、IPv6 或双栈)运行。例如,如果clusterNetwork
仅包含 v6 cidr
,则 Ingress 控制器以仅 IPv6 模式运行。
在以下示例中,由 Ingress Operator 管理的 Ingress 控制器将以仅 IPv4 模式运行,因为只有一个集群网络存在,并且该网络是 IPv4 cidr
。
$ oc get network/cluster -o jsonpath='{.status.clusterNetwork[*]}'
map[cidr:10.128.0.0/14 hostPrefix:23]
Insights Operator 提供Insights
功能。
Insights Operator 收集 OpenShift Container Platform 配置数据并将其发送给 Red Hat。这些数据用于生成有关集群可能面临的潜在问题的主动洞察建议。这些洞察通过 console.redhat.com 上的 Insights Advisor 传达给集群管理员。
Insights Operator 补充 OpenShift Container Platform Telemetry。
machine-api-operator
、cluster-autoscaler-operator
和cluster-control-plane-machine-set-operator
Operator 提供MachineAPI
功能。只有在使用用户预配的基础架构安装集群时,才能禁用此功能。
Machine API 功能负责集群中所有机器的配置和管理。如果在安装过程中禁用 Machine API 功能,则需要手动管理所有与机器相关的任务。
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 来启用和禁用各个目录。
节点调优 Operator 提供了NodeTuning
功能。
节点调优 Operator 通过协调 TuneD 守护进程来帮助您管理节点级调优,并通过使用性能配置文件控制器来实现低延迟性能。大多数高性能应用程序都需要一定程度的内核调优。节点调优 Operator 为节点级 sysctl 的用户提供了统一的管理界面,并提供了更多灵活性来添加用户需求指定的自定义调优。
如果禁用 NodeTuning 功能,则某些默认调优设置将不会应用于控制平面节点。这可能会限制拥有超过 900 个节点或 900 条路由的大型集群的可扩展性和性能。
集群示例 Operator 提供了openshift-samples
功能。
集群示例 Operator 管理存储在openshift
命名空间中的示例镜像流和模板。
在初始启动时,Operator 会创建默认的示例配置资源以启动镜像流和模板的创建。配置对象是一个集群范围的对象,键为cluster
,类型为configs.samples
。
镜像流是指向registry.redhat.io
上镜像的基于 Red Hat Enterprise Linux CoreOS (RHCOS) 的 OpenShift Container Platform 镜像流。类似地,模板是那些被归类为 OpenShift Container Platform 模板的模板。
如果禁用示例功能,用户将无法访问其提供的镜像流、示例和模板。根据您的部署情况,如果您不需要此组件,则可能需要禁用它。
Operator 生命周期管理器 (OLM) 帮助用户安装、更新和管理 Kubernetes 原生应用程序(Operator)及其在 OpenShift Container Platform 集群中运行的关联服务的生命周期。它是Operator Framework的一部分,这是一个开源工具包,旨在以有效、自动化和可扩展的方式管理 Operator。
如果 Operator 需要以下任何 API,则必须启用OperatorLifecycleManager
功能
ClusterServiceVersion
CatalogSource
Subscription
InstallPlan
OperatorGroup
|
作为集群管理员,您可以使用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"]}
作为集群管理员,您可以在 OpenShift Container Platform 安装后随时通过设置baselineCapabilitySet
配置参数来启用集群功能。
您已安装 OpenShift CLI (oc
)。
要设置baselineCapabilitySet
配置参数,请运行以下命令
$ oc patch clusterversion version --type merge -p '{"spec":{"capabilities":{"baselineCapabilitySet":"vCurrent"}}}' (1)
1 | 对于baselineCapabilitySet ,您可以指定vCurrent 、v4.17 或None 。 |
作为集群管理员,您可以在 OpenShift Container Platform 安装后随时通过设置additionalEnabledCapabilities
配置参数来启用集群功能。
您已安装 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 会显示不同的规范。
$ 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"}
在集群升级期间,某个功能可能会被隐式启用。如果某个资源在升级前已经在集群上运行,则该资源所属的任何功能都将被启用。例如,在集群升级期间,系统已将集群上已运行的资源更改为 |