×

启用集群功能

如果您使用包含通过创建install-config.yaml文件来自定义集群的安装方法,则可以选择要在集群上提供的集群功能。

如果您通过启用或禁用特定集群功能来自定义集群,则必须手动维护您的install-config.yaml文件。新的OpenShift Container Platform更新可能会为现有组件声明新的功能句柄,或完全引入新的组件。自定义install-config.yaml文件的用户应考虑定期更新其install-config.yaml文件,因为OpenShift Container Platform会不断更新。

您可以使用以下配置参数来选择集群功能

capabilities:
  baselineCapabilitySet: v4.11 (1)
  additionalEnabledCapabilities: (2)
  - CSISnapshot
  - Console
  - Storage
1 定义要安装的功能的基线集。有效值为NonevCurrentv4.x。如果您选择None,则所有可选功能都将被禁用。默认值为vCurrent,它启用所有可选功能。

v4.x指代当前集群版本及之前的任何值。例如,对于OpenShift Container Platform 4.12集群,有效值为v4.11v4.12

2 定义要显式启用的功能列表。除了在baselineCapabilitySet中指定的功能外,还会启用这些功能。

在此示例中,默认功能设置为v4.11additionalEnabledCapabilities字段在默认v4.11功能集的基础上启用了其他功能。

下表描述了baselineCapabilitySet的值。

表1. 集群功能baselineCapabilitySet值描述
描述

vCurrent

当您希望自动添加新版本中引入的新默认功能时,请指定此选项。

v4.11

当您希望启用OpenShift Container Platform 4.11的默认功能时,请指定此选项。通过指定v4.11,不会启用在新版本OpenShift Container Platform中引入的功能。OpenShift Container Platform 4.11中的默认功能为baremetalMachineAPImarketplaceopenshift-samples

v4.12

当您希望启用OpenShift Container Platform 4.12的默认功能时,请指定此选项。通过指定v4.12,不会启用在新版本OpenShift Container Platform中引入的功能。OpenShift Container Platform 4.12中的默认功能为baremetalMachineAPImarketplaceopenshift-samplesConsoleInsightsStorageCSISnapshot

v4.13

当您希望启用OpenShift Container Platform 4.13的默认功能时,请指定此选项。通过指定v4.13,不会启用在新版本OpenShift Container Platform中引入的功能。OpenShift Container Platform 4.13中的默认功能为baremetalMachineAPImarketplaceopenshift-samplesConsoleInsightsStorageCSISnapshotNodeTuning

v4.14

如果您想启用 OpenShift Container Platform 4.14 的默认功能,请指定此选项。通过指定v4.14,不会启用 OpenShift Container Platform 更新版本中引入的功能。OpenShift Container Platform 4.14 中的默认功能包括baremetalMachineAPImarketplaceopenshift-samplesConsoleInsightsStorageCSISnapshotNodeTuningImageRegistryBuildDeploymentConfig

v4.15

如果您想启用 OpenShift Container Platform 4.15 的默认功能,请指定此选项。通过指定v4.15,不会启用 OpenShift Container Platform 更新版本中引入的功能。OpenShift Container Platform 4.15 中的默认功能包括baremetalMachineAPImarketplaceOperatorLifecycleManageropenshift-samplesConsoleInsightsStorageCSISnapshotNodeTuningImageRegistryBuildCloudCredentialDeploymentConfig

v4.16

如果您想启用 OpenShift Container Platform 4.16 的默认功能,请指定此选项。通过指定v4.16,不会启用 OpenShift Container Platform 更新版本中引入的功能。OpenShift Container Platform 4.16 中的默认功能包括baremetalMachineAPImarketplaceOperatorLifecycleManageropenshift-samplesConsoleInsightsStorageCSISnapshotNodeTuningImageRegistryBuildCloudCredentialDeploymentConfigCloudControllerManager

v4.17

如果您想启用 OpenShift Container Platform 4.17 的默认功能,请指定此选项。通过指定v4.17,不会启用 OpenShift Container Platform 更新版本中引入的功能。OpenShift Container Platform 4.17 中的默认功能包括baremetalMachineAPImarketplaceOperatorLifecycleManageropenshift-samplesConsoleInsightsStorageCSISnapshotNodeTuningImageRegistryBuildCloudCredentialDeploymentConfigCloudControllerManager

