×

作为管理员,您可以使用特性门启用不在默认特性集中的特性。

了解特性门

您可以使用FeatureGate自定义资源 (CR) 在集群中启用特定的特性集。特性集是未默认启用的 OpenShift Container Platform 特性集合。

您可以使用FeatureGate CR 激活以下特性集

  • TechPreviewNoUpgrade。此特性集是当前技术预览特性的子集。此特性集允许您在测试集群上启用这些技术预览特性,您可以在其中对其进行全面测试,同时在生产集群上禁用这些特性。

    在您的集群上启用TechPreviewNoUpgrade特性集是不可逆的,并且会阻止次要版本更新。您不应在生产集群上启用此特性集。

    此特性集启用了以下技术预览特性

    • 外部云提供商。为 vSphere、AWS、Azure 和 GCP 上的集群启用对外部云提供商的支持。对 OpenStack 的支持已达到 GA。这是一个内部特性,大多数用户不需要与之交互。(ExternalCloudProvider)

    • 节点上的交换内存。按节点启用 OpenShift Container Platform 工作负载的交换内存使用。(NodeSwap)

    • OpenStack 机器 API 提供程序。此门没有效果,计划在将来的版本中将其从此特性集中移除。(MachineAPIProviderOpenStack)

    • Insights 运算符。启用InsightsDataGather CRD,允许用户配置一些 Insights 数据收集选项。此特性集还启用了DataGather CRD,允许用户按需运行 Insights 数据收集。(InsightsConfigAPI)

    • 动态资源分配 API。启用一个新的 API,用于在 Pod 和容器之间请求和共享资源。这是一个内部特性,大多数用户不需要与之交互。(DynamicResourceAllocation)

    • Pod 安全准入强制执行。启用 Pod 安全准入的受限强制模式。如果 Pod 违反 Pod 安全标准,则不会仅记录警告,而是会拒绝 Pod。(OpenShiftPodSecurityAdmission)

    • StatefulSet Pod 可用性升级限制。允许用户定义更新期间 StatefulSet Pod 的最大不可用数量,从而减少应用程序停机时间。(MaxUnavailableStatefulSet)

    • gcpLabelsTags

    • vSphereStaticIPs

    • routeExternalCertificate

    • automatedEtcdBackup

    • gcpClusterHostedDNS

    • vSphereControlPlaneMachineset

    • dnsNameResolver

    • machineConfigNodes

    • metricsServer

    • installAlternateInfrastructureAWS

    • mixedCPUsAllocation

    • managedBootImages

    • onClusterBuild

    • signatureStores

    • SigstoreImageVerification

    • DisableKubeletCloudCredentialProviders

    • BareMetalLoadBalancer

    • ClusterAPIInstallAWS

    • ClusterAPIInstallAzure

    • ClusterAPIInstallNutanix

    • ClusterAPIInstallOpenStack

    • ClusterAPIInstallVSphere

    • HardwareSpeed

    • KMSv1

    • NetworkDiagnosticsConfig

    • VSphereDriverConfiguration

    • ExternalOIDC

    • ChunkSizeMiB

    • ClusterAPIInstallGCP

    • ClusterAPIInstallPowerVS

    • EtcdBackendQuota

    • InsightsConfig

    • InsightsOnDemandDataGather

    • MetricsCollectionProfiles

    • NewOLM

    • NodeDisruptionPolicy

    • PinnedImages

    • PlatformOperators

    • ServiceAccountTokenNodeBinding

    • TranslateStreamCloseWebsocketRequests

    • UpgradeStatus

    • VSphereMultiVCenters

    • VolumeGroupSnapshot

    • AdditionalRoutingCapabilities

    • BootcNodeManagement

    • ClusterMonitoringConfig

    • DNSNameResolver

    • ManagedBootImagesAWS

    • NetworkSegmentation

    • OVNObservability

    • PersistentIPsForVirtualization

    • ProcMountType

    • RouteAdvertisements

    • UserNamespacesSupport

    • AWSEFSDriverVolumeMetrics

    • AlibabaPlatform

    • AzureWorkloadIdentity

    • BuildCSIVolumes

    • CloudDualStackNodeIPs

    • ExternalCloudProviderAzure

    • ExternalCloudProviderExternal

    • ExternalCloudProviderGCP

    • IngressControllerLBSubnetsAWS

    • MultiArchInstallAWS

    • MultiArchInstallGCP

    • NetworkLiveMigration

    • PrivateHostedZoneAWS

    • SetEIPForNLBIngressController

    • ValidatingAdmissionPolicy

有关TechPreviewNoUpgrade特性门激活的特性,请参阅以下主题:

在安装时启用特性集

您可以通过在部署集群之前编辑install-config.yaml文件来为集群中的所有节点启用特性集。

先决条件
  • 您有一个install-config.yaml文件。

