8.7. 使用功能门启用功能
作为管理员,您可以使用功能门启用不是默认功能集合中的功能。
8.7.1. 了解功能门
					您可以使用 FeatureGate 自定义资源(CR)在集群中启用特定的功能集。功能集是 OpenShift Container Platform 功能的集合,默认情况下不启用。
				
					您可以使用 FeatureGate CR 激活以下功能集:
				
- TechPreviewNoUpgrade.这个功能集是当前技术预览功能的子集。此功能集允许您在测试集群中启用这些技术预览功能,您可以在测试集群中完全测试它们,同时保留生产集群中禁用的功能。警告- 在集群中启用 - TechPreviewNoUpgrade功能集无法撤消,并会阻止次版本更新。您不应该在生产环境集群中启用此功能。- 此功能集启用了以下技术预览功能: - 
									外部云供应商。为 vSphere、AWS、Azure 和 GCP 上的集群启用外部云供应商的支持。对 OpenStack 的支持是 GA。这是一个内部功能,大多数用户不需要与之交互。(ExternalCloudProvider)
- 
									OpenShift 构建中的共享资源 CSI 驱动程序。启用 Container Storage Interface (CSI)。(CSIDriverSharedResource)
- 
									节点上的交换内存。根据每个节点为 OpenShift Container Platform 工作负载启用交换内存使用。(NodeSwap)
- 
									OpenStack Machine API 提供程序。此最低要求无效,计划在以后的发行版本中从此功能集中删除。(MachineAPIProviderOpenStack)
- 
									Insights Operator。启用 InsightsDataGatherCRD,允许用户配置一些 Insights 数据收集选项。功能集还启用了DataGatherCRD,允许用户按需运行 Insights 数据收集。(InsightsConfigAPI)
- 
									递归默认存储类.如果 PVC 创建时没有默认存储类(RetroactiveDefaultStorageClass) 启用 OpenShift Container Platform 会主动地将默认存储类分配给 PVC。
- 
									动态资源分配 API。启用一个新的 API 在 pod 和容器间请求和共享资源。这是一个内部功能,大多数用户不需要与之交互。(DynamicResourceAllocation)
- 
									Pod 安全准入强制。为 pod 安全准入启用受限强制模式。如果 pod 违反了 pod 安全标准,它们会被拒绝,而不是仅记录警告信息。(OpenShiftPodSecurityAdmission)
- 
									StatefulSet pod 可用性升级限制。允许用户定义在更新过程中不可用的 statefulset pod 的最大数量,这可以减少应用程序停机时间。(MaxUnavailableStatefulSet)
- 
									MatchConditions是一个必须满足的条件列表,只要在满足这些条件时才向此 webhook 发送请求。匹配条件过滤请求,它们已与 rules、namespaceSelector 和 objectSelector 匹配。一个空的matchConditions列表,匹配所有请求。(admissionWebhookMatchConditions)
- 
									gcpLabelsTags
- 
									vSphereStaticIPs
- 
									routeExternalCertificate
- 
									automatedEtcdBackup
- 
									gcpClusterHostedDNS
- 
									vSphereControlPlaneMachineset
- 
									dnsNameResolver
- 
									machineConfigNodes
- 
									metricsServer
- 
									installAlternateInfrastructureAWS
- 
									sdnLiveMigration
- 
									mixedCPUsAllocation
- 
									managedBootImages
- 
									onClusterBuild
- 
									signatureStores
- 
									DisableKubeletCloudCredentialProviders
- 
									BareMetalLoadBalancer
- 
									ClusterAPIInstallAWS
- 
									ClusterAPIInstallNutanix
- 
									ClusterAPIInstallOpenStack
- 
									ClusterAPIInstallVSphere
- 
									HardwareSpeed
- 
									KMSv1
- 
									NetworkDiagnosticsConfig
- 
									VSphereDriverConfiguration
- 
									ExternalOIDC
- 
									ChunkSizeMiB
- 
									ClusterAPIInstallGCP
- 
									ClusterAPIInstallPowerVS
- 
									EtcdBackendQuota
- 
									Example
- 
									ImagePolicy
- 
									InsightsConfig
- 
									InsightsOnDemandDataGather
- 
									MetricsCollectionProfiles
- 
									NewOLM
- 
									NodeDisruptionPolicy
- 
									PinnedImages
- 
									PlatformOperators
- 
									ServiceAccountTokenNodeBinding
- 
									ServiceAccountTokenNodeBindingValidation
- 
									ServiceAccountTokenPodNodeInfo
- 
									TranslateStreamCloseWebsocketRequests
- 
									UpgradeStatus
- 
									VSphereMultiVCenters
- 
									VolumeGroupSnapshot
 