当其他集合过大,并且您不需要任何功能或想通过additionalEnabledCapabilities进行微调时,请指定此选项。

OpenShift Container Platform 4.17 中可选的集群功能

目前,集群操作符提供了这些可选功能的功能。以下是每个功能提供的功能以及禁用它后会丢失哪些功能的总结。

其他资源

裸机功能

用途

集群裸机操作符提供baremetal功能的功能。

集群裸机操作符 (CBO) 部署所有必要的组件,以将裸机服务器转变为可运行 OpenShift Container Platform 计算节点的完全功能的 worker 节点。CBO 确保包含裸机操作符 (BMO) 和 Ironic 容器的 metal3 部署在 OpenShift Container Platform 集群中的一个控制平面节点上运行。CBO 还侦听 OpenShift Container Platform 对其监视的资源的更新,并采取相应的措施。

使用安装程序配置的基础设施进行部署需要裸机功能。禁用裸机功能可能会导致这些部署出现意外问题。

建议集群管理员仅在没有集群中任何BareMetalHost资源的用户配置的基础设施安装期间禁用裸机功能。

如果禁用了裸机功能,集群将无法配置或管理裸机节点。只有在部署中没有BareMetalHost资源时才禁用此功能。baremetal功能依赖于MachineAPI功能。如果您启用了baremetal功能,则还必须启用MachineAPI

构建功能

用途

Build功能启用Build API。Build API 管理BuildBuildConfig对象的生命周期。

如果您禁用了Build功能,则集群中将无法使用以下资源:

  • BuildBuildConfig资源

  • builder服务帐户

只有在您不需要集群中的BuildBuildConfig资源或builder服务帐户时,才禁用Build功能。

云控制器管理器功能

用途

云控制器管理器操作符提供CloudControllerManager功能的功能。

目前,并非所有平台都支持禁用CloudControllerManager功能。

您可以通过检查集群的安装配置 (install-config.yaml) 文件中的值来确定您的集群是否支持禁用CloudControllerManager功能。

install-config.yaml文件中,找到platform参数。

  • 如果platform参数的值为BaremetalNone,则可以在集群上禁用CloudControllerManager功能。

  • 如果platform参数的值为External,则找到platform.external.cloudControllerManager参数。如果platform.external.cloudControllerManager参数的值为None,则可以在集群上禁用CloudControllerManager功能。

如果这些参数包含任何其他值(而非列出的值),则无法在集群上禁用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功能的功能。

目前,仅裸机集群支持禁用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功能或禁用集群镜像注册表 Operator 配置中的集成 OpenShift 镜像注册表,则不会为每个服务帐户生成镜像拉取密钥。

如果禁用ImageRegistry功能,可以减少电信环境中 OpenShift Container Platform 的整体资源占用。根据您的部署情况,如果不需要此组件,可以禁用它。

项目

集群存储功能

用途

集群存储 Operator 提供Storage功能。

集群存储 Operator 设置 OpenShift Container Platform 集群范围的存储默认值。它确保 OpenShift Container Platform 集群存在默认的storageclass。它还安装容器存储接口 (CSI) 驱动程序,使您的集群能够使用各种存储后端。

如果禁用集群存储功能,则集群将没有默认的storageclass或任何 CSI 驱动程序。如果禁用集群存储功能,具有管理员权限的用户可以创建默认的storageclass并手动安装 CSI 驱动程序。

注释

  • 可以通过编辑 Operator 创建的存储类的注释将其设置为非默认值,但只要 Operator 运行,就不能删除此存储类。

控制台功能

用途

控制台 Operator 提供Console功能。

控制台 Operator 在集群上安装和维护 OpenShift Container Platform Web 控制台。控制台 Operator 默认安装并自动维护控制台。

其他资源

CSI 快照控制器功能

用途

集群 CSI 快照控制器 Operator 提供CSISnapshot功能。