步骤
  1. 使用featureSet参数指定要启用的特性集的名称,例如TechPreviewNoUpgrade

    在您的集群上启用TechPreviewNoUpgrade特性集是不可逆的,并且会阻止次要版本更新。您不应在生产集群上启用此特性集。

    包含已启用特性集的示例install-config.yaml文件
    compute:
    - hyperthreading: Enabled
      name: worker
      platform:
        aws:
          rootVolume:
            iops: 2000
            size: 500
            type: io1
          metadataService:
            authentication: Optional
          type: c5.4xlarge
          zones:
          - us-west-2c
      replicas: 3
    featureSet: TechPreviewNoUpgrade
  2. 保存文件并在使用安装程序部署集群时引用它。

验证

节点返回就绪状态后,您可以通过查看节点上的kubelet.conf文件来验证特性门是否已启用。

  1. 在 Web 控制台中,从**管理员**视角导航到**计算**→**节点**。

  2. 选择一个节点。

  3. 在**节点详细信息**页面中,单击**终端**。

  4. 在终端窗口中,将根目录更改为/host

    sh-4.2# chroot /host
  5. 查看kubelet.conf文件

    sh-4.2# cat /etc/kubernetes/kubelet.conf
    示例输出
    # ...
    featureGates:
      InsightsOperatorPullingSCA: true,
      LegacyNodeRoleBehavior: false
    # ...

    列为true的特性已在您的集群中启用。

    列出的特性因 OpenShift Container Platform 版本而异。

使用 Web 控制台启用特性集

您可以使用 OpenShift Container Platform Web 控制台通过编辑FeatureGate自定义资源 (CR) 来为集群中的所有节点启用特性集。

步骤

要启用特性集:

  1. 在 OpenShift Container Platform Web 控制台中,切换到**管理**→**自定义资源定义**页面。

  2. 在**自定义资源定义**页面上,单击**FeatureGate**。

  3. 在**自定义资源定义详细信息**页面上,单击**实例**选项卡。

  4. 单击**cluster**特性门,然后单击**YAML**选项卡。

  5. 编辑集群实例以添加特定的功能集

    在您的集群上启用TechPreviewNoUpgrade特性集是不可逆的,并且会阻止次要版本更新。您不应在生产集群上启用此特性集。

    示例 FeatureGate 自定义资源
    apiVersion: config.openshift.io/v1
    kind: FeatureGate
    metadata:
      name: cluster (1)
    # ...
    spec:
      featureSet: TechPreviewNoUpgrade (2)
    1 FeatureGate CR 的名称必须为cluster
    2 添加您想要启用的功能集
    • TechPreviewNoUpgrade启用特定的技术预览功能。

    保存更改后,将创建新的机器配置,更新机器配置池,并在应用更改期间禁用每个节点上的调度。

验证

节点返回就绪状态后,您可以通过查看节点上的kubelet.conf文件来验证特性门是否已启用。

  1. 在 Web 控制台中,从**管理员**视角导航到**计算**→**节点**。

  2. 选择一个节点。

  3. 在**节点详细信息**页面中,单击**终端**。

  4. 在终端窗口中,将根目录更改为/host

    sh-4.2# chroot /host
  5. 查看kubelet.conf文件

    sh-4.2# cat /etc/kubernetes/kubelet.conf
    示例输出
    # ...
    featureGates:
      InsightsOperatorPullingSCA: true,
      LegacyNodeRoleBehavior: false
    # ...

    列为true的特性已在您的集群中启用。

    列出的特性因 OpenShift Container Platform 版本而异。

使用 CLI 启用功能集

您可以使用 OpenShift CLI (oc) 通过编辑FeatureGate自定义资源 (CR) 来为集群中的所有节点启用功能集。

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

步骤

要启用特性集:

  1. 编辑名为clusterFeatureGate CR

    $ oc edit featuregate cluster

    在您的集群上启用TechPreviewNoUpgrade特性集是不可逆的,并且会阻止次要版本更新。您不应在生产集群上启用此特性集。

    示例 FeatureGate 自定义资源
    apiVersion: config.openshift.io/v1
    kind: FeatureGate
    metadata:
      name: cluster (1)
    # ...
    spec:
      featureSet: TechPreviewNoUpgrade (2)
    1 FeatureGate CR 的名称必须为cluster
    2 添加您想要启用的功能集
    • TechPreviewNoUpgrade启用特定的技术预览功能。

    保存更改后,将创建新的机器配置,更新机器配置池,并在应用更改期间禁用每个节点上的调度。

验证

节点返回就绪状态后,您可以通过查看节点上的kubelet.conf文件来验证特性门是否已启用。

  1. 在 Web 控制台中,从**管理员**视角导航到**计算**→**节点**。

  2. 选择一个节点。

  3. 在**节点详细信息**页面中,单击**终端**。

  4. 在终端窗口中,将根目录更改为/host

    sh-4.2# chroot /host
  5. 查看kubelet.conf文件

    sh-4.2# cat /etc/kubernetes/kubelet.conf
    示例输出
    # ...
    featureGates:
      InsightsOperatorPullingSCA: true,
      LegacyNodeRoleBehavior: false
    # ...

    列为true的特性已在您的集群中启用。

    列出的特性因 OpenShift Container Platform 版本而异。