特性门控

本页详述了管理员可以在不同的 Kubernetes 组件上指定的各种特性门控。

关于特性各个阶段的说明,请参见特性阶段

概述

特性门控是描述 Kubernetes 特性的一组键值对。你可以在 Kubernetes 的各个组件中使用 --feature-gates flag 来启用或禁用这些特性。

每个 Kubernetes 组件都支持启用或禁用与该组件相关的一组特性门控。 使用 -h 参数来查看所有组件支持的完整特性门控。 要为诸如 kubelet 之类的组件设置特性门控,请使用 --feature-gates 参数,并向其 传递一个特性设置键值对列表:

  1. --feature-gates="...,GracefulNodeShutdown=true"

下表总结了在不同的 Kubernetes 组件上可以设置的特性门控。

  • 引入特性或更改其发布阶段后,”开始(Since)” 列将包含 Kubernetes 版本。
  • “结束(Until)” 列(如果不为空)包含最后一个 Kubernetes 版本,你仍可以在其中使用特性门控。
  • 如果某个特性处于 Alpha 或 Beta 状态,你可以在 Alpha 和 Beta 特性门控表中找到该特性。
  • 如果某个特性处于稳定状态,你可以在 已毕业和废弃特性门控表 中找到该特性的所有阶段。
  • 已毕业和废弃特性门控表 还列出了废弃的和已被移除的特性。

Alpha 和 Beta 状态的特性门控

处于 Alpha 或 Beta 状态的特性门控
特性默认值状态开始(Since)结束(Until)
APIListChunkingfalseAlpha1.81.8
APIListChunkingtrueBeta1.9
APIPriorityAndFairnessfalseAlpha1.181.19
APIPriorityAndFairnesstrueBeta1.20
APIResponseCompressionfalseAlpha1.71.15
APIResponseCompressiontrueBeta1.16
APIServerIdentityfalseAlpha1.20
APIServerTracingfalseAlpha1.22
AllowInsecureBackendProxytrueBeta1.17
AnyVolumeDataSourcefalseAlpha1.18
AppArmortrueBeta1.4
ControllerManagerLeaderMigrationfalseAlpha1.211.21
ControllerManagerLeaderMigrationtrueBeta1.22
CPUManagerfalseAlpha1.81.9
CPUManagertrueBeta1.10
CPUManagerPolicyAlphaOptionsfalseAlpha1.23
CPUManagerPolicyBetaOptionstrueBeta1.23
CPUManagerPolicyOptionsfalseAlpha1.221.22
CPUManagerPolicyOptionstrueBeta1.23
CSIInlineVolumefalseAlpha1.151.15
CSIInlineVolumetrueBeta1.16-
CSIMigrationfalseAlpha1.141.16
CSIMigrationtrueBeta1.17
CSIMigrationAWSfalseAlpha1.141.16
CSIMigrationAWSfalseBeta1.171.22
CSIMigrationAWStrueBeta1.23
CSIMigrationAzureDiskfalseAlpha1.151.18
CSIMigrationAzureDiskfalseBeta1.191.22
CSIMigrationAzureDisktrueBeta1.23
CSIMigrationAzureFilefalseAlpha1.151.19
CSIMigrationAzureFilefalseBeta1.21
CSIMigrationGCEfalseAlpha1.141.16
CSIMigrationGCEfalseBeta1.171.22
CSIMigrationGCEtrueBeta1.23
CSIMigrationOpenStackfalseAlpha1.141.17
CSIMigrationOpenStacktrueBeta1.18
CSIMigrationvSpherefalseBeta1.19
CSIMigrationPortworxfalseAlpha1.23
csiMigrationRBDfalseAlpha1.23
CSIStorageCapacityfalseAlpha1.191.20
CSIStorageCapacitytrueBeta1.21
CSIVolumeHealthfalseAlpha1.21
CSRDurationtrueBeta1.22
ControllerManagerLeaderMigrationfalseAlpha1.211.21
ControllerManagerLeaderMigrationtrueBeta1.22
CustomCPUCFSQuotaPeriodfalseAlpha1.12
CustomResourceValidationExpressionsfalseAlpha1.23
DaemonSetUpdateSurgefalseAlpha1.211.21
DaemonSetUpdateSurgetrueBeta1.22
DefaultPodTopologySpreadfalseAlpha1.191.19
DefaultPodTopologySpreadtrueBeta1.20
DelegateFSGroupToCSIDriverfalseAlpha1.221.22
DelegateFSGroupToCSIDrivertrueBeta1.23
DevicePluginsfalseAlpha1.81.9
DevicePluginstrueBeta1.10
DisableAcceleratorUsageMetricsfalseAlpha1.191.19
DisableAcceleratorUsageMetricstrueBeta1.20
DisableCloudProvidersfalseAlpha1.22
DisableKubeletCloudCredentialProvidersfalseAlpha1.23
DownwardAPIHugePagesfalseAlpha1.201.20
DownwardAPIHugePagesfalseBeta1.21
EfficientWatchResumptionfalseAlpha1.201.20
EfficientWatchResumptiontrueBeta1.21
EndpointSliceTerminatingConditionfalseAlpha1.201.21
EndpointSliceTerminatingConditiontrueBeta1.22
EphemeralContainersfalseAlpha1.161.22
EphemeralContainerstrueBeta1.23
ExpandCSIVolumesfalseAlpha1.141.15
ExpandCSIVolumestrueBeta1.16
ExpandedDNSConfigfalseAlpha1.22
ExpandInUsePersistentVolumesfalseAlpha1.111.14
ExpandInUsePersistentVolumestrueBeta1.15
ExpandPersistentVolumesfalseAlpha1.81.10
ExpandPersistentVolumestrueBeta1.11
ExperimentalHostUserNamespaceDefaultingfalseBeta1.5
GracefulNodeShutdownfalseAlpha1.201.20
GracefulNodeShutdowntrueBeta1.21
GracefulNodeShutdownBasedOnPodPriorityfalseAlpha1.23
GRPCContainerProbefalseAlpha1.23
HonorPVReclaimPolicyfalseAlpha1.23
HPAContainerMetricsfalseAlpha1.20
HPAScaleToZerofalseAlpha1.16
IdentifyPodOSfalseAlpha1.23
IndexedJobfalseAlpha1.211.21
IndexedJobtrueBeta1.22
InTreePluginAWSUnregisterfalseAlpha1.21
InTreePluginAzureDiskUnregisterfalseAlpha1.21
InTreePluginAzureFileUnregisterfalseAlpha1.21
InTreePluginGCEUnregisterfalseAlpha1.21
InTreePluginOpenStackUnregisterfalseAlpha1.21
InTreePluginPortworxUnregisterfalseAlpha1.23
InTreePluginRBDUnregisterfalseAlpha1.23
InTreePluginvSphereUnregisterfalseAlpha1.21
JobMutableNodeSchedulingDirectivestrueBeta1.23
JobReadyPodsfalseAlpha1.23
JobTrackingWithFinalizersfalseAlpha1.221.22
JobTrackingWithFinalizerstrueBeta1.23
KubeletCredentialProvidersfalseAlpha1.20
KubeletInUserNamespacefalseAlpha1.22
KubeletPodResourcesfalseAlpha1.131.14
KubeletPodResourcestrueBeta1.15
KubeletPodResourcesGetAllocatablefalseAlpha1.211.22
KubeletPodResourcesGetAllocatablefalseBeta1.23
LocalStorageCapacityIsolationfalseAlpha1.71.9
LocalStorageCapacityIsolationtrueBeta1.10
LocalStorageCapacityIsolationFSQuotaMonitoringfalseAlpha1.15
LogarithmicScaleDownfalseAlpha1.211.21
LogarithmicScaleDowntrueBeta1.22
MemoryManagerfalseAlpha1.211.21
MemoryManagertrueBeta1.22
MemoryQoSfalseAlpha1.22
MixedProtocolLBServicefalseAlpha1.20
NetworkPolicyEndPortfalseAlpha1.211.21
NetworkPolicyEndPorttrueBeta1.22
NodeSwapfalseAlpha1.22
NonPreemptingPriorityfalseAlpha1.151.18
NonPreemptingPrioritytrueBeta1.19
OpenAPIEnumsfalseAlpha1.23
OpenAPIV3falseAlpha1.23
PodAndContainerStatsFromCRIfalseAlpha1.23
PodAffinityNamespaceSelectorfalseAlpha1.211.21
PodAffinityNamespaceSelectortrueBeta1.22
PodDeletionCostfalseAlpha1.211.21
PodDeletionCosttrueBeta1.22
PodOverheadfalseAlpha1.161.17
PodOverheadtrueBeta1.18
PodSecurityfalseAlpha1.221.22
PodSecuritytrueBeta1.23
PreferNominatedNodefalseAlpha1.211.21
PreferNominatedNodetrueBeta1.22
ProbeTerminationGracePeriodfalseAlpha1.211.21
ProbeTerminationGracePeriodfalseBeta1.22
ProcMountTypefalseAlpha1.12
ProxyTerminatingEndpointsfalseAlpha1.22
QOSReservedfalseAlpha1.11
ReadWriteOncePodfalseAlpha1.22
RecoverVolumeExpansionFailurefalseAlpha1.23
RemainingItemCountfalseAlpha1.151.15
RemainingItemCounttrueBeta1.16
RemoveSelfLinkfalseAlpha1.161.19
RemoveSelfLinktrueBeta1.20
RotateKubeletServerCertificatefalseAlpha1.71.11
RotateKubeletServerCertificatetrueBeta1.12
SeccompDefaultfalseAlpha1.22
ServiceInternalTrafficPolicyfalseAlpha1.211.21
ServiceInternalTrafficPolicytrueBeta1.22
ServiceLBNodePortControlfalseAlpha1.201.21
ServiceLBNodePortControltrueBeta1.22
ServiceLoadBalancerClassfalseAlpha1.211.21
ServiceLoadBalancerClasstrueBeta1.22
SizeMemoryBackedVolumesfalseAlpha1.201.21
SizeMemoryBackedVolumestrueBeta1.22
StatefulSetAutoDeletePVCfalseAlpha1.22
StatefulSetMinReadySecondsfalseAlpha1.221.22
StatefulSetMinReadySecondstrueBeta1.23
StorageVersionAPIfalseAlpha1.20
StorageVersionHashfalseAlpha1.141.14
StorageVersionHashtrueBeta1.15
SuspendJobfalseAlpha1.211.21
SuspendJobtrueBeta1.22
TopologyAwareHintsfalseAlpha1.211.22
TopologyAwareHintsfalseBeta1.23
TopologyManagerfalseAlpha1.161.17
TopologyManagertrueBeta1.18
VolumeCapacityPriorityfalseAlpha1.21-
WinDSRfalseAlpha1.14
WinOverlayfalseAlpha1.141.19
WinOverlaytrueBeta1.20
WindowsHostProcessContainersfalseAlpha1.221.22
WindowsHostProcessContainersfalseBeta1.23