- 
									外部云供应商。为 vSphere、AWS、Azure 和 GCP 上的集群启用外部云供应商的支持。对 OpenStack 的支持是 GA。这是一个内部功能,大多数用户不需要与之交互。(
					有关 TechPreviewNoUpgrade 功能门激活的功能的更多信息,请参阅以下主题:
				
8.7.2. 在安装时启用功能集
					在部署集群前,您可以编辑 install-config.yaml 文件来为集群中的所有节点启用功能集。
				
先决条件
- 
							您有一个 install-config.yaml文件。
流程
- 使用 - featureSet参数指定您要启用的功能集的名称,如- TechPreviewNoUpgrade:警告- 在集群中启用 - TechPreviewNoUpgrade功能集无法撤消,并会阻止次版本更新。您不应该在生产环境集群中启用此功能。- 带有启用功能集的 - install-config.yaml文件示例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 保存文件并在使用安装程序部署集群时引用。
验证
						您可以在节点返回就绪状态后查看节点上的 kubelet.conf 文件来验证是否启用了功能门。
					
- 
							从 Web 控制台中的 Administrator 视角,进入到 Compute Nodes。 
- 选择一个节点。
- 在 Node 详情页面中,点 Terminal。
- 在终端窗口中,将根目录改为 - /host:- chroot /host - sh-4.2# chroot /host- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 查看 - kubelet.conf文件:- cat /etc/kubernetes/kubelet.conf - sh-4.2# cat /etc/kubernetes/kubelet.conf- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - ... ... - # ... featureGates: InsightsOperatorPullingSCA: true, LegacyNodeRoleBehavior: false # ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在集群中启用列为 - true的功能。注意- 列出的功能因 OpenShift Container Platform 版本的不同而有所不同。 
8.7.3. 使用 Web 控制台启用功能集
					您可以通过编辑 FeatureGate 自定义资源(CR)来使用 OpenShift Container Platform Web 控制台为集群中的所有节点启用功能集。
				
流程
启用功能集:
- 
							在 OpenShift Container Platform web 控制台中,切换到 Administration Custom Resource Definitions 页面。 
- 在 Custom Resource Definitions 页面中,点击 FeatureGate。
- 在 Custom Resource Definition Details 页面中,点 Instances 选项卡。
- 点 集群 功能门,然后点 YAML 选项卡。
- 编辑集群实例以添加特定的功能集: 警告- 在集群中启用 - TechPreviewNoUpgrade功能集无法撤消,并会阻止次版本更新。您不应该在生产环境集群中启用此功能。- 功能门自定义资源示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 保存更改后,会创建新的机器配置,然后更新机器配置池,并在应用更改时在每个节点上调度。 
验证
						您可以在节点返回就绪状态后查看节点上的 kubelet.conf 文件来验证是否启用了功能门。
					
- 
							从 Web 控制台中的 Administrator 视角,进入到 Compute Nodes。 
- 选择一个节点。
- 在 Node 详情页面中,点 Terminal。
- 在终端窗口中,将根目录改为 - /host:- chroot /host - sh-4.2# chroot /host- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 查看 - kubelet.conf文件:- cat /etc/kubernetes/kubelet.conf - sh-4.2# cat /etc/kubernetes/kubelet.conf- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - ... ... - # ... featureGates: InsightsOperatorPullingSCA: true, LegacyNodeRoleBehavior: false # ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在集群中启用列为 - true的功能。注意- 列出的功能因 OpenShift Container Platform 版本的不同而有所不同。 
8.7.4. 使用 CLI 启用功能集
					您可以通过编辑 FeatureGate 自定义资源(CR)来使用 OpenShift CLI(oc)为集群中的所有节点启用功能集。
				
先决条件
- 
							已安装 OpenShift CLI(oc)。
流程
启用功能集:
- 编辑名为 - cluster的- FeatureGateCR:- oc edit featuregate cluster - $ oc edit featuregate cluster- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 警告- 在集群中启用 - TechPreviewNoUpgrade功能集无法撤消,并会阻止次版本更新。您不应该在生产环境集群中启用此功能。- FeatureGate 自定义资源示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 保存更改后,会创建新的机器配置,然后更新机器配置池,并在应用更改时在每个节点上调度。 
验证
						您可以在节点返回就绪状态后查看节点上的 kubelet.conf 文件来验证是否启用了功能门。
					
- 
							从 Web 控制台中的 Administrator 视角,进入到 Compute Nodes。 
- 选择一个节点。
- 在 Node 详情页面中,点 Terminal。
- 在终端窗口中,将根目录改为 - /host:- chroot /host - sh-4.2# chroot /host- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 查看 - kubelet.conf文件:- cat /etc/kubernetes/kubelet.conf - sh-4.2# cat /etc/kubernetes/kubelet.conf- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - ... ... - # ... featureGates: InsightsOperatorPullingSCA: true, LegacyNodeRoleBehavior: false # ...- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在集群中启用列为 - true的功能。注意- 列出的功能因 OpenShift Container Platform 版本的不同而有所不同。