Menu Close

Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第 44 章 使用功能门禁用功能

作为管理员,您可以使用功能门关闭特定节点或整个平台的特定 功能。

例如,您可以为生产环境集群关闭新功能,同时为测试集群保留这些功能,以便可以全面测试它们。

如果您禁用 web 控制台中出现的功能,您可能会看到该功能,但没有列出对象。如果尝试使用与禁用功能关联的命令,OpenShift Container Platform 会显示一个错误。

注意

如果您禁用了集群中任何应用程序所依赖的功能,则应用可能无法正常工作,具体取决于禁用的功能以及应用如何使用该功能。

功能门使用 master 配置文件(/etc/origin/master/master-config.yaml)中的 key=value 对,以及描述您要阻断的功能的节点配置文件。

要修改节点配置文件,请根据 需要更新节点配置映射。不要手动编辑 node-config.yaml 文件。

例如,以下代码关闭 Huge Pages 功能:

kubernetesMasterConfig:
  apiServerArguments:
    feature-gates:
    - HugePages=false 1
  ...
  controllerArguments:
    feature-gates:
    - HugePages=false 2
1 2
关闭功能的键/值对:
  • true 启用指定功能
  • False 会禁用指定功能

在一个以逗号分隔的行中指定多个功能门:

kubeletArguments:
  feature-gates:
  - RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true,ExpandPersistentVolumes=true,HugePages=false

44.1. 禁用集群的功能

要为整个集群关闭功能,请编辑 master 配置文件,默认为 /etc/origin/master/master-config.yaml

  1. 对于您要关闭的功能,在 apiServerArguments 和 controllerArguments 下输入: <feature_name>=false

    例如:

    kubernetesMasterConfig:
      apiServerArguments:
        feature-gates:
        - HugePages=false
      controllerArguments:
        feature-gates:
        - HugePages=false

    在一个以逗号分隔的行中指定多个功能门:

    kubernetesMasterConfig:
      apiServerArguments:
        feature-gates:
        - RotateKubeletClientCertificate=false,RotateKubeletServerCertificate=false,ExpandPersistentVolumes=true,HugePages=false
      controllerArguments:
        feature-gates:
        - RotateKubeletClientCertificate=false,RotateKubeletServerCertificate=false,ExpandPersistentVolumes=true,HugePages=false
  2. 重启 OpenShift Container Platform master 服务以应用这些更改。

    # master-restart api
    # master-restart controllers

要重新启用禁用的功能,编辑 master 配置文件以删除 <feature_name>=false 并重启 master 服务。