第 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
指定一个以逗号分隔的行中的多个功能门:
kubeletArguments: feature-gates: - RotateKubeletClientCertificate=true,RotateKubeletServerCertificate=true,ExpandPersistentVolumes=true,HugePages=false
44.1. 为集群禁用功能
要为整个集群关闭一个功能,请编辑 master 配置文件,默认为 /etc/origin/master/master-config.yaml :
对于您要关闭的功能,在
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
重启 OpenShift Container Platform master 服务以应用更改。
# master-restart api # master-restart controllers
要重新启用禁用的功能,请编辑 master 配置文件以删除 <feature_name>=false
并重启 master 服务。