已毕业和已废弃的特性门控

已毕业或不推荐使用的特性门控
特性默认值状态开始(Since)结束(Until)
AcceleratorsfalseAlpha1.61.10
Accelerators-Deprecated1.11-
AdvancedAuditingfalseAlpha1.71.7
AdvancedAuditingtrueBeta1.81.11
AdvancedAuditingtrueGA1.12-
AffinityInAnnotationsfalseAlpha1.61.7
AffinityInAnnotations-Deprecated1.8-
AllowExtTrafficLocalEndpointsfalseBeta1.41.6
AllowExtTrafficLocalEndpointstrueGA1.7-
AttachVolumeLimitfalseAlpha1.111.11
AttachVolumeLimittrueBeta1.121.16
AttachVolumeLimittrueGA1.17-
BalanceAttachedNodeVolumesfalseAlpha1.111.21
BalanceAttachedNodeVolumesfalseDeprecated1.22
BlockVolumefalseAlpha1.91.12
BlockVolumetrueBeta1.131.17
BlockVolumetrueGA1.18-
BoundServiceAccountTokenVolumefalseAlpha1.131.20
BoundServiceAccountTokenVolumetrueBeta1.211.21
BoundServiceAccountTokenVolumetrueGA1.22-
ConfigurableFSGroupPolicyfalseAlpha1.181.19
ConfigurableFSGroupPolicytrueBeta1.201.22
ConfigurableFSGroupPolicytrueGA1.23
CRIContainerLogRotationfalseAlpha1.101.10
CRIContainerLogRotationtrueBeta1.111.20
CRIContainerLogRotationtrueGA1.21-
CSIBlockVolumefalseAlpha1.111.13
CSIBlockVolumetrueBeta1.141.17
CSIBlockVolumetrueGA1.18-
CSIDriverRegistryfalseAlpha1.121.13
CSIDriverRegistrytrueBeta1.141.17
CSIDriverRegistrytrueGA1.18
CSIMigrationAWSCompletefalseAlpha1.171.20
CSIMigrationAWSComplete-Deprecated1.21-
CSIMigrationAzureDiskCompletefalseAlpha1.171.20
CSIMigrationAzureDiskComplete-Deprecated1.21-
CSIMigrationAzureFileCompletefalseAlpha1.171.20
CSIMigrationAzureFileComplete-Deprecated1.21-
CSIMigrationGCECompletefalseAlpha1.171.20
CSIMigrationGCEComplete-Deprecated1.21-
CSIMigrationOpenStackCompletefalseAlpha1.171.20
CSIMigrationOpenStackComplete-Deprecated1.21-
CSIMigrationvSphereCompletefalseBeta1.191.21
CSIMigrationvSphereComplete-Deprecated1.22-
CSINodeInfofalseAlpha1.121.13
CSINodeInfotrueBeta1.141.16
CSINodeInfotrueGA1.17
CSIPersistentVolumefalseAlpha1.91.9
CSIPersistentVolumetrueBeta1.101.12
CSIPersistentVolumetrueGA1.13-
CSIServiceAccountTokenfalseAlpha1.201.20
CSIServiceAccountTokentrueBeta1.211.21
CSIServiceAccountTokentrueGA1.22
CSIVolumeFSGroupPolicyfalseAlpha1.191.19
CSIVolumeFSGroupPolicytrueBeta1.201.22
CSIVolumeFSGroupPolicytrueGA1.23
CronJobControllerV2falseAlpha1.201.20
CronJobControllerV2trueBeta1.211.21
CronJobControllerV2trueGA1.22-
CustomPodDNSfalseAlpha1.91.9
CustomPodDNStrueBeta1.101.13
CustomPodDNStrueGA1.14-
CustomResourceDefaultingfalseAlpha1.151.15
CustomResourceDefaultingtrueBeta1.161.16
CustomResourceDefaultingtrueGA1.17-
CustomResourcePublishOpenAPIfalseAlpha1.141.14
CustomResourcePublishOpenAPItrueBeta1.151.15
CustomResourcePublishOpenAPItrueGA1.16-
CustomResourceSubresourcesfalseAlpha1.101.10
CustomResourceSubresourcestrueBeta1.111.15
CustomResourceSubresourcestrueGA1.16-
CustomResourceValidationfalseAlpha1.81.8
CustomResourceValidationtrueBeta1.91.15
CustomResourceValidationtrueGA1.16-
CustomResourceWebhookConversionfalseAlpha1.131.14
CustomResourceWebhookConversiontrueBeta1.151.15
CustomResourceWebhookConversiontrueGA1.16-
DryRunfalseAlpha1.121.12
DryRuntrueBeta1.131.18
DryRuntrueGA1.19-
DynamicAuditingfalseAlpha1.131.18
DynamicAuditing-Deprecated1.19-
DynamicKubeletConfigfalseAlpha1.41.10
DynamicKubeletConfigtrueBeta1.111.21
DynamicKubeletConfigfalseDeprecated1.22-
DynamicProvisioningSchedulingfalseAlpha1.111.11
DynamicProvisioningScheduling-Deprecated1.12-
DynamicVolumeProvisioningtrueAlpha1.31.7
DynamicVolumeProvisioningtrueGA1.8-
EnableAggregatedDiscoveryTimeouttrueDeprecated1.16-
EnableEquivalenceClassCachefalseAlpha1.81.14
EnableEquivalenceClassCache-Deprecated1.15-
EndpointSlicefalseAlpha1.161.16
EndpointSlicefalseBeta1.171.17
EndpointSlicetrueBeta1.181.20
EndpointSlicetrueGA1.21-
EndpointSliceNodeNamefalseAlpha1.201.20
EndpointSliceNodeNametrueGA1.21-
EndpointSliceProxyingfalseAlpha1.181.18
EndpointSliceProxyingtrueBeta1.191.21
EndpointSliceProxyingtrueGA1.22-
EvenPodsSpreadfalseAlpha1.161.17
EvenPodsSpreadtrueBeta1.181.18
EvenPodsSpreadtrueGA1.19-
ExecProbeTimeouttrueGA1.20-
ExperimentalCriticalPodAnnotationfalseAlpha1.51.12
ExperimentalCriticalPodAnnotationfalseDeprecated1.13-
ExternalPolicyForExternalIPtrueGA1.18-
GCERegionalPersistentDisktrueBeta1.101.12
GCERegionalPersistentDisktrueGA1.13-
GenericEphemeralVolumefalseAlpha1.191.20
GenericEphemeralVolumetrueBeta1.211.22
GenericEphemeralVolumetrueGA1.23-
HugePageStorageMediumSizefalseAlpha1.181.18
HugePageStorageMediumSizetrueBeta1.191.21
HugePageStorageMediumSizetrueGA1.22-
HugePagesfalseAlpha1.81.9
HugePagestrueBeta1.101.13
HugePagestrueGA1.14-
HyperVContainerfalseAlpha1.101.19
HyperVContainerfalseDeprecated1.20-
ImmutableEphemeralVolumesfalseAlpha1.181.18
ImmutableEphemeralVolumestrueBeta1.191.20
ImmutableEphemeralVolumestrueGA1.21
IngressClassNamespacedParamsfalseAlpha1.211.21
IngressClassNamespacedParamstrueBeta1.221.22
IngressClassNamespacedParamstrueGA1.23-
InitializersfalseAlpha1.71.13
Initializers-Deprecated1.14-
IPv6DualStackfalseAlpha1.151.20
IPv6DualStacktrueBeta1.211.22
IPv6DualStacktrueGA1.23-
KubeletConfigFilefalseAlpha1.81.9
KubeletConfigFile-Deprecated1.10-
KubeletPluginsWatcherfalseAlpha1.111.11
KubeletPluginsWatchertrueBeta1.121.12
KubeletPluginsWatchertrueGA1.13-
LegacyNodeRoleBehaviorfalseAlpha1.161.18
LegacyNodeRoleBehaviortrueBeta1.191.20
LegacyNodeRoleBehaviorfalseGA1.21-
MountContainersfalseAlpha1.91.16
MountContainersfalseDeprecated1.17-
MountPropagationfalseAlpha1.81.9
MountPropagationtrueBeta1.101.11
MountPropagationtrueGA1.12-
NodeDisruptionExclusionfalseAlpha1.161.18
NodeDisruptionExclusiontrueBeta1.191.20
NodeDisruptionExclusiontrueGA1.21-
NodeLeasefalseAlpha1.121.13
NodeLeasetrueBeta1.141.16
NodeLeasetrueGA1.17-
NamespaceDefaultLabelNametrueBeta1.211.21
NamespaceDefaultLabelNametrueGA1.22-
PVCProtectionfalseAlpha1.91.9
PVCProtection-Deprecated1.10-
PersistentLocalVolumesfalseAlpha1.71.9
PersistentLocalVolumestrueBeta1.101.13
PersistentLocalVolumestrueGA1.14-
PodDisruptionBudgetfalseAlpha1.31.4
PodDisruptionBudgettrueBeta1.51.20
PodDisruptionBudgettrueGA1.21-
PodPriorityfalseAlpha1.81.10
PodPrioritytrueBeta1.111.13
PodPrioritytrueGA1.14-
PodReadinessGatesfalseAlpha1.111.11
PodReadinessGatestrueBeta1.121.13
PodReadinessGatestrueGA1.14-
PodShareProcessNamespacefalseAlpha1.101.11
PodShareProcessNamespacetrueBeta1.121.16
PodShareProcessNamespacetrueGA1.17-
RequestManagementfalseAlpha1.151.16
RequestManagement-Deprecated1.17-
ResourceLimitsPriorityFunctionfalseAlpha1.91.18
ResourceLimitsPriorityFunction-Deprecated1.19-
ResourceQuotaScopeSelectorsfalseAlpha1.111.11
ResourceQuotaScopeSelectorstrueBeta1.121.16
ResourceQuotaScopeSelectorstrueGA1.17-
RootCAConfigMapfalseAlpha1.131.19
RootCAConfigMaptrueBeta1.201.20
RootCAConfigMaptrueGA1.21-
RotateKubeletClientCertificatetrueBeta1.81.18
RotateKubeletClientCertificatetrueGA1.19-
RunAsGrouptrueBeta1.141.20
RunAsGrouptrueGA1.21-
RuntimeClassfalseAlpha1.121.13
RuntimeClasstrueBeta1.141.19
RuntimeClasstrueGA1.20-
SCTPSupportfalseAlpha1.121.18
SCTPSupporttrueBeta1.191.19
SCTPSupporttrueGA1.20-
ScheduleDaemonSetPodsfalseAlpha1.111.11
ScheduleDaemonSetPodstrueBeta1.121.16
ScheduleDaemonSetPodstrueGA1.17-
SelectorIndexfalseAlpha1.181.18
SelectorIndextrueBeta1.191.19
SelectorIndextrueGA1.20-
ServerSideApplyfalseAlpha1.141.15
ServerSideApplytrueBeta1.161.21
ServerSideApplytrueGA1.22-
ServerSideFieldValidationfalseAlpha1.23-
ServiceAccountIssuerDiscoveryfalseAlpha1.181.19
ServiceAccountIssuerDiscoverytrueBeta1.201.20
ServiceAccountIssuerDiscoverytrueGA1.21-
ServiceAppProtocolfalseAlpha1.181.18
ServiceAppProtocoltrueBeta1.191.19
ServiceAppProtocoltrueGA1.20-
ServiceLoadBalancerFinalizerfalseAlpha1.151.15
ServiceLoadBalancerFinalizertrueBeta1.161.16
ServiceLoadBalancerFinalizertrueGA1.17-
ServiceNodeExclusionfalseAlpha1.81.18
ServiceNodeExclusiontrueBeta1.191.20
ServiceNodeExclusiontrueGA1.21-
ServiceTopologyfalseAlpha1.171.19
ServiceTopologyfalseDeprecated1.20-
SetHostnameAsFQDNfalseAlpha1.191.19
SetHostnameAsFQDNtrueBeta1.201.21
SetHostnameAsFQDNtrueGA1.22-
StartupProbefalseAlpha1.161.17
StartupProbetrueBeta1.181.19
StartupProbetrueGA1.20-
StorageObjectInUseProtectiontrueBeta1.101.10
StorageObjectInUseProtectiontrueGA1.11-
StreamingProxyRedirectsfalseBeta1.51.5
StreamingProxyRedirectstrueBeta1.61.17
StreamingProxyRedirectstrueDeprecated1.181.21
StreamingProxyRedirectsfalseDeprecated1.22-
SupportIPVSProxyModefalseAlpha1.81.8
SupportIPVSProxyModefalseBeta1.91.9
SupportIPVSProxyModetrueBeta1.101.10
SupportIPVSProxyModetrueGA1.11-
SupportNodePidsLimitfalseAlpha1.141.14
SupportNodePidsLimittrueBeta1.151.19
SupportNodePidsLimittrueGA1.20-
SupportPodPidsLimitfalseAlpha1.101.13
SupportPodPidsLimittrueBeta1.141.19
SupportPodPidsLimittrueGA1.20-
SysctlstrueBeta1.111.20
SysctlstrueGA1.21
TTLAfterFinishedfalseAlpha1.121.20
TTLAfterFinishedtrueBeta1.211.22
TTLAfterFinishedtrueGA1.23-
TaintBasedEvictionsfalseAlpha1.61.12
TaintBasedEvictionstrueBeta1.131.17
TaintBasedEvictionstrueGA1.18-
TaintNodesByConditionfalseAlpha1.81.11
TaintNodesByConditiontrueBeta1.121.16
TaintNodesByConditiontrueGA1.17-
TokenRequestfalseAlpha1.101.11
TokenRequesttrueBeta1.121.19
TokenRequesttrueGA1.20-
TokenRequestProjectionfalseAlpha1.111.11
TokenRequestProjectiontrueBeta1.121.19
TokenRequestProjectiontrueGA1.20-
ValidateProxyRedirectsfalseAlpha1.121.13
ValidateProxyRedirectstrueBeta1.141.21
ValidateProxyRedirectstrueDeprecated1.22-
VolumePVCDataSourcefalseAlpha1.151.15
VolumePVCDataSourcetrueBeta1.161.17
VolumePVCDataSourcetrueGA1.18-
VolumeSchedulingfalseAlpha1.91.9
VolumeSchedulingtrueBeta1.101.12
VolumeSchedulingtrueGA1.13-
VolumeSnapshotDataSourcefalseAlpha1.121.16
VolumeSnapshotDataSourcetrueBeta1.171.19
VolumeSnapshotDataSourcetrueGA1.20-
VolumeSubpathtrueGA1.10-
VolumeSubpathEnvExpansionfalseAlpha1.141.14
VolumeSubpathEnvExpansiontrueBeta1.151.16
VolumeSubpathEnvExpansiontrueGA1.17-
WarningHeaderstrueBeta1.191.21
WarningHeaderstrueGA1.22-
WatchBookmarkfalseAlpha1.151.15
WatchBookmarktrueBeta1.161.16
WatchBookmarktrueGA1.17-
WindowsEndpointSliceProxyingfalseAlpha1.191.20
WindowsEndpointSliceProxyingtrueBeta1.211.21
WindowsEndpointSliceProxyingtrueGA1.22-
WindowsGMSAfalseAlpha1.141.15
WindowsGMSAtrueBeta1.161.17
WindowsGMSAtrueGA1.18-
WindowsRunAsUserNamefalseAlpha1.161.16
WindowsRunAsUserNametrueBeta1.171.17
WindowsRunAsUserNametrueGA1.18-

