Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

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

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

例如,您可以关闭生产集群的新功能,同时为测试集群保留功能,以便完全测试它们。

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

注意

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

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

要修改节点配置文件,请根据需要更新 节点配置映射。不要手动编辑 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. 对于您要关闭的功能,在 apiServerArgumentscontrollerArguments 下输入: <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 服务。