集群 CSI 快照控制器 Operator 安装和维护 CSI 快照控制器。CSI 快照控制器负责监视VolumeSnapshot CRD 对象并管理卷快照的创建和删除生命周期。

其他资源

DeploymentConfig 功能

用途

DeploymentConfig功能启用并管理DeploymentConfig API。

如果禁用DeploymentConfig功能,则集群中将无法使用以下资源:

  • DeploymentConfig资源

  • deployer服务帐户

只有在不需要集群中的DeploymentConfig资源和deployer服务帐户时,才禁用DeploymentConfig功能。

Ingress 功能

用途

Ingress Operator 提供 Ingress 功能。Ingress 功能默认启用。

如果将baselineCapabilitySet字段设置为None,则必须显式启用 Ingress 功能,因为如果禁用 Ingress 功能,则集群安装将失败。

Ingress Operator 配置和管理 OpenShift Container Platform 路由器。

项目

CRDs

  • 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 功能

用途

Insights Operator 提供Insights功能。

Insights Operator 收集 OpenShift Container Platform 配置数据并将其发送给 Red Hat。这些数据用于生成有关集群可能面临的潜在问题的主动洞察建议。这些洞察通过 console.redhat.com 上的 Insights Advisor 传达给集群管理员。

注释

Insights Operator 补充 OpenShift Container Platform Telemetry。

Machine API 功能

用途

machine-api-operatorcluster-autoscaler-operatorcluster-control-plane-machine-set-operator Operator 提供MachineAPI功能。只有在使用用户预配的基础架构安装集群时,才能禁用此功能。

Machine API 功能负责集群中所有机器的配置和管理。如果在安装过程中禁用 Machine API 功能,则需要手动管理所有与机器相关的任务。

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 来启用和禁用各个目录。

节点调优功能

用途

节点调优 Operator 提供了NodeTuning功能。

节点调优 Operator 通过协调 TuneD 守护进程来帮助您管理节点级调优,并通过使用性能配置文件控制器来实现低延迟性能。大多数高性能应用程序都需要一定程度的内核调优。节点调优 Operator 为节点级 sysctl 的用户提供了统一的管理界面,并提供了更多灵活性来添加用户需求指定的自定义调优。

如果禁用 NodeTuning 功能,则某些默认调优设置将不会应用于控制平面节点。这可能会限制拥有超过 900 个节点或 900 条路由的大型集群的可扩展性和性能。

OpenShift 示例功能

用途

集群示例 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 生命周期管理器功能

用途

Operator 生命周期管理器 (OLM) 帮助用户安装、更新和管理 Kubernetes 原生应用程序(Operator)及其在 OpenShift Container Platform 集群中运行的关联服务的生命周期。它是Operator Framework的一部分,这是一个开源工具包,旨在以有效、自动化和可扩展的方式管理 Operator。

如果 Operator 需要以下任何 API,则必须启用OperatorLifecycleManager功能

  • ClusterServiceVersion

  • CatalogSource

  • Subscription

  • InstallPlan

  • OperatorGroup

marketplace功能依赖于OperatorLifecycleManager功能。您不能禁用OperatorLifecycleManager功能并启用marketplace功能。

查看集群功能

作为集群管理员,您可以使用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,您可以指定vCurrentv4.17None

通过设置其他已启用功能来启用集群功能

作为集群管理员,您可以在 OpenShift Container Platform 安装后随时通过设置additionalEnabledCapabilities配置参数来启用集群功能。

先决条件
  • 您已安装 OpenShift CLI (oc)。

步骤
  1. 通过运行以下命令查看已启用的附加功能

    $ oc get clusterversion version -o jsonpath='{.spec.capabilities.additionalEnabledCapabilities}{"\n"}'
    示例输出
    ["openshift-samples"]
  2. 要设置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"}

在集群升级期间,某个功能可能会被隐式启用。如果某个资源在升级前已经在集群上运行,则该资源所属的任何功能都将被启用。例如,在集群升级期间,系统已将集群上已运行的资源更改为marketplace功能的一部分。即使集群管理员没有显式启用marketplace功能,它也会被系统隐式启用。