使用特性

特性阶段

处于 AlphaBetaGA 阶段的特性。

Alpha 特性代表:

  • 默认禁用。
  • 可能有错误,启用此特性可能会导致错误。
  • 随时可能删除对此特性的支持,恕不另行通知。
  • 在以后的软件版本中,API 可能会以不兼容的方式更改,恕不另行通知。
  • 建议将其仅用于短期测试中,因为开启特性会增加错误的风险,并且缺乏长期支持。

Beta 特性代表:

  • 默认启用。
  • 该特性已经经过良好测试。启用该特性是安全的。
  • 尽管详细信息可能会更改,但不会放弃对整体特性的支持。
  • 对象的架构或语义可能会在随后的 Beta 或稳定版本中以不兼容的方式更改。当发生这种情况时,我们将提供迁移到下一版本的说明。此特性可能需要删除、编辑和重新创建 API 对象。编辑过程可能需要慎重操作,因为这可能会导致依赖该特性的应用程序停机。
  • 推荐仅用于非关键业务用途,因为在后续版本中可能会发生不兼容的更改。如果你具有多个可以独立升级的,则可以放宽此限制。

Note:

请试用 Beta 特性并提供相关反馈! 一旦特性结束 Beta 状态,我们就不太可能再对特性进行大幅修改。

