特性门控

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

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

概述

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

每个 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.181.23
AnyVolumeDataSourcetrueBeta1.24
AppArmortrueBeta1.4
CPUManagerfalseAlpha1.81.9
CPUManagertrueBeta1.10
CPUManagerPolicyAlphaOptionsfalseAlpha1.23
CPUManagerPolicyBetaOptionstrueBeta1.23
CPUManagerPolicyOptionsfalseAlpha1.221.22
CPUManagerPolicyOptionstrueBeta1.23
CSIMigrationAzureFilefalseAlpha1.151.20
CSIMigrationAzureFilefalseBeta1.211.23
CSIMigrationAzureFiletrueBeta1.24
CSIMigrationPortworxfalseAlpha1.231.24
CSIMigrationPortworxfalseBeta1.25
CSIMigrationRBDfalseAlpha1.23
CSIMigrationvSpherefalseAlpha1.181.18
CSIMigrationvSpherefalseBeta1.191.24
CSIMigrationvSpheretrueBeta1.25
CSINodeExpandSecretfalseAlpha1.25
CSIVolumeHealthfalseAlpha1.21
ContainerCheckpointfalseAlpha1.25
ContextualLoggingfalseAlpha1.24
CustomCPUCFSQuotaPeriodfalseAlpha1.12
CustomResourceValidationExpressionsfalseAlpha1.231.24
CustomResourceValidationExpressionstrueBeta1.25
DelegateFSGroupToCSIDriverfalseAlpha1.221.22
DelegateFSGroupToCSIDrivertrueBeta1.23
DevicePluginsfalseAlpha1.81.9
DevicePluginstrueBeta1.10
DisableCloudProvidersfalseAlpha1.22
DisableKubeletCloudCredentialProvidersfalseAlpha1.23
DownwardAPIHugePagesfalseAlpha1.201.20
DownwardAPIHugePagesfalseBeta1.211.21
DownwardAPIHugePagestrueBeta1.22
EndpointSliceTerminatingConditionfalseAlpha1.201.21
EndpointSliceTerminatingConditiontrueBeta1.22
ExpandedDNSConfigfalseAlpha1.22
ExperimentalHostUserNamespaceDefaultingfalseBeta1.5
GRPCContainerProbefalseAlpha1.231.23
GRPCContainerProbetrueBeta1.24
GracefulNodeShutdownfalseAlpha1.201.20
GracefulNodeShutdowntrueBeta1.21
GracefulNodeShutdownBasedOnPodPriorityfalseAlpha1.231.23
GracefulNodeShutdownBasedOnPodPrioritytrueBeta1.24
HPAContainerMetricsfalseAlpha1.20
HPAScaleToZerofalseAlpha1.16
HonorPVReclaimPolicyfalseAlpha1.23
InTreePluginAWSUnregisterfalseAlpha1.21
InTreePluginAzureDiskUnregisterfalseAlpha1.21
InTreePluginAzureFileUnregisterfalseAlpha1.21
InTreePluginGCEUnregisterfalseAlpha1.21
InTreePluginOpenStackUnregisterfalseAlpha1.21
InTreePluginPortworxUnregisterfalseAlpha1.23
InTreePluginRBDUnregisterfalseAlpha1.23
InTreePluginvSphereUnregisterfalseAlpha1.21
IPTablesOwnershipCleanupfalseAlpha1.25
JobMutableNodeSchedulingDirectivestrueBeta1.23
JobPodFailurePolicyfalseAlpha1.25-
JobReadyPodsfalseAlpha1.231.23
JobReadyPodstrueBeta1.24
JobTrackingWithFinalizersfalseAlpha1.221.22
JobTrackingWithFinalizerstrueBeta1.23
KubeletCredentialProvidersfalseAlpha1.201.23
KubeletCredentialProviderstrueBeta1.24
KubeletInUserNamespacefalseAlpha1.22
KubeletPodResourcesfalseAlpha1.131.14
KubeletPodResourcestrueBeta1.15
KubeletPodResourcesGetAllocatablefalseAlpha1.211.22
KubeletPodResourcesGetAllocatabletrueBeta1.23
KubeletTracingfalseAlpha1.25
LegacyServiceAccountTokenNoAutoGenerationtrueBeta1.24
LocalStorageCapacityIsolationFSQuotaMonitoringfalseAlpha1.151.24
LocalStorageCapacityIsolationFSQuotaMonitoringtrueBeta1.25
LogarithmicScaleDownfalseAlpha1.211.21
LogarithmicScaleDowntrueBeta1.22
MatchLabelKeysInPodTopologySpreadfalseAlpha1.25
MaxUnavailableStatefulSetfalseAlpha1.24
MemoryManagerfalseAlpha1.211.21
MemoryManagertrueBeta1.22
MemoryQoSfalseAlpha1.22
MinDomainsInPodTopologySpreadfalseAlpha1.241.24
MinDomainsInPodTopologySpreadfalseBeta1.25
MixedProtocolLBServicefalseAlpha1.201.23
MixedProtocolLBServicetrueBeta1.24
MultiCIDRRangeAllocatorfalseAlpha1.25
NetworkPolicyStatusfalseAlpha1.24
NodeInclusionPolicyInPodTopologySpreadfalseAlpha1.25
NodeOutOfServiceVolumeDetachfalseAlpha1.24
NodeSwapfalseAlpha1.22
OpenAPIEnumsfalseAlpha1.231.23
OpenAPIEnumstrueBeta1.24
OpenAPIV3falseAlpha1.231.23
OpenAPIV3trueBeta1.24
PodAndContainerStatsFromCRIfalseAlpha1.23
PodDeletionCostfalseAlpha1.211.21
PodDeletionCosttrueBeta1.22
PodDisruptionConditionsfalseAlpha1.25-
PodHasNetworkConditionfalseAlpha1.25
ProbeTerminationGracePeriodfalseAlpha1.211.21
ProbeTerminationGracePeriodfalseBeta1.221.24
ProbeTerminationGracePeriodtrueBeta1.25
ProcMountTypefalseAlpha1.12
ProxyTerminatingEndpointsfalseAlpha1.22
QOSReservedfalseAlpha1.11
ReadWriteOncePodfalseAlpha1.22
RecoverVolumeExpansionFailurefalseAlpha1.23
RemainingItemCountfalseAlpha1.151.15
RemainingItemCounttrueBeta1.16
RetroactiveDefaultStorageClassfalseAlpha1.25
RotateKubeletServerCertificatefalseAlpha1.71.11
RotateKubeletServerCertificatetrueBeta1.12
SELinuxMountReadWriteOncePodfalseAlpha1.25
SeccompDefaultfalseAlpha1.221.24
SeccompDefaulttrueBeta1.25
ServerSideFieldValidationfalseAlpha1.231.24
ServerSideFieldValidationtrueBeta1.25
ServiceIPStaticSubrangefalseAlpha1.241.24
ServiceIPStaticSubrangetrueBeta1.25
ServiceInternalTrafficPolicyfalseAlpha1.211.21
ServiceInternalTrafficPolicytrueBeta1.22
SizeMemoryBackedVolumesfalseAlpha1.201.21
SizeMemoryBackedVolumestrueBeta1.22
StatefulSetAutoDeletePVCfalseAlpha1.22
StorageVersionAPIfalseAlpha1.20
StorageVersionHashfalseAlpha1.141.14
StorageVersionHashtrueBeta1.15
TopologyAwareHintsfalseAlpha1.211.22
TopologyAwareHintsfalseBeta1.231.23
TopologyAwareHintstrueBeta1.24
TopologyManagerfalseAlpha1.161.17
TopologyManagertrueBeta1.18
UserNamespacesStatelessPodsSupportfalseAlpha1.25
VolumeCapacityPriorityfalseAlpha1.21-
WinDSRfalseAlpha1.14
WinOverlayfalseAlpha1.141.19
WinOverlaytrueBeta1.20
WindowsHostProcessContainersfalseAlpha1.221.22
WindowsHostProcessContainerstrueBeta1.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-
CRIContainerLogRotationfalseAlpha1.101.10
CRIContainerLogRotationtrueBeta1.111.20
CRIContainerLogRotationtrueGA1.21-
CSIBlockVolumefalseAlpha1.111.13
CSIBlockVolumetrueBeta1.141.17
CSIBlockVolumetrueGA1.18-
CSIDriverRegistryfalseAlpha1.121.13
CSIDriverRegistrytrueBeta1.141.17
CSIDriverRegistrytrueGA1.18-
CSIInlineVolumefalseAlpha1.151.15
CSIInlineVolumetrueBeta1.161.24
CSIInlineVolumetrueGA1.25-
CSIMigrationfalseAlpha1.141.16
CSIMigrationtrueBeta1.171.24
CSIMigrationtrueGA1.25-
CSIMigrationAWSfalseAlpha1.141.16
CSIMigrationAWSfalseBeta1.171.22
CSIMigrationAWStrueBeta1.231.24
CSIMigrationAWStrueGA1.25-
CSIMigrationAWSCompletefalseAlpha1.171.20
CSIMigrationAWSComplete-Deprecated1.21-
CSIMigrationAzureDiskfalseAlpha1.151.18
CSIMigrationAzureDiskfalseBeta1.191.22
CSIMigrationAzureDisktrueBeta1.231.23
CSIMigrationAzureDisktrueGA1.24
CSIMigrationAzureDiskCompletefalseAlpha1.171.20
CSIMigrationAzureDiskComplete-Deprecated1.21-
CSIMigrationAzureFileCompletefalseAlpha1.171.20
CSIMigrationAzureFileComplete-Deprecated1.21-
CSIMigrationGCEfalseAlpha1.141.16
CSIMigrationGCEfalseBeta1.171.22
CSIMigrationGCEtrueBeta1.231.24
CSIMigrationGCEtrueGA1.25-
CSIMigrationGCECompletefalseAlpha1.171.20
CSIMigrationGCEComplete-Deprecated1.21-
CSIMigrationOpenStackfalseAlpha1.141.17
CSIMigrationOpenStacktrueBeta1.181.23
CSIMigrationOpenStacktrueGA1.24
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-
CSIStorageCapacityfalseAlpha1.191.20
CSIStorageCapacitytrueBeta1.211.23
CSIStorageCapacitytrueGA1.24-
CSIVolumeFSGroupPolicyfalseAlpha1.191.19
CSIVolumeFSGroupPolicytrueBeta1.201.22
CSIVolumeFSGroupPolicytrueGA1.23
CSRDurationtrueBeta1.221.23
CSRDurationtrueGA1.24-
ConfigurableFSGroupPolicyfalseAlpha1.181.19
ConfigurableFSGroupPolicytrueBeta1.201.22
ConfigurableFSGroupPolicytrueGA1.23-
ControllerManagerLeaderMigrationfalseAlpha1.211.21
ControllerManagerLeaderMigrationtrueBeta1.221.23
ControllerManagerLeaderMigrationtrueGA1.24-
CronJobControllerV2falseAlpha1.201.20
CronJobControllerV2trueBeta1.211.21
CronJobControllerV2trueGA1.22-
CronJobTimeZonefalseAlpha1.241.24
CronJobTimeZonetrueBeta1.25
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-
DaemonSetUpdateSurgefalseAlpha1.211.21
DaemonSetUpdateSurgetrueBeta1.221.24
DaemonSetUpdateSurgetrueGA1.25-
DefaultPodTopologySpreadfalseAlpha1.191.19
DefaultPodTopologySpreadtrueBeta1.201.23
DefaultPodTopologySpreadtrueGA1.24-
DisableAcceleratorUsageMetricsfalseAlpha1.191.19
DisableAcceleratorUsageMetricstrueBeta1.201.24
DisableAcceleratorUsageMetricstrueBeta1.25-
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-
EfficientWatchResumptionfalseAlpha1.201.20
EfficientWatchResumptiontrueBeta1.211.23
EfficientWatchResumptiontrueGA1.24-
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-
EphemeralContainersfalseAlpha1.161.22
EphemeralContainerstrueBeta1.231.24
EphemeralContainerstrueGA1.25-
EvenPodsSpreadfalseAlpha1.161.17
EvenPodsSpreadtrueBeta1.181.18
EvenPodsSpreadtrueGA1.19-
ExecProbeTimeouttrueGA1.20-
ExpandCSIVolumesfalseAlpha1.141.15
ExpandCSIVolumestrueBeta1.161.23
ExpandCSIVolumestrueGA1.24-
ExpandInUsePersistentVolumesfalseAlpha1.111.14
ExpandInUsePersistentVolumestrueBeta1.151.23
ExpandInUsePersistentVolumestrueGA1.24-
ExpandPersistentVolumesfalseAlpha1.81.10
ExpandPersistentVolumestrueBeta1.111.23
ExpandPersistentVolumestrueGA1.24-
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-
IPv6DualStackfalseAlpha1.151.20
IPv6DualStacktrueBeta1.211.22
IPv6DualStacktrueGA1.23-
IdentifyPodOSfalseAlpha1.231.23
IdentifyPodOStrueBeta1.241.24
IdentifyPodOStrueGA1.25-
ImmutableEphemeralVolumesfalseAlpha1.181.18
ImmutableEphemeralVolumestrueBeta1.191.20
ImmutableEphemeralVolumestrueGA1.21
IndexedJobfalseAlpha1.211.21
IndexedJobtrueBeta1.221.23
IndexedJobtrueGA1.24-
IngressClassNamespacedParamsfalseAlpha1.211.21
IngressClassNamespacedParamstrueBeta1.221.22
IngressClassNamespacedParamstrueGA1.23-
InitializersfalseAlpha1.71.13
Initializers-Deprecated1.14-
KubeletConfigFilefalseAlpha1.81.9
KubeletConfigFile-Deprecated1.10-
KubeletPluginsWatcherfalseAlpha1.111.11
KubeletPluginsWatchertrueBeta1.121.12
KubeletPluginsWatchertrueGA1.13-
LegacyNodeRoleBehaviorfalseAlpha1.161.18
LegacyNodeRoleBehaviortrueBeta1.191.20
LegacyNodeRoleBehaviorfalseGA1.21-
LocalStorageCapacityIsolationfalseAlpha1.71.9
LocalStorageCapacityIsolationtrueBeta1.101.24
LocalStorageCapacityIsolationtrueGA1.25-
MountContainersfalseAlpha1.91.16
MountContainersfalseDeprecated1.17-
MountPropagationfalseAlpha1.81.9
MountPropagationtrueBeta1.101.11
MountPropagationtrueGA1.12-
NamespaceDefaultLabelNametrueBeta1.211.21
NamespaceDefaultLabelNametrueGA1.22-
NetworkPolicyEndPortfalseAlpha1.211.21
NetworkPolicyEndPorttrueBeta1.221.24
NetworkPolicyEndPorttrueGA1.25-
NodeDisruptionExclusionfalseAlpha1.161.18
NodeDisruptionExclusiontrueBeta1.191.20
NodeDisruptionExclusiontrueGA1.21-
NodeLeasefalseAlpha1.121.13
NodeLeasetrueBeta1.141.16
NodeLeasetrueGA1.17-
NonPreemptingPriorityfalseAlpha1.151.18
NonPreemptingPrioritytrueBeta1.191.23
NonPreemptingPrioritytrueGA1.24-
PVCProtectionfalseAlpha1.91.9
PVCProtection-Deprecated1.10-
PersistentLocalVolumesfalseAlpha1.71.9
PersistentLocalVolumestrueBeta1.101.13
PersistentLocalVolumestrueGA1.14-
PodAffinityNamespaceSelectorfalseAlpha1.211.21
PodAffinityNamespaceSelectortrueBeta1.221.23
PodAffinityNamespaceSelectortrueGA1.24-
PodDisruptionBudgetfalseAlpha1.31.4
PodDisruptionBudgettrueBeta1.51.20
PodDisruptionBudgettrueGA1.21-
PodOverheadfalseAlpha1.161.17
PodOverheadtrueBeta1.181.23
PodOverheadtrueGA1.24-
PodPriorityfalseAlpha1.81.10
PodPrioritytrueBeta1.111.13
PodPrioritytrueGA1.14-
PodReadinessGatesfalseAlpha1.111.11
PodReadinessGatestrueBeta1.121.13
PodReadinessGatestrueGA1.14-
PodSecurityfalseAlpha1.221.22
PodSecuritytrueBeta1.231.24
PodSecuritytrueGA1.25
PodShareProcessNamespacefalseAlpha1.101.11
PodShareProcessNamespacetrueBeta1.121.16
PodShareProcessNamespacetrueGA1.17-
PreferNominatedNodefalseAlpha1.211.21
PreferNominatedNodetrueBeta1.221.23
PreferNominatedNodetrueGA1.24-
RemoveSelfLinkfalseAlpha1.161.19
RemoveSelfLinktrueBeta1.201.23
RemoveSelfLinktrueGA1.24-
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-
ServiceAccountIssuerDiscoveryfalseAlpha1.181.19
ServiceAccountIssuerDiscoverytrueBeta1.201.20
ServiceAccountIssuerDiscoverytrueGA1.21-
ServiceAppProtocolfalseAlpha1.181.18
ServiceAppProtocoltrueBeta1.191.19
ServiceAppProtocoltrueGA1.20-
ServiceLBNodePortControlfalseAlpha1.201.21
ServiceLBNodePortControltrueBeta1.221.23
ServiceLBNodePortControltrueGA1.24-
ServiceLoadBalancerClassfalseAlpha1.211.21
ServiceLoadBalancerClasstrueBeta1.221.23
ServiceLoadBalancerClasstrueGA1.24-
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-
StatefulSetMinReadySecondsfalseAlpha1.221.22
StatefulSetMinReadySecondstrueBeta1.231.24
StatefulSetMinReadySecondstrueGA1.25-
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-
SuspendJobfalseAlpha1.211.21
SuspendJobtrueBeta1.221.23
SuspendJobtrueGA1.24-
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 对象。 编辑过程可能需要慎重操作,因为这可能会导致依赖该特性的应用程序停机。
  • 推荐仅用于非关键业务用途,因为在后续版本中可能会发生不兼容的更改。如果你具有多个可以独立升级的,则可以放宽此限制。