General Availability (GA) 特性也称为 稳定 特性,GA 特性代表着:

  • 此特性会一直启用;你不能禁用它。
  • 不再需要相应的特性门控。
  • 对于许多后续版本,特性的稳定版本将出现在发行的软件中。

特性门控列表

每个特性门控均用于启用或禁用某个特定的特性:

  • APIListChunking:启用 API 客户端以块的形式从 API 服务器检索(“LIST” 或 “GET”)资源。
  • APIPriorityAndFairness: 在每个服务器上启用优先级和公平性来管理请求并发。(由 RequestManagement 重命名而来)
  • APIResponseCompression:压缩 “LIST” 或 “GET” 请求的 API 响应。
  • APIServerIdentity:为集群中的每个 API 服务器赋予一个 ID。
  • APIServerTracing: 为集群中的每个 API 服务器添加对分布式跟踪的支持。

  • Accelerators:使用 Docker Engine 时启用 Nvidia GPU 支持。这一特性不再提供。 关于替代方案,请参阅设备插件

  • AdvancedAuditing:启用高级审计功能
  • AffinityInAnnotations:启用 Pod 亲和或反亲和
  • AllowExtTrafficLocalEndpoints:启用服务用于将外部请求路由到节点本地终端。
  • AllowInsecureBackendProxy:允许用户在执行 Pod 日志访问请求时跳过 TLS 验证。
  • AnyVolumeDataSource: 允许使用任何自定义的资源来做作为 PVC 中的 DataSource.
  • AppArmor:在 Linux 节点上为 Pod 启用基于 AppArmor 机制的强制访问控制。 请参见 AppArmor 教程 获取详细信息。

  • AttachVolumeLimit:启用卷插件用于报告可连接到节点的卷数限制。有关更多详细信息,请参阅 动态卷限制

  • BalanceAttachedNodeVolumes:在进行平衡资源分配的调度时,考虑节点上的卷数。 调度器在决策时会优先考虑 CPU、内存利用率和卷数更近的节点。
  • BlockVolume:在 Pod 中启用原始块设备的定义和使用。有关更多详细信息,请参见 原始块卷支持
  • BoundServiceAccountTokenVolume:迁移 ServiceAccount 卷以使用由 ServiceAccountTokenVolumeProjection 组成的投射卷。集群管理员可以使用 serviceaccount_stale_tokens_total 度量值来监控依赖于扩展令牌的负载。 如果没有这种类型的负载,你可以在启动 kube-apiserver 时添加 --service-account-extend-token-expiration=false 参数关闭扩展令牌。查看 绑定服务账号令牌 获取更多详细信息。
  • ControllerManagerLeaderMigration: 为 kube-controller-managercloud-controller-manager 启用 Leader 迁移,它允许集群管理者在没有停机的高可用集群环境下,实时 把 kube-controller-manager 迁移迁移到外部的 controller-manager (例如 cloud-controller-manager) 中。

  • CPUManager:启用容器级别的 CPU 亲和性支持,有关更多详细信息,请参见 CPU 管理策略

  • CPUManagerPolicyAlphaOptions:允许对 CPUManager 策略进行微调,针对试验性的、 alpha 质量级别的选项。 此特性门控用来保护一组质量级别为 alpha 的 CPUManager 选项。 此特性门控永远不会被升级为 beta 或者稳定版本。
  • CPUManagerPolicyBetaOptions:允许对 CPUManager 策略进行微调,针对试验性的、 beta 质量级别的选项。 此特性门控用来保护一组质量级别为 beta 的 CPUManager 选项。 此特性门控永远不会被升级为稳定版本。
  • CPUManagerPolicyOptions: 允许微调 CPU 管理策略。

  • CRIContainerLogRotation:为 CRI 容器运行时启用容器日志轮换。日志文件的默认最大大小为 10MB,缺省情况下,一个容器允许的最大日志文件数为5。这些值可以在kubelet配置中配置。 更多细节请参见 日志架构

  • CSIBlockVolume:启用外部 CSI 卷驱动程序用于支持块存储。有关更多详细信息,请参见 csi 原始块卷支持
  • CSIDriverRegistry:在 csi.storage.k8s.io 中启用与 CSIDriver API 对象有关的所有逻辑。
  • CSIInlineVolume:为 Pod 启用 CSI 内联卷支持。
  • CSIMigration:确保封装和转换逻辑能够将卷操作从内嵌插件路由到相应的预安装 CSI 插件。

  • CSIMigrationAWS:确保填充和转换逻辑能够将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 如果节点禁用了此特性门控或者未安装和配置 EBS CSI 插件,支持回退到内嵌 EBS 插件 来执行卷挂载操作。不支持回退到这些插件来执行卷制备操作,因为需要安装并配置 CSI 插件。

  • CSIMigrationAWSComplete:停止在 kubelet 和卷控制器中注册 EBS 内嵌插件, 并启用填充和转换逻辑将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAWS 特性标志,并在集群中的所有节点上安装和配置 EBS CSI 插件。该特性标志已被废弃,取而代之的是 InTreePluginAWSUnregister , 后者会阻止注册 EBS 内嵌插件。

  • CSIMigrationAzureDisk:确保填充和转换逻辑能够将卷操作从 AzureDisk 内嵌插件路由到 Azure 磁盘 CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureDisk CSI 插件的节点,支持回退到内嵌(in-tree)AzureDisk 插件来执行磁盘挂载操作。 不支持回退到内嵌插件来执行磁盘制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。

  • CSIMigrationAzureDiskComplete:停止在 kubelet 和卷控制器中注册 Azure 磁盘内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 Azure 磁盘内嵌插件路由到 AzureDisk CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureDisk 特性标志, 并在集群中的所有节点上安装和配置 AzureDisk CSI 插件。该特性标志已被废弃,取而代之的是 能防止注册内嵌 AzureDisk 插件的 InTreePluginAzureDiskUnregister 特性标志。

  • CSIMigrationAzureFile:确保封装和转换逻辑能够将卷操作从 AzureFile 内嵌插件路由到 AzureFile CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureFile CSI 插件的节点,支持回退到内嵌(in-tree)AzureFile 插件来执行卷挂载操作。 不支持回退到内嵌插件来执行卷制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。

  • CSIMigrationAzureFileComplete:停止在 kubelet 和卷控制器中注册 Azure-File 内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 Azure-File 内嵌插件路由到 AzureFile CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureFile 特性标志, 并在集群中的所有节点上安装和配置 AzureFile CSI 插件。该特性标志已被废弃,取而代之的是 能防止注册内嵌 AzureDisk 插件的 InTreePluginAzureFileUnregister 特性标志。

  • CSIMigrationGCE:启用填充和转换逻辑,将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。对于禁用了此特性的节点或者没有安装并配置 PD CSI 插件的节点, 支持回退到内嵌(in-tree)GCE 插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。

  • CSIMigrationGCEComplete:停止在 kubelet 和卷控制器中注册 GCE-PD 内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationGCE 特性标志,并在集群中的所有节点上 安装和配置 PD CSI 插件。该特性标志已被废弃,取而代之的是 能防止注册内嵌 GCE PD 插件的 InTreePluginGCEUnregister 特性标志。

  • csiMigrationRBD:启用填充和转换逻辑,将卷操作从 RBD 的内嵌插件路由到 Ceph RBD CSI 插件。此特性要求 CSIMigration 和 csiMigrationRBD 特性标志均被启用, 且集群中安装并配置了 Ceph CSI 插件。此标志已被弃用,以鼓励使用 InTreePluginRBDUnregister 特性标志。后者会禁止注册内嵌的 RBD 插件。

  • CSIMigrationOpenStack:确保填充和转换逻辑能够将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。对于禁用了此特性的节点或者没有安装并配置 Cinder CSI 插件的节点, 支持回退到内嵌(in-tree)Cinder 插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此磁特性需要启用 CSIMigration 特性标志。

  • CSIMigrationOpenStackComplete:停止在 kubelet 和卷控制器中注册 Cinder 内嵌插件, 并启用填充和转换逻辑将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationOpenStack 特性标志,并在集群中的所有节点上 安装和配置 Cinder CSI 插件。该特性标志已被弃用,取而代之的是 能防止注册内嵌 OpenStack Cinder 插件的 InTreePluginOpenStackUnregister 特性标志。

  • CSIMigrationvSphere: 允许封装和转换逻辑将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。如果节点禁用了此特性门控或者未安装和配置 vSphere CSI 插件, 则支持回退到 vSphere 内嵌插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 这需要启用 CSIMigration 特性标志。

  • CSIMigrationvSphereComplete: 停止在 kubelet 和卷控制器中注册 vSphere 内嵌插件, 并启用填充和转换逻辑以将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationvSphere 特性标志,并在集群中的所有节点上 安装和配置 vSphere CSI 插件。该特性标志已被废弃,取而代之的是 能防止注册内嵌 vsphere 插件的 InTreePluginvSphereUnregister 特性标志。

  • CSIMigrationPortworx:启用填充和转换逻辑,将卷操作从 Portworx 内嵌插件路由到 Portworx CSI 插件。需要在集群中安装并配置 Portworx CSI 插件,并针对 kube-controller-manager 和 kubelet 配置启用特性门控 CSIMigrationPortworx=true

  • CSINodeInfo:在 csi.storage.k8s.io 中启用与 CSINodeInfo API 对象有关的所有逻辑。

  • CSIPersistentVolume:启用发现和挂载通过 CSI(容器存储接口) 兼容卷插件配置的卷。
  • CSIServiceAccountToken: 允许 CSI 驱动接收挂载卷目标 Pods 的服务账户令牌。 参阅令牌请求(Token Requests)
  • CSIStorageCapacity: 使 CSI 驱动程序可以发布存储容量信息,并使 Kubernetes 调度程序在调度 Pod 时使用该信息。参见 存储容量。 详情请参见 csi 卷类型

  • CSIVolumeFSGroupPolicy:允许 CSIDrivers 使用 fsGroupPolicy 字段. 该字段能控制由 CSIDriver 创建的卷在挂载这些卷时是否支持卷所有权和权限修改。

  • CSIVolumeHealth:启用对节点上的 CSI volume 运行状况监控的支持
  • CSRDuration:允许客户端来通过请求 Kubernetes CSR API 签署的证书的持续时间。
  • ConfigurableFSGroupPolicy:在 Pod 中挂载卷时,允许用户为 fsGroup 配置卷访问权限和属主变更策略。请参见 为 Pod 配置卷访问权限和属主变更策略
  • ControllerManagerLeaderMigration:为 kube-controller-managercloud-controller-manager 开启领导者迁移功能。
  • CronJobControllerV2:使用 CronJob 控制器的一种替代实现。否则,系统会选择同一控制器的 v1 版本。

  • CustomCPUCFSQuotaPeriod:使节点能够更改 kubelet 配置 中的 cpuCFSQuotaPeriod

  • CustomResourceValidationExpressions:启用 CRD 中的表达式语言合法性检查, 基于 x-kubernetes-validations 扩展中所书写的合法性检查规则来验证定制资源。
  • CustomPodDNS:允许使用 Pod 的 dnsConfig 属性自定义其 DNS 设置。 更多详细信息,请参见 Pod 的 DNS 配置

  • CustomResourceDefaulting:为 CRD 启用在其 OpenAPI v3 验证模式中提供默认值的支持。

  • CustomResourcePublishOpenAPI:启用 CRD OpenAPI 规范的发布。
  • CustomResourceSubresources:对于用 CustomResourceDefinition 创建的资源启用其 /status/scale 子资源。
  • CustomResourceValidation:对于用 CustomResourceDefinition 创建的资源启用基于模式的验证。
  • CustomResourceWebhookConversion:对于用 CustomResourceDefinition 创建的资源启用基于 Webhook 的转换。
  • DaemonSetUpdateSurge: 使 DaemonSet 工作负载在每个节点的更新期间保持可用性。 参阅对 DaemonSet 执行滚动更新

  • DefaultPodTopologySpread: 启用 PodTopologySpread 调度插件来完成 默认的调度传播.

  • DelegateFSGroupToCSIDriver: 如果 CSI 驱动程序支持,则通过 NodeStageVolume 和 NodePublishVolume CSI 调用传递 fsGroup ,将应用 fsGroup 从 Pod 的 securityContext 的角色委托给驱动。
  • DevicePlugins:在节点上启用基于 设备插件 的资源制备。
  • DisableAcceleratorUsageMetrics禁用 kubelet 收集加速器指标.

  • DisableCloudProviders: 禁用 kube-apiserverkube-controller-managerkubelet 组件的 --cloud-provider 标志相关的所有功能。

  • DisableKubeletCloudCredentialProviders:禁用 kubelet 中为拉取镜像内置的凭据机制, 该凭据用于向某云提供商的容器镜像仓库执行身份认证。
  • DownwardAPIHugePages:允许在 下行(Downward)API 中使用巨页信息。
  • DryRun:启用在服务器端对请求进行 试运行(Dry Run), 以便测试验证、合并和修改,同时避免提交更改。
  • DynamicAuditing:在 v1.19 版本前用于启用动态审计。

  • DynamicKubeletConfig:启用 kubelet 的动态配置。请参阅 重新配置 kubelet

  • DynamicProvisioningScheduling:扩展默认调度器以了解卷拓扑并处理 PV 配置。 此特性已在 v1.12 中完全被 VolumeScheduling 特性取代。
  • DynamicVolumeProvisioning:启用持久化卷到 Pod 的动态预配置
  • EfficientWatchResumption:允许从存储发起的 bookmark(进度通知)事件被通知到用户。 此特性仅适用于 watch 操作。
  • EnableAggregatedDiscoveryTimeout:对聚集的发现调用启用五秒钟超时设置。

  • EnableEquivalenceClassCache:调度 Pod 时,使 scheduler 缓存节点的等效项。

  • EndpointSlice:启用 EndpointSlice 以实现可扩缩性和可扩展性更好的网络端点。 参阅启用 EndpointSlice
  • EndpointSliceNodeName:允许使用 EndpointSlice 的 nodeName 字段。
  • EndpointSliceProxying:启用此特性门控时,Linux 上运行的 kube-proxy 会使用 EndpointSlices 而不是 Endpoints 作为其主要数据源,从而使得可扩缩性和性能提升成为可能。 参阅启用 EndpointSlice
  • EndpointSliceTerminatingCondition:允许使用 EndpointSlice 的 terminatingserving 状况字段。

  • EphemeralContainers:启用添加 临时容器 到正在运行的 Pod 的特性。

  • EvenPodsSpread:使 Pod 能够在拓扑域之间平衡调度。请参阅 Pod 拓扑扩展约束
  • ExecProbeTimeout:确保 kubelet 会遵从 exec 探针的超时值设置。 此特性门控的主要目的是方便你处理现有的、依赖于已被修复的缺陷的工作负载; 该缺陷导致 Kubernetes 会忽略 exec 探针的超时值设置。 参阅就绪态探针.

  • ExpandCSIVolumes: 启用扩展 CSI 卷。

  • ExpandedDNSConfig: 在 kubelet 和 kube-apiserver 上启用后, 允许使用更多的 DNS 搜索域和搜索域列表。此功能特性需要容器运行时 (Containerd:v1.5.6 或更高,CRI-O:v1.22 或更高)的支持。参阅 扩展 DNS 配置.
  • ExpandInUsePersistentVolumes:启用扩充使用中的 PVC 的尺寸。请查阅 调整使用中的 PersistentVolumeClaim 的大小
  • ExpandPersistentVolumes:允许扩充持久卷。请查阅 扩展持久卷申领
  • ExperimentalCriticalPodAnnotation:启用将特定 Pod 注解为 critical 的方式,用于 确保其被调度。 从 v1.13 开始已弃用此特性,转而使用 Pod 优先级和抢占功能。

  • ExperimentalHostUserNamespaceDefaulting:启用主机默认的用户名字空间。 这适用于使用其他主机名字空间、主机安装的容器,或具有特权或使用特定的非名字空间功能 (例如 MKNODE、SYS_MODULE 等)的容器。 如果在 Docker 守护程序中启用了用户名字空间重新映射,则启用此选项。

  • ExternalPolicyForExternalIP: 修复 ExternalPolicyForExternalIP 没有应用于 Service ExternalIPs 的缺陷。
  • GCERegionalPersistentDisk:在 GCE 上启用带地理区域信息的 PD 特性。
  • GenericEphemeralVolume:启用支持临时的内联卷,这些卷支持普通卷 (可以由第三方存储供应商提供、存储容量跟踪、从快照还原等等)的所有功能。 请参见临时卷
  • GracefulNodeShutdown:在 kubelet 中启用体面地关闭节点的支持。 在系统关闭时,kubelet 会尝试监测该事件并体面地终止节点上运行的 Pods。 参阅体面地关闭节点 以了解更多细节。

  • GracefulNodeShutdownBasedOnPodPriority:允许 kubelet 在体面终止节点时检查 Pod 的优先级。

  • GRPCContainerProbe:为 LivenessProbe、ReadinessProbe、StartupProbe 启用 gRPC 探针。 参阅配置活跃态、就绪态和启动探针
  • HonorPVReclaimPolicy:无论 PV 和 PVC 的删除顺序如何,当持久卷申领的策略为 Delete 时,确保这种策略得到处理。

  • HPAContainerMetrics:允许 HorizontalPodAutoscaler 基于目标 Pods 中各容器 的度量值来执行扩缩操作。

  • HPAScaleToZero:使用自定义指标或外部指标时,可将 HorizontalPodAutoscaler 资源的 minReplicas 设置为 0。
  • HugePages:启用分配和使用预分配的 巨页资源
  • HugePageStorageMediumSize:启用支持多种大小的预分配 巨页资源
  • HyperVContainer:为 Windows 容器启用 Hyper-V 隔离

  • IdentifyPodOS:允许设置 Pod 的 OS 字段。这一设置有助于在 API 服务器准入期间确定性地辨识 Pod 的 OS。在 Kubernetes 1.23 中,pod.spec.os.name 可选的值包括 windowslinux

  • ImmutableEphemeralVolumes:允许将各个 Secret 和 ConfigMap 标记为不可变更的, 以提高安全性和性能。
  • InTreePluginAWSUnregister: 在 kubelet 和卷控制器上关闭注册 aws-ebs 内嵌插件。
  • InTreePluginAzureDiskUnregister: 在 kubelet 和卷控制器上关闭注册 azuredisk 内嵌插件。
  • InTreePluginAzureFileUnregister: 在 kubelet 和卷控制器上关闭注册 azurefile 内嵌插件。

  • InTreePluginGCEUnregister: 在 kubelet 和卷控制器上关闭注册 gce-pd 内嵌插件。

  • InTreePluginOpenStackUnregister: 在 kubelet 和卷控制器上关闭注册 OpenStack cinder 内嵌插件。
  • InTreePluginPortworxUnregister: 在 kubelet 和卷控制器上关闭注册 Portworx 内嵌插件。
  • InTreePluginRBDUnregister: 在 kubelet 和卷控制器上关闭注册 RBD 内嵌插件。

  • InTreePluginvSphereUnregister: 在 kubelet 和卷控制器上关闭注册 vSphere 内嵌插件。

  • IndexedJob:允许 Job 控制器根据完成索引来管理 Pod 完成。
  • IngressClassNamespacedParams:允许在 IngressClass 资源中引用命名空间范围的参数。 该特性增加了两个字段 —— scopenamespaceIngressClass.spec.parameters
  • Initializers: 使用 Initializers 准入插件允许异步协调对象创建。

  • IPv6DualStack:启用双协议栈 以支持 IPv6。

  • JobMutableNodeSchedulingDirectives:允许在 Job 的 Pod 模板中更新节点调度指令。
  • JobReadyPods:允许跟踪状况Ready 的 Pod 的个数。Ready 的 Pod 记录在 Job 对象的 status 字段中。

  • JobTrackingWithFinalizers: 启用跟踪 Job 完成情况,而不是永远从集群剩余 Pod 来获取信息判断完成情况。Job 控制器使用 Pod finalizers 和 Job 状态中的一个字段来跟踪已完成的 Pod 以计算完成。

  • KubeletConfigFile:启用从使用配置文件指定的文件中加载 kubelet 配置。 有关更多详细信息,请参见 通过配置文件设置 kubelet 参数

  • KubeletCredentialProviders:允许使用 kubelet exec 凭据提供程序来设置镜像拉取凭据。

  • KubeletInUserNamespace: 支持在用户名字空间 里运行 kubelet 。 请参见使用非 Root 用户来运行 Kubernetes 节点组件
  • KubeletPluginsWatcher:启用基于探针的插件监视应用程序,使 kubelet 能够发现类似 CSI 卷驱动程序这类插件。

  • KubeletPodResources:启用 kubelet 上 Pod 资源 GRPC 端点。更多详细信息, 请参见支持设备监控

  • KubeletPodResourcesGetAllocatable:启用 kubelet 的 pod 资源的 GetAllocatableResources 功能。 该 API 增强了资源分配报告 包含有关可分配资源的信息,使客户端能够正确跟踪节点上的可用计算资源。
  • LegacyNodeRoleBehavior:禁用此门控时,服务负载均衡器中和节点干扰中的原先行为会忽略 node-role.kubernetes.io/master 标签,使用 NodeDisruptionExclusionServiceNodeExclusion 对应特性所提供的标签。

  • LocalStorageCapacityIsolation:允许使用 本地临时存储 以及 emptyDir 卷sizeLimit 属性。

  • LocalStorageCapacityIsolationFSQuotaMonitoring:如果 本地临时存储启用了 LocalStorageCapacityIsolation,并且 emptyDir 卷的后备文件系统支持项目配额, 并且启用了这些配额,将使用项目配额来监视 emptyDir 卷的存储消耗而不是遍历文件系统, 以此获得更好的性能和准确性。

  • LogarithmicScaleDown:启用 Pod 的半随机(semi-random)选择,控制器将根据 Pod 时间戳的对数桶按比例缩小去驱逐 Pod。

  • MemoryManager: 允许基于 NUMA 拓扑为容器设置内存亲和性。
  • MemoryQoS: 使用 cgroup v2 内存控制器在 pod / 容器上启用内存保护和使用限制。
  • MixedProtocolLBService:允许在同一 LoadBalancer 类型的 Service 实例中使用不同的协议。
  • MountContainers:允许使用主机上的工具容器作为卷挂载程序。

  • MountPropagation:启用将一个容器安装的共享卷共享到其他容器或 Pod。 更多详细信息,请参见挂载传播

  • NamespaceDefaultLabelName:配置 API 服务器以在所有名字空间上设置一个不可变的 标签 kubernetes.io/metadata.name, 也包括名字空间。
  • NodeDisruptionExclusion:启用节点标签 node.kubernetes.io/exclude-disruption, 以防止在可用区发生故障期间驱逐节点。
  • NodeLease:启用新的 Lease(租期)API 以报告节点心跳,可用作节点运行状况信号。

  • NodeSwap: 启用 kubelet 为节点上的 Kubernetes 工作负载分配交换内存的能力。 必须将 KubeletConfiguration.failSwapOn 设置为 false 的情况下才能使用。 更多详细信息,请参见交换内存

  • NonPreemptingPriority:为 PriorityClass 和 Pod 启用 preemptionPolicy 选项。
  • OpenAPIEnums:允许在从 API 服务器返回的 spec 中填充 OpenAPI 模式的 “enum” 字段。
  • OpenAPIV3:允许 API 服务器发布 OpenAPI V3。
  • PVCProtection:启用防止仍被某 Pod 使用的 PVC 被删除的特性。

  • PodDeletionCost:启用 Pod 删除成本功能。 该功能使用户可以影响 ReplicaSet 的降序顺序。

  • PersistentLocalVolumes:允许在 Pod 中使用 local(本地) 卷类型。 如果请求 local 卷,则必须指定 Pod 亲和性属性。
  • PodDisruptionBudget:启用 PodDisruptionBudget 特性。
  • PodAffinityNamespaceSelector:启用 Pod 亲和性名称空间选择器CrossNamespacePodAffinity 资源配额功能。
  • PodOverhead:启用 PodOverhead 特性以考虑 Pod 开销。

  • PodPriority:启用根据优先级 的 Pod 调度和抢占。

  • PodReadinessGates:启用 podReadinessGate 字段的设置以扩展 Pod 准备状态评估。 有关更多详细信息,请参见 Pod 就绪状态判别
  • PodSecurity: 开启 PodSecurity 准入控制插件。
  • PodShareProcessNamespace:在 Pod 中启用 shareProcessNamespace 的设置, 以便在 Pod 中运行的容器之间共享同一进程名字空间。更多详细信息,请参见 在 Pod 中的容器间共享同一进程名字空间
  • PreferNominatedNode: 这个标志告诉调度器在循环遍历集群中的所有其他节点之前, 是否首先检查指定的节点。

  • ProbeTerminationGracePeriod:在 Pod 上 启用 设置探测器级别 terminationGracePeriodSeconds。 有关更多信息,请参见改进提案

  • ProcMountType:允许容器通过设置 SecurityContext 的 procMount 字段来控制对 proc 文件系统的挂载方式。
  • ProxyTerminatingEndpoints: 当 ExternalTrafficPolicy=Local 时, 允许 kube-proxy 来处理终止过程中的端点。
  • QOSReserved:允许在 QoS 级别进行资源预留,以防止处于较低 QoS 级别的 Pod 突发进入处于较高 QoS 级别的请求资源(目前仅适用于内存)。
  • ReadWriteOncePod: 允许使用 ReadWriteOncePod 访问模式的 PersistentVolume。

  • RecoverVolumeExpansionFailure:允许用户编辑其 PVC 来缩小其尺寸, 从而从之前卷扩容发生的失败中恢复。更多细节可参见 从卷扩容失效中恢复

  • RemainingItemCount:允许 API 服务器在 分块列表请求 的响应中显示剩余条目的个数。
  • RemoveSelfLink:将 ObjectMeta 和 ListMeta 中的 selfLink 字段废弃并删除。
  • RequestManagement:允许在每个 API 服务器上通过优先级和公平性管理请求并发性。 自 1.17 以来已被 APIPriorityAndFairness 替代。

  • ResourceLimitsPriorityFunction:启用某调度器优先级函数, 该函数将最低得分 1 指派给至少满足输入 Pod 的 CPU 和内存限制之一的节点, 目的是打破得分相同的节点之间的关联。

  • ResourceQuotaScopeSelectors:启用资源配额范围选择器。
  • RootCAConfigMap:配置 kube-controller-manager,使之发布一个名为 kube-root-ca.crtConfigMap, 到所有名字空间中。该 ConfigMap 包含用来验证与 kube-apiserver 之间连接的 CA 证书包。 参阅绑定服务账户令牌 以了解更多细节。

  • RotateKubeletClientCertificate:在 kubelet 上启用客户端 TLS 证书的轮换。 更多详细信息,请参见 kubelet 配置

  • RotateKubeletServerCertificate:在 kubelet 上启用服务器 TLS 证书的轮换。 更多详细信息,请参见 kubelet 配置
  • RunAsGroup:启用对容器初始化过程中设置的主要组 ID 的控制。

  • RuntimeClass:启用 RuntimeClass 特性用于选择容器运行时配置。

  • ScheduleDaemonSetPods:启用 DaemonSet Pods 由默认调度程序而不是 DaemonSet 控制器进行调度。
  • SCTPSupport:在 Pod、Service、Endpoints、NetworkPolicy 定义中允许将 ‘SCTP’ 用作 protocol 值。
  • SeccompDefault: 允许将所有工作负载的默认 seccomp 配置文件为 RuntimeDefault。 seccomp 配置在 Pod 或者容器的 securityContext 字段中指定。
  • SelectorIndex: 允许使用 API 服务器的 watch 缓存中基于标签和字段的索引来加速 list 操作。

  • ServerSideApply:在 API 服务器上启用 服务器端应用(SSA)

  • ServiceAccountIssuerDiscovery:在 API 服务器中为服务帐户颁发者启用 OIDC 发现端点 (颁发者和 JWKS URL)。详情参见 为 Pod 配置服务账户
  • ServiceAppProtocol:为 Service 和 Endpoints 启用 appProtocol 字段。
  • ServiceInternalTrafficPolicy:为服务启用 internalTrafficPolicy 字段。
  • ServiceLBNodePortControl:为服务启用 allocateLoadBalancerNodePorts 字段。

  • ServiceLoadBalancerClass: 为服务启用 loadBalancerClass 字段。 有关更多信息,请参见指定负载均衡器实现类

  • ServiceLoadBalancerFinalizer:为服务负载均衡启用终结器(finalizers)保护。
  • ServiceNodeExclusion:启用从云提供商创建的负载均衡中排除节点。 如果节点标记有 node.kubernetes.io/exclude-from-external-load-balancers, 标签,则可以排除该节点。
  • ServiceTopology:启用服务拓扑可以让一个服务基于集群的节点拓扑进行流量路由。 有关更多详细信息,请参见服务拓扑

  • SetHostnameAsFQDN:启用将全限定域名(FQDN)设置为 Pod 主机名的功能。 请参见为 Pod 设置 setHostnameAsFQDN 字段

  • SizeMemoryBackedVolumes:允许 kubelet 检查基于内存制备的卷的尺寸约束 (目前主要针对 emptyDir 卷)。
  • StartupProbe:在 kubelet 中启用 启动探针
  • StatefulSetMinReadySeconds: 允许 StatefulSet 控制器采纳 minReadySeconds 设置。

  • StorageObjectInUseProtection:如果仍在使用 PersistentVolume 或 PersistentVolumeClaim 对象,则将其删除操作推迟。

  • StorageVersionAPI: 启用 存储版本 API
  • StorageVersionHash:允许 API 服务器在版本发现中公开存储版本的哈希值。
  • StreamingProxyRedirects:指示 API 服务器拦截(并跟踪)后端(kubelet) 的重定向以处理流请求。 流请求的例子包括 execattachport-forward 请求。

  • SupportIPVSProxyMode:启用使用 IPVS 提供集群内服务负载平衡。更多详细信息,请参见 服务代理

  • SupportNodePidsLimit:启用支持,限制节点上的 PID 用量。 --system-reserved--kube-reserved 中的参数 pid=<数值> 可以分别用来 设定为整个系统所预留的进程 ID 个数和为 Kubernetes 系统守护进程预留的进程 ID 个数。
  • SupportPodPidsLimit:启用支持限制 Pod 中的进程 PID。

  • SuspendJob: 启用支持以暂停和恢复作业。 更多详细信息,请参见 Jobs 文档

  • Sysctls:允许为每个 Pod 设置的名字空间内核参数(sysctls)。 更多详细信息,请参见 sysctls
  • TTLAfterFinished:资源完成执行后,允许 TTL 控制器清理资源。

  • TaintBasedEvictions:根据节点上的污点和 Pod 上的容忍度启用从节点驱逐 Pod 的特性。 更多详细信息可参见污点和容忍度

  • TaintNodesByCondition:根据节点状况 启用自动为节点标记污点。
  • TokenRequest:在服务帐户资源上启用 TokenRequest 端点。
  • TokenRequestProjection:启用通过 projected 卷 将服务帐户令牌注入到 Pod 中的特性。

  • TopologyAwareHints: 在 EndpointSlices 中启用基于拓扑提示的拓扑感知路由。 更多详细信息可参见拓扑感知提示

  • TopologyManager:启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 详见控制节点上的拓扑管理策略
  • ValidateProxyRedirects: 这个标志控制 API 服务器是否应该验证只跟随到相同的主机的重定向。 仅在启用 StreamingProxyRedirects 标志时被使用。

  • VolumeCapacityPriority: 基于可用 PV 容量的拓扑,启用对不同节点的优先级支持。

  • VolumePVCDataSource:启用对将现有 PVC 指定数据源的支持。
  • VolumeScheduling:启用卷拓扑感知调度,并使 PersistentVolumeClaim(PVC) 绑定能够了解调度决策;当与 PersistentLocalVolumes 特性门控一起使用时, 还允许使用 local 卷类型。
  • VolumeSnapshotDataSource:启用卷快照数据源支持。
  • VolumeSubpath: 允许在容器中挂载卷的子路径。

  • VolumeSubpathEnvExpansion:启用 subPathExpr 字段用于在 subPath 中展开环境变量。

  • WarningHeaders:允许在 API 响应中发送警告头部。
  • WatchBookmark:启用对 watch 操作中 bookmark 事件的支持。
  • WinDSR:允许 kube-proxy 为 Windows 创建 DSR 负载均衡。
  • WinOverlay:允许在 Windows 的覆盖网络模式下运行 kube-proxy 。

  • WindowsEndpointSliceProxying: 当启用时,运行在 Windows 上的 kube-proxy 将使用 EndpointSlices 而不是 Endpoints 作为主要数据源,从而实现可伸缩性和并改进性能。 详情请参见启用端点切片.

  • WindowsGMSA:允许将 GMSA 凭据规范从 Pod 传递到容器运行时。
  • WindowsHostProcessContainers: 启用对 Windows HostProcess 容器的支持。
  • WindowsRunAsUserName:提供使用非默认用户在 Windows 容器中运行应用程序的支持。 详情请参见 配置 RunAsUserName

What’s next

  • Kubernetes 的弃用策略 介绍了项目针对已移除特性和组件的处理方法。

最后修改 April 25, 2022 at 11:31 PM PST: [zh] Fix feature state (d12411891)