说明:

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

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

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

特性门控列表

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

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

  • 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 参数关闭扩展令牌。 查看绑定服务账号令牌获取更多详细信息。
  • ContainerCheckpoint:启用 kubelet checkpoint API。 参阅 Kubelet Checkpoint API 获取更多详细信息。
  • 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 特性标志。

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

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

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

  • 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 插件.

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

  • CSINodeExpandSecret:允许在 NodeExpandVolume CSI 操作期间将 Secret 身份验证数据传递到 CSI 驱动以供后者使用。
  • 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 配置卷访问权限和属主变更策略
  • ContextualLogging:当你启用这个特性门控,支持日志上下文记录的 Kubernetes 组件会为日志输出添加额外的详细内容。
  • ControllerManagerLeaderMigration:为 kube-controller-managercloud-controller-manager 开启领导者迁移功能。
  • CronJobControllerV2:使用 CronJob 控制器的一种替代实现。否则,系统会选择同一控制器的 v1 版本。
  • CronJobTimeZone:允许在 CronJobs 中使用 timeZone 可选字段。

  • 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 1.24 版本中已被移除。 请参阅重新配置 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 会尝试监测该事件并体面地终止节点上运行的 Pod。 参阅体面地关闭节点以了解更多细节。

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

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

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

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

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

  • IPTablesOwnershipCleanup:这使得 kubelet 不再创建传统的 IPTables 规则。

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

  • ImmutableEphemeralVolumes:允许将各个 Secret 和 ConfigMap 标记为不可变更的, 以提高安全性和性能。
  • IndexedJob:允许 Job 控制器来管理每个完成索引的 Pod 完成。
  • IngressClassNamespacedParams:允许在 IngressClass 资源中使用命名空间范围的参数引用。 此功能为 IngressClass.spec.parameters 添加了两个字段 - scopenamespace
  • Initializers:允许使用 Intializers 准入插件来异步协调对象创建操作。
  • 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 准入插件允许异步协调对象创建。

  • JobMutableNodeSchedulingDirectives:允许在 Job 的 Pod 模板中更新节点调度指令。

  • JobPodFailurePolicy:允许用户根据容器退出码和 Pod 状况来指定 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 对应特性所提供的标签。
  • KubeletTracing:新增在 Kubelet 中对分布式追踪的支持。 启用时,kubelet CRI 接口和经身份验证的 http 服务器被插桩以生成 OpenTelemetry 追踪 span。 参阅针对 Kubernetes 系统组件的追踪 获取更多详细信息。
  • LegacyServiceAccountTokenNoAutoGeneration:停止基于 Secret 自动生成服务账号令牌

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

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

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

  • MatchLabelKeysInPodTopologySpread:为 Pod 拓扑分布约束启用 matchLabelKeys 字段。
  • MaxUnavailableStatefulSet:启用为 StatefulSet 的滚动更新策略设置 maxUnavailable 字段。该字段指定更新过程中不可用 Pod 个数的上限。
  • MemoryManager:允许基于 NUMA 拓扑为容器设置内存亲和性。
  • MemoryQoS:使用 cgroup v2 内存控制器在 Pod / 容器上启用内存保护和使用限制。
  • MinDomainsInPodTopologySpread:在 Pod 拓扑分布约束中启用 minDomains
  • MixedProtocolLBService:允许在同一 LoadBalancer 类型的 Service 实例中使用不同的协议。
  • MountContainers:允许使用主机上的工具容器作为卷挂载程序。

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

  • MultiCIDRRangeAllocator:启用 MultiCIDR 范围分配器。
  • NamespaceDefaultLabelName:配置 API 服务器以在所有名字空间上设置一个不可变的 标签 kubernetes.io/metadata.name, 也包括名字空间。
  • NetworkPolicyEndPort:在 NetworkPolicy 对象中启用 endPort 以允许选择端口范围而不是单个端口。
  • NetworkPolicyStatus:为 NetworkPolicy 对象启用 status 子资源。
  • NodeInclusionPolicyInPodTopologySpread:在计算 Pod 拓扑分布偏差时启用在 Pod 拓扑分布约束中使用 nodeAffinityPolicy and nodeTaintsPolicy
  • NodeDisruptionExclusion:启用节点标签 node.kubernetes.io/exclude-disruption, 以防止在可用区发生故障期间驱逐节点。
  • NodeLease:启用新的 Lease(租期)API 以报告节点心跳,可用作节点运行状况信号。

  • NodeOutOfServiceVolumeDetach:当使用 node.kubernetes.io/out-of-service 污点将节点标记为停止服务时,节点上不能容忍这个污点的 Pod 将被强制删除, 并且该在节点上被终止的 Pod 将立即进行卷分离操作。

  • NodeSwap:启用 kubelet 为节点上的 Kubernetes 工作负载分配交换内存的能力。 必须将 KubeletConfiguration.failSwapOn 设置为 false 的情况下才能使用。 更多详细信息,请参见交换内存
  • NonPreemptingPriority:为 PriorityClass 和 Pod 启用 preemptionPolicy 选项。
  • OpenAPIEnums:允许在从 API 服务器返回的 spec 中填充 OpenAPI 模式的 “enum” 字段。
  • OpenAPIV3:允许 API 服务器发布 OpenAPI V3。

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

  • PersistentLocalVolumes:允许在 Pod 中使用 local(本地) 卷类型。 如果请求 local 卷,则必须指定 Pod 亲和性属性。
  • PodAffinityNamespaceSelector:启用 Pod 亲和性名字空间选择算符CrossNamespacePodAffinity 资源配额功能。
  • PodAndContainerStatsFromCRI:配置 kubelet 从 CRI 容器运行时中而不是从 cAdvisor 中采集容器和 Pod 统计信息。
  • PodDisruptionBudget:启用 PodDisruptionBudget 功能特性。
  • PodDisruptionConditions:启用支持追加一个专用的 Pod 状况,以表示 Pod 由于某个干扰正在被删除。
  • PodHasNetworkCondition:使得 kubelet 能够对 Pod 标记 PodHasNetwork 状况。
  • 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 来处理终止过程中的端点。
  • PVCProtection:当 PersistentVolumeClaim (PVC) 仍然在 Pod 使用时被删除,启用保护。
  • QOSReserved:允许在 QoS 级别进行资源预留,以防止处于较低 QoS 级别的 Pod 突发进入处于较高 QoS 级别的请求资源(目前仅适用于内存)。
  • ReadWriteOncePod: 允许使用 ReadWriteOncePod 访问模式的 PersistentVolume。

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

  • RemainingItemCount:允许 API 服务器在 分块列表请求 的响应中显示剩余条目的个数。
  • RemoveSelfLink:将所有对象和集合的 .metadata.selfLink 字段设置为空(空字符串)。 该字段自 Kubernetes v1.16 版本以来已被弃用。 启用此功能后,.metadata.selfLink 字段仍然是 Kubernetes API 的一部分,但始终未设置。
  • RequestManagement:允许在每个 API 服务器上通过优先级和公平性管理请求并发性。 自 1.17 以来已被 APIPriorityAndFairness 替代。

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

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

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

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

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

  • SCTPSupport:在 Pod、Service、Endpoints、NetworkPolicy 定义中允许将 ‘SCTP’ 用作 protocol 值。
  • SELinuxMountReadWriteOncePod:通过使用正确的 SELinux 标签挂载卷而不是以递归方式更改这些卷上的每个文件来加速容器启动。最初的实现侧重 ReadWriteOncePod 卷。
  • ScheduleDaemonSetPods:启用 DaemonSet Pod 由默认调度程序而不是 DaemonSet 控制器进行调度。
  • SeccompDefault: 允许将所有工作负载的默认 seccomp 配置文件为 RuntimeDefault。 seccomp 配置在 Pod 或者容器的 securityContext 字段中指定。
  • SelectorIndex: 允许使用 API 服务器的 watch 缓存中基于标签和字段的索引来加速 list 操作。
  • SELinuxMountReadWriteOncePod:允许 kubelet 直接用合适的 SELinux 标签为 Pod 挂载卷, 而不是将 SELinux 标签以递归方式应用到卷上的每个文件。

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

  • ServerSideFieldValidation:启用服务器端字段验证。 这意味着验证资源模式在 API 服务器端而不是客户端执行 (例如,kubectl createkubectl apply 命令行)。
  • 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:启用服务拓扑可以让一个服务基于集群的节点拓扑进行流量路由。 有关更多详细信息,请参见服务拓扑
  • ServiceIPStaticSubrange:启用服务 ClusterIP 分配策略,从而细分 ClusterIP 范围。 动态分配的 ClusterIP 地址将优先从较高范围分配,以低冲突风险允许用户从较低范围分配静态 ClusterIP。 更多详细信息请参阅避免冲突

  • 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: 启用支持以暂停和恢复作业。 更多详细信息,请参见 Job 文档

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

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

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

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

  • TopologyManager:启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 详见控制节点上的拓扑管理策略
  • UserNamespacesStatelessPodsSupport:为无状态 Pod 启用用户名字空间的支持。
  • 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

接下来

  • Kubernetes 的弃用策略介绍了项目针对已移除特性和组件的处理方法。
  • 从 Kubernetes 1.24 开始,默认不启用新的 beta API。 启用 Beta 功能时,还需要启用所有关联的 API 资源。 例如:要启用一个特定资源,如 storage.k8s.io/v1beta1/csistoragecapacities, 请设置 --runtime-config=storage.k8s.io/v1beta1/csistoragecapacities。 有关命令行标志的更多详细信息,请参阅 API 版本控制