特性门控
此页面概述了管理员可以在不同 Kubernetes 组件上指定的各种功能门。
有关功能的阶段说明,请参阅 功能阶段。
概述
功能门是一组描述 Kubernetes 功能的键值对。您可以使用每个 Kubernetes 组件上的 --feature-gates
命令行标志来开启或关闭这些功能。
每个 Kubernetes 组件都允许您启用或禁用一组与该组件相关的功能门。使用 -h
标志可查看所有组件的完整功能门集。要为组件(如 kubelet)设置功能门,请使用分配给功能对列表的 --feature-gates
标志。
--feature-gates=...,GracefulNodeShutdown=true
下表总结了您可以在不同 Kubernetes 组件上设置的功能门。
- “Since”列包含功能引入或更改发布阶段的 Kubernetes 版本。
- “Until”列(如果非空)包含您仍可使用功能门的最后一个 Kubernetes 版本。
- 如果一项功能处于 Alpha 或 Beta 状态,您可以在 Alpha/Beta 功能门表 中找到该功能。
- 如果一项功能是稳定的,您可以在 已毕业/已弃用的功能门表 中找到该功能的所有阶段。
- 此 已毕业/已弃用功能门表 还列出了已弃用和已撤回的功能。
注意
有关已移除的旧功能门的参考,请参阅 已移除的功能门。Alpha 或 Beta 功能的功能门
特性 | 默认 | 阶段 | 首次出现 | 最后出现 |
---|---|---|---|---|
AllowParsingUserUIDFromCertAuth | false | Alpha | 1.33 | – |
AllowUnsafeMalformedObjectDeletion | false | Alpha | 1.32 | – |
APIResponseCompression | false | Alpha | 1.7 | 1.15 |
APIResponseCompression | true | Beta | 1.16 | – |
APIServerIdentity | false | Alpha | 1.20 | 1.25 |
APIServerIdentity | true | Beta | 1.26 | – |
APIServingWithRoutine | false | Alpha | 1.30 | – |
CBORServingAndStorage | false | Alpha | 1.32 | – |
ClearingNominatedNodeNameAfterBinding | false | Alpha | 1.34 | 1.34 |
CloudControllerManagerWebhook | false | Alpha | 1.27 | – |
ClusterTrustBundle | false | Alpha | 1.27 | 1.32 |
ClusterTrustBundle | false | Beta | 1.33 | – |
ClusterTrustBundleProjection | false | Alpha | 1.29 | 1.32 |
ClusterTrustBundleProjection | false | Beta | 1.33 | – |
ComponentFlagz | false | Alpha | 1.32 | – |
ComponentSLIs | false | Alpha | 1.26 | 1.26 |
ComponentSLIs | true | Beta | 1.27 | – |
ComponentStatusz | false | Alpha | 1.32 | – |
ConcurrentWatchObjectDecode | false | Beta | 1.31 | – |
ConsistentListFromCache | false | Alpha | 1.28 | 1.30 |
ConsistentListFromCache | true | Beta | 1.31 | – |
ContainerCheckpoint | false | Alpha | 1.25 | 1.29 |
ContainerCheckpoint | true | Beta | 1.30 | – |
ContainerRestartRules | false | Alpha | 1.34 | – |
ContainerStopSignals | false | Alpha | 1.33 | – |
ContextualLogging | false | Alpha | 1.24 | – |
ContextualLogging | true | Beta | 1.30 | – |
CoordinatedLeaderElection | false | Alpha | 1.31 | 1.32 |
CoordinatedLeaderElection | false | Beta | 1.33 | – |
CPUManagerPolicyAlphaOptions | false | Alpha | 1.23 | – |
CPUManagerPolicyBetaOptions | true | Beta | 1.23 | – |
CrossNamespaceVolumeDataSource | false | Alpha | 1.26 | – |
CSIVolumeHealth | false | Alpha | 1.21 | – |
CustomCPUCFSQuotaPeriod | false | Alpha | 1.12 | – |
DeclarativeValidation | true | Beta | 1.33 | – |
DeclarativeValidationTakeover | false | Beta | 1.33 | – |
DeploymentReplicaSetTerminatingReplicas | false | Alpha | 1.33 | – |
DisableAllocatorDualWrite | false | Alpha | 1.31 | 1.32 |
DisableAllocatorDualWrite | false | Beta | 1.33 | – |
DRAAdminAccess | false | Alpha | 1.32 | 1.33 |
DRAAdminAccess | true | Beta | 1.34 | – |
DRAConsumableCapacity | false | Alpha | 1.34 | – |
DRADeviceBindingConditions | false | Alpha | 1.34 | – |
DRADeviceTaints | false | Alpha | 1.33 | – |
DRAExtendedResource | false | Alpha | 1.34 | – |
DRAPartitionableDevices | false | Alpha | 1.33 | – |
DRAPrioritizedList | false | Alpha | 1.33 | – |
DRAPrioritizedList | true | Beta | 1.34 | – |
DRAResourceClaimDeviceStatus | false | Alpha | 1.32 | 1.32 |
DRAResourceClaimDeviceStatus | true | Beta | 1.33 | – |
EnvFiles | false | Alpha | 1.34 | – |
EventedPLEG | false | Alpha | 1.26 | – |
ExternalServiceAccountTokenSigner | false | Alpha | 1.32 | 1.33 |
ExternalServiceAccountTokenSigner | true | Beta | 1.34 | – |
GracefulNodeShutdown | false | Alpha | 1.20 | 1.20 |
GracefulNodeShutdown | true | Beta | 1.21 | – |
GracefulNodeShutdownBasedOnPodPriority | false | Alpha | 1.23 | 1.23 |
GracefulNodeShutdownBasedOnPodPriority | true | Beta | 1.24 | – |
HostnameOverride | false | Alpha | 1.34 | – |
HPAConfigurableTolerance | false | Alpha | 1.33 | – |
HPAScaleToZero | false | Alpha | 1.16 | – |
ImageMaximumGCAge | false | Alpha | 1.29 | 1.29 |
ImageMaximumGCAge | true | Beta | 1.30 | – |
ImageVolume | false | Alpha | 1.31 | 1.32 |
ImageVolume | false | Beta | 1.33 | – |
InformerResourceVersion | false | Alpha | 1.30 | – |
InPlacePodVerticalScaling | false | Alpha | 1.27 | 1.32 |
InPlacePodVerticalScaling | true | Beta | 1.33 | – |
InPlacePodVerticalScalingExclusiveCPUs | false | Alpha | 1.32 | – |
InTreePluginPortworxUnregister | false | Alpha | 1.23 | – |
JobManagedBy | false | Alpha | 1.30 | 1.31 |
JobManagedBy | true | Beta | 1.32 | – |
KubeletCrashLoopBackOffMax | false | Alpha | 1.32 | – |
KubeletEnsureSecretPulledImages | false | Alpha | 1.33 | – |
KubeletFineGrainedAuthz | false | Alpha | 1.32 | 1.32 |
KubeletFineGrainedAuthz | true | Beta | 1.33 | – |
KubeletInUserNamespace | false | Alpha | 1.22 | – |
KubeletPodResourcesDynamicResources | false | Alpha | 1.27 | 1.33 |
KubeletPodResourcesDynamicResources | true | Beta | 1.34 | – |
KubeletPodResourcesGet | false | Alpha | 1.27 | 1.33 |
KubeletPodResourcesGet | true | Beta | 1.34 | – |
KubeletPSI | false | Alpha | 1.33 | 1.33 |
KubeletPSI | true | Beta | 1.34 | – |
KubeletSeparateDiskGC | false | Alpha | 1.29 | 1.30 |
KubeletSeparateDiskGC | true | Beta | 1.31 | – |
KubeletServiceAccountTokenForCredentialProviders | false | Alpha | 1.33 | 1.33 |
KubeletServiceAccountTokenForCredentialProviders | true | Beta | 1.34 | – |
ListFromCacheSnapshot | false | Alpha | 1.33 | – |
LocalStorageCapacityIsolationFSQuotaMonitoring | false | Alpha | 1.15 | 1.30 |
LocalStorageCapacityIsolationFSQuotaMonitoring | false | Beta | 1.31 | – |
LoggingAlphaOptions | false | Alpha | 1.24 | – |
LoggingBetaOptions | true | Beta | 1.24 | – |
MatchLabelKeysInPodTopologySpread | false | Alpha | 1.25 | 1.26 |
MatchLabelKeysInPodTopologySpread | true | Beta | 1.27 | – |
MatchLabelKeysInPodTopologySpreadSelectorMerge | true | Beta | 1.34 | – |
MaxUnavailableStatefulSet | false | Alpha | 1.24 | – |
MemoryQoS | false | Alpha | 1.22 | – |
MutableCSINodeAllocatableCount | false | Alpha | 1.33 | 1.33 |
MutableCSINodeAllocatableCount | false | Beta | 1.34 | – |
MutatingAdmissionPolicy | false | Alpha | 1.30 | 1.33 |
MutatingAdmissionPolicy | false | Beta | 1.34 | – |
NodeLogQuery | false | Alpha | 1.27 | 1.29 |
NodeLogQuery | false | Beta | 1.30 | – |
NodeSwap | false | Alpha | 1.22 | 1.27 |
NodeSwap | false | Beta | 1.28 | 1.29 |
NodeSwap | true | Beta | 1.30 | – |
NominatedNodeNameForExpectation | false | Alpha | 1.34 | 1.34 |
OpenAPIEnums | false | Alpha | 1.23 | 1.23 |
OpenAPIEnums | true | Beta | 1.24 | – |
PodAndContainerStatsFromCRI | false | Alpha | 1.23 | – |
PodCertificateRequest | false | Alpha | 1.34 | – |
PodDeletionCost | false | Alpha | 1.21 | 1.21 |
PodDeletionCost | true | Beta | 1.22 | – |
PodLevelResources | false | Alpha | 1.32 | 1.33 |
PodLevelResources | true | Beta | 1.34 | – |
PodLogsQuerySplitStreams | false | Alpha | 1.32 | – |
PodObservedGenerationTracking | false | Alpha | 1.33 | 1.33 |
PodObservedGenerationTracking | true | Beta | 1.34 | – |
PodReadyToStartContainersCondition | false | Alpha | 1.28 | 1.28 |
PodReadyToStartContainersCondition | true | Beta | 1.29 | – |
PodTopologyLabelsAdmission | false | Alpha | 1.33 | – |
PortForwardWebsockets | false | Alpha | 1.30 | 1.30 |
PortForwardWebsockets | true | Beta | 1.31 | – |
PreferSameTrafficDistribution | false | Alpha | 1.33 | 1.33 |
PreferSameTrafficDistribution | true | Beta | 1.34 | – |
ProcMountType | false | Alpha | 1.12 | 1.30 |
ProcMountType | false | Beta | 1.31 | 1.32 |
ProcMountType | true | Beta | 1.33 | – |
QOSReserved | false | Alpha | 1.11 | – |
ReduceDefaultCrashLoopBackOffDecay | false | Alpha | 1.33 | – |
RelaxedDNSSearchValidation | false | Alpha | 1.32 | 1.32 |
RelaxedDNSSearchValidation | true | Beta | 1.33 | – |
ReloadKubeletServerCertificateFile | true | Beta | 1.31 | – |
RemoteRequestHeaderUID | false | Alpha | 1.32 | – |
ResilientWatchCacheInitialization | true | Beta | 1.31 | – |
ResourceHealthStatus | false | Alpha | 1.31 | – |
RotateKubeletServerCertificate | false | Alpha | 1.7 | 1.11 |
RotateKubeletServerCertificate | true | Beta | 1.12 | – |
RuntimeClassInImageCriApi | false | Alpha | 1.29 | – |
SchedulerAsyncAPICalls | true | Beta | 1.34 | – |
SchedulerAsyncPreemption | false | Alpha | 1.32 | 1.32 |
SchedulerAsyncPreemption | true | Beta | 1.33 | – |
SchedulerPopFromBackoffQ | true | Beta | 1.33 | – |
SELinuxChangePolicy | false | Alpha | 1.32 | 1.32 |
SELinuxChangePolicy | true | Beta | 1.33 | – |
SELinuxMount | false | Alpha | 1.30 | 1.32 |
SELinuxMount | false | Beta | 1.33 | – |
SELinuxMountReadWriteOncePod | false | Alpha | 1.25 | 1.26 |
SELinuxMountReadWriteOncePod | false | Beta | 1.27 | 1.27 |
SELinuxMountReadWriteOncePod | true | Beta | 1.28 | – |
ServiceAcccountNodeAudienceRestriction | false | Beta | 1.32 | 1.32 |
ServiceAcccountNodeAudienceRestriction | true | Beta | 1.33 | – |
StorageCapacityScoring | false | Alpha | 1.33 | – |
StorageVersionAPI | false | Alpha | 1.20 | – |
StorageVersionHash | false | Alpha | 1.14 | 1.14 |
StorageVersionHash | true | Beta | 1.15 | – |
StorageVersionMigrator | false | Alpha | 1.30 | – |
StreamingCollectionEncodingToJSON | true | Alpha | 1.33 | – |
StreamingCollectionEncodingToProtobuf | true | Alpha | 1.33 | – |
StrictIPCIDRValidation | false | Alpha | 1.33 | – |
StructuredAuthenticationConfigurationEgressSelector | true | Beta | 1.34 | – |
SupplementalGroupsPolicy | false | Alpha | 1.31 | 1.32 |
SupplementalGroupsPolicy | true | Beta | 1.33 | – |
SystemdWatchdog | true | Beta | 1.32 | – |
TopologyManagerPolicyAlphaOptions | false | Alpha | 1.26 | – |
TopologyManagerPolicyBetaOptions | false | Beta | 1.26 | 1.27 |
TopologyManagerPolicyBetaOptions | true | Beta | 1.28 | – |
TranslateStreamCloseWebsocketRequests | false | Alpha | 1.29 | 1.29 |
TranslateStreamCloseWebsocketRequests | true | Beta | 1.30 | – |
UnauthenticatedHTTP2DOSMitigation | false | Beta | 1.28 | 1.28 |
UnauthenticatedHTTP2DOSMitigation | true | Beta | 1.29 | – |
UnknownVersionInteroperabilityProxy | false | Alpha | 1.28 | – |
UserNamespacesPodSecurityStandards | false | Alpha | 1.29 | – |
UserNamespacesSupport | false | Alpha | 1.28 | 1.29 |
UserNamespacesSupport | false | Beta | 1.30 | 1.32 |
UserNamespacesSupport | true | Beta | 1.33 | – |
WatchCacheInitializationPostStartHook | false | Beta | 1.31 | – |
WatchList | false | Alpha | 1.27 | 1.31 |
WatchList | true | Beta | 1.32 | 1.32 |
WatchList | false | Beta | 1.33 | 1.33 |
WatchList | true | Beta | 1.34 | – |
WatchListClient | false | Beta | 1.30 | – |
WindowsCPUAndMemoryAffinity | false | Alpha | 1.32 | – |
WindowsGracefulNodeShutdown | false | Alpha | 1.32 | 1.33 |
WindowsGracefulNodeShutdown | true | Beta | 1.34 | – |
已毕业或已弃用功能的功能门
特性 | 默认 | 阶段 | 首次出现 | 最后出现 |
---|---|---|---|---|
AllowDNSOnlyNodeCSR | false | 已弃用 | 1.31 | – |
AllowInsecureKubeletCertificateSigningRequests | false | 已弃用 | 1.31 | – |
AllowServiceLBStatusOnNonLB | false | 已弃用 | 1.29 | – |
AnonymousAuthConfigurableEndpoints | false | Alpha | 1.31 | 1.31 |
AnonymousAuthConfigurableEndpoints | true | Beta | 1.32 | 1.33 |
AnonymousAuthConfigurableEndpoints | true | GA | 1.34 | – |
AnyVolumeDataSource | false | Alpha | 1.18 | 1.23 |
AnyVolumeDataSource | true | Beta | 1.24 | 1.32 |
AnyVolumeDataSource | true | GA | 1.33 | – |
APIServerTracing | false | Alpha | 1.22 | 1.26 |
APIServerTracing | true | Beta | 1.27 | 1.33 |
APIServerTracing | true | GA | 1.34 | – |
AuthorizeNodeWithSelectors | false | Alpha | 1.31 | 1.31 |
AuthorizeNodeWithSelectors | true | Beta | 1.32 | 1.33 |
AuthorizeNodeWithSelectors | true | GA | 1.34 | – |
AuthorizeWithSelectors | false | Alpha | 1.31 | 1.31 |
AuthorizeWithSelectors | true | Beta | 1.32 | 1.33 |
AuthorizeWithSelectors | true | GA | 1.34 | – |
BtreeWatchCache | true | Beta | 1.32 | 1.32 |
BtreeWatchCache | true | GA | 1.33 | – |
CPUManagerPolicyOptions | false | Alpha | 1.22 | 1.22 |
CPUManagerPolicyOptions | true | Beta | 1.23 | 1.32 |
CPUManagerPolicyOptions | true | GA | 1.33 | – |
CRDValidationRatcheting | false | Alpha | 1.28 | 1.29 |
CRDValidationRatcheting | true | Beta | 1.30 | 1.32 |
CRDValidationRatcheting | true | GA | 1.33 | – |
CronJobsScheduledAnnotation | true | Beta | 1.28 | 1.31 |
CronJobsScheduledAnnotation | true | GA | 1.32 | – |
CSIMigrationPortworx | false | Alpha | 1.23 | 1.24 |
CSIMigrationPortworx | false | Beta | 1.25 | 1.30 |
CSIMigrationPortworx | true | Beta | 1.31 | 1.32 |
CSIMigrationPortworx | true | GA | 1.33 | – |
CustomResourceFieldSelectors | false | Alpha | 1.30 | 1.30 |
CustomResourceFieldSelectors | true | Beta | 1.31 | 1.31 |
CustomResourceFieldSelectors | true | GA | 1.32 | – |
DisableNodeKubeProxyVersion | false | Alpha | 1.29 | 1.30 |
DisableNodeKubeProxyVersion | true | Beta | 1.31.0 | 1.31.0 |
DisableNodeKubeProxyVersion | false | 已弃用 | 1.31.1 | – |
DisableNodeKubeProxyVersion | false | 已弃用 | 1.32 | 1.32 |
DisableNodeKubeProxyVersion | true | 已弃用 | 1.33 | – |
DynamicResourceAllocation | false | Alpha | 1.30 | 1.31 |
DynamicResourceAllocation | false | Beta | 1.32 | 1.33 |
DynamicResourceAllocation | true | GA | 1.34 | – |
ElasticIndexedJob | true | Beta | 1.27 | 1.30 |
ElasticIndexedJob | true | GA | 1.31 | – |
ExecProbeTimeout | true | GA | 1.20 | – |
HonorPVReclaimPolicy | false | Alpha | 1.23 | 1.30 |
HonorPVReclaimPolicy | true | Beta | 1.31 | 1.32 |
HonorPVReclaimPolicy | true | GA | 1.33 | – |
InPlacePodVerticalScalingAllocatedStatus | false | Alpha | 1.32 | 1.32 |
InPlacePodVerticalScalingAllocatedStatus | false | 已弃用 | 1.33 | – |
JobBackoffLimitPerIndex | false | Alpha | 1.28 | 1.28 |
JobBackoffLimitPerIndex | true | Beta | 1.29 | 1.32 |
JobBackoffLimitPerIndex | true | GA | 1.33 | – |
JobPodReplacementPolicy | false | Alpha | 1.28 | 1.28 |
JobPodReplacementPolicy | true | Beta | 1.29 | 1.33 |
JobPodReplacementPolicy | true | GA | 1.34 | – |
JobSuccessPolicy | false | Alpha | 1.30 | 1.30 |
JobSuccessPolicy | true | Beta | 1.31 | 1.32 |
JobSuccessPolicy | true | GA | 1.33 | – |
KMSv1 | true | 已弃用 | 1.28 | 1.28 |
KMSv1 | false | 已弃用 | 1.29 | – |
KubeletCgroupDriverFromCRI | false | Alpha | 1.28 | 1.30 |
KubeletCgroupDriverFromCRI | true | Beta | 1.31 | – |
KubeletCgroupDriverFromCRI | true | GA | 1.34 | – |
KubeletTracing | false | Alpha | 1.25 | 1.26 |
KubeletTracing | true | Beta | 1.27 | 1.33 |
KubeletTracing | true | GA | 1.34 | – |
LoadBalancerIPMode | false | Alpha | 1.29 | 1.30 |
LoadBalancerIPMode | true | Beta | 1.30 | 1.31 |
LoadBalancerIPMode | true | GA | 1.32 | – |
LogarithmicScaleDown | false | Alpha | 1.21 | 1.21 |
LogarithmicScaleDown | true | Beta | 1.22 | 1.30 |
LogarithmicScaleDown | true | GA | 1.31 | – |
MatchLabelKeysInPodAffinity | false | Alpha | 1.29 | 1.30 |
MatchLabelKeysInPodAffinity | true | Beta | 1.31 | 1.32 |
MatchLabelKeysInPodAffinity | true | GA | 1.33 | – |
MemoryManager | false | Alpha | 1.21 | 1.21 |
MemoryManager | true | Beta | 1.22 | 1.31 |
MemoryManager | true | GA | 1.32 | – |
MultiCIDRServiceAllocator | false | Alpha | 1.27 | 1.30 |
MultiCIDRServiceAllocator | false | Beta | 1.31 | 1.32 |
MultiCIDRServiceAllocator | true | GA | 1.33 | – |
NFTablesProxyMode | false | Alpha | 1.29 | 1.30 |
NFTablesProxyMode | true | Beta | 1.31 | 1.32 |
NFTablesProxyMode | true | GA | 1.33 | – |
NodeInclusionPolicyInPodTopologySpread | false | Alpha | 1.25 | 1.25 |
NodeInclusionPolicyInPodTopologySpread | true | Beta | 1.26 | 1.32 |
NodeInclusionPolicyInPodTopologySpread | true | GA | 1.33 | – |
OrderedNamespaceDeletion | false | Beta | 1.30 | 1.32 |
OrderedNamespaceDeletion | true | Beta | 1.33 | 1.33 |
OrderedNamespaceDeletion | true | GA | 1.34 | – |
PodIndexLabel | true | Beta | 1.28 | 1.31 |
PodIndexLabel | true | GA | 1.32 | – |
PodLifecycleSleepAction | false | Alpha | 1.29 | 1.29 |
PodLifecycleSleepAction | true | Beta | 1.30 | 1.33 |
PodLifecycleSleepAction | true | GA | 1.34 | – |
PodLifecycleSleepActionAllowZero | false | Alpha | 1.32 | 1.32 |
PodLifecycleSleepActionAllowZero | true | Beta | 1.33 | 1.33 |
PodLifecycleSleepActionAllowZero | true | GA | 1.34 | – |
PodSchedulingReadiness | false | Alpha | 1.26 | 1.26 |
PodSchedulingReadiness | true | Beta | 1.27 | 1.29 |
PodSchedulingReadiness | true | GA | 1.30 | – |
RecoverVolumeExpansionFailure | false | Alpha | 1.23 | 1.31 |
RecoverVolumeExpansionFailure | true | Beta | 1.32 | 1.33 |
RecoverVolumeExpansionFailure | true | GA | 1.34 | – |
RecursiveReadOnlyMounts | false | Alpha | 1.30 | 1.30 |
RecursiveReadOnlyMounts | true | Beta | 1.31 | 1.32 |
RecursiveReadOnlyMounts | true | GA | 1.33 | – |
RelaxedEnvironmentVariableValidation | false | Alpha | 1.30 | 1.31 |
RelaxedEnvironmentVariableValidation | true | Beta | 1.32 | 1.33 |
RelaxedEnvironmentVariableValidation | true | GA | 1.34 | – |
RetryGenerateName | false | Alpha | 1.30 | 1.30 |
RetryGenerateName | true | Beta | 1.31 | 1.31 |
RetryGenerateName | true | GA | 1.32 | – |
SchedulerQueueingHints | true | Beta | 1.28 | 1.28 |
SchedulerQueueingHints | false | Beta | 1.29 | 1.31 |
SchedulerQueueingHints | true | Beta | 1.32 | 1.33 |
SchedulerQueueingHints | true | GA | 1.34 | – |
SeparateCacheWatchRPC | true | Beta | 1.28 | 1.32 |
SeparateCacheWatchRPC | false | 已弃用 | 1.33 | – |
SeparateTaintEvictionController | true | Beta | 1.29 | 1.33 |
SeparateTaintEvictionController | true | GA | 1.34 | – |
ServiceAccountTokenJTI | false | Alpha | 1.29 | 1.29 |
ServiceAccountTokenJTI | true | Beta | 1.30 | 1.31 |
ServiceAccountTokenJTI | true | GA | 1.32 | – |
ServiceAccountTokenNodeBinding | false | Alpha | 1.29 | 1.30 |
ServiceAccountTokenNodeBinding | true | Beta | 1.31 | 1.32 |
ServiceAccountTokenNodeBinding | true | GA | 1.33 | – |
ServiceAccountTokenNodeBindingValidation | false | Alpha | 1.29 | 1.29 |
ServiceAccountTokenNodeBindingValidation | true | Beta | 1.30 | 1.31 |
ServiceAccountTokenNodeBindingValidation | true | GA | 1.32 | – |
ServiceAccountTokenPodNodeInfo | false | Alpha | 1.29 | 1.29 |
ServiceAccountTokenPodNodeInfo | true | Beta | 1.30 | 1.31 |
ServiceAccountTokenPodNodeInfo | true | GA | 1.32 | – |
ServiceTrafficDistribution | false | Alpha | 1.30 | 1.30 |
ServiceTrafficDistribution | true | Beta | 1.31 | 1.32 |
ServiceTrafficDistribution | true | GA | 1.33 | – |
SidecarContainers | false | Alpha | 1.28 | 1.28 |
SidecarContainers | true | Beta | 1.29 | 1.32 |
SidecarContainers | true | GA | 1.33 | – |
SizeMemoryBackedVolumes | false | Alpha | 1.20 | 1.21 |
SizeMemoryBackedVolumes | true | Beta | 1.22 | 1.31 |
SizeMemoryBackedVolumes | true | GA | 1.32 | – |
StatefulSetAutoDeletePVC | false | Alpha | 1.23 | 1.26 |
StatefulSetAutoDeletePVC | true | Beta | 1.27 | 1.31 |
StatefulSetAutoDeletePVC | true | GA | 1.32 | – |
StatefulSetStartOrdinal | false | Alpha | 1.26 | 1.26 |
StatefulSetStartOrdinal | true | Beta | 1.27 | 1.30 |
StatefulSetStartOrdinal | true | GA | 1.31 | – |
StorageNamespaceIndex | true | Beta | 1.30 | 1.32 |
StorageNamespaceIndex | true | 已弃用 | 1.33 | – |
StrictCostEnforcementForVAP | false | Beta | 1.30 | 1.31 |
StrictCostEnforcementForVAP | true | GA | 1.32 | – |
StrictCostEnforcementForWebhooks | false | Beta | 1.31 | 1.31 |
StrictCostEnforcementForWebhooks | true | GA | 1.32 | – |
StructuredAuthenticationConfiguration | false | Alpha | 1.29 | 1.29 |
StructuredAuthenticationConfiguration | true | Beta | 1.30 | 1.33 |
StructuredAuthenticationConfiguration | true | GA | 1.34 | – |
StructuredAuthorizationConfiguration | false | Alpha | 1.29 | 1.29 |
StructuredAuthorizationConfiguration | true | Beta | 1.30 | 1.31 |
StructuredAuthorizationConfiguration | true | GA | 1.32 | – |
TopologyAwareHints | false | Alpha | 1.21 | 1.22 |
TopologyAwareHints | false | Beta | 1.23 | 1.23 |
TopologyAwareHints | true | Beta | 1.24 | 1.32 |
TopologyAwareHints | true | GA | 1.33 | – |
TopologyManagerPolicyOptions | false | Alpha | 1.26 | 1.27 |
TopologyManagerPolicyOptions | true | Beta | 1.28 | 1.31 |
TopologyManagerPolicyOptions | true | GA | 1.32 | – |
VolumeAttributesClass | false | Alpha | 1.29 | 1.30 |
VolumeAttributesClass | false | Beta | 1.31 | 1.33 |
VolumeAttributesClass | true | GA | 1.34 | – |
WatchFromStorageWithoutResourceVersion | false | Beta | 1.30 | 1.32 |
WatchFromStorageWithoutResourceVersion | false | 已弃用 | 1.33 | – |
WindowsHostNetwork | true | Alpha | 1.26 | 1.32 |
WindowsHostNetwork | false | 已弃用 | 1.33 | – |
WinDSR | false | Alpha | 1.14 | 1.32 |
WinDSR | true | Beta | 1.33 | 1.33 |
WinDSR | true | GA | 1.34 | – |
WinOverlay | false | Alpha | 1.14 | 1.19 |
WinOverlay | true | Beta | 1.20 | 1.33 |
WinOverlay | true | GA | 1.34 | – |
使用功能
功能阶段
功能可以处于 Alpha、Beta 或 GA 阶段。Alpha 功能意味着
- 默认禁用。
- 可能存在 bug。启用该功能可能会暴露 bug。
- 随时可能放弃对该功能的支持,恕不另行通知。
- API 可能在后续软件版本中以不兼容的方式更改,恕不另行通知。
- 由于 bug 风险增加且缺乏长期支持,仅建议在短期测试集群中使用。
Beta 功能意味着
- 通常默认启用。Beta API 组 默认禁用。
- 该功能经过充分测试。启用该功能被认为是安全的。
- 总体功能的支持不会被放弃,尽管细节可能会改变。
- 对象的模式和/或语义可能在后续的 beta 或稳定版本中以不兼容的方式更改。发生这种情况时,我们将提供迁移到下一版本的说明。这可能需要删除、编辑和重新创建 API 对象。编辑过程可能需要仔细考虑。依赖该功能的应用可能需要停机。
- 由于后续版本可能存在不兼容的更改,因此建议仅用于非业务关键用途。如果您有多个可以独立升级的集群,则可以放宽此限制。
注意
请务必尝试 Beta 功能并提供反馈!在它们退出 Beta 后,我们可能不再进行更改。通用可用 (GA) 功能也称为稳定功能。它意味着
- 该功能始终启用;您无法禁用它。
- 不再需要相应的功能门。
- 稳定的功能版本将在未来的许多版本中出现在发布的软件中。
功能门列表
每个功能门都旨在启用/禁用特定的功能。
AllowDNSOnlyNodeCSR
:允许 kubelet 请求一个没有可用节点 IP,只有 DNS 名称的证书。AllowInsecureKubeletCertificateSigningRequests
:禁用节点对 kubelet 签名者的 CertificateSigningRequests 的准入验证。除非禁用此功能门,否则 Kubernetes 会强制要求新的 kubelet 证书的commonName
与system:node:$nodeName
匹配。AllowParsingUserUIDFromCertAuth
:启用此功能后,X.509 证书中的主题名称属性1.3.6.1.4.1.57683.2
在证书身份验证期间将被解析为用户 UID。AllowServiceLBStatusOnNonLB
:允许在LoadBalancer
类型以外的服务上设置.status.ingress.loadBalancer
。AllowUnsafeMalformedObjectDeletion
:允许集群操作员使用 **list** 操作识别损坏的资源,并引入一个ignoreStoreReadErrorWithClusterBreakingPotential
选项,操作员可以设置该选项以使用 Kubernetes API 执行对这些损坏资源的不安全和强制 **delete** 操作。AnonymousAuthConfigurableEndpoints
:为 API 服务器启用 可配置的匿名身份验证端点。AnyVolumeDataSource
:启用将任何自定义资源用作 PVC 的DataSource
。APIResponseCompression
:压缩LIST
或GET
请求的 API 响应。APIServerIdentity
:在集群中为每个 API 服务器分配一个 ID,使用 Lease。APIServerTracing
:为 API 服务器添加分布式跟踪支持。有关更多详细信息,请参阅 Kubernetes 系统组件的跟踪。APIServingWithRoutine
:此功能门提高了 API 服务器的性能:API 服务器可以使用单独的 goroutine(由 Go 运行时管理的轻量级线程)来处理 **watch** 请求。AuthorizeNodeWithSelectors
:使 Node 授权器 使用细粒度的选择器授权。AuthorizeWithSelectors
:允许授权使用字段和标签选择器。在 SubjectAccessReview API 中启用fieldSelector
和labelSelector
字段,将字段和标签选择器信息传递给 授权 Webhook,在 授权器 CEL 库 中启用fieldSelector
和labelSelector
函数,并启用检查 授权 WebhookmatchConditions
中的fieldSelector
和labelSelector
字段。BtreeWatchCache
:启用后,API 服务器将用基于 BTree 的实现替换基于 HashMap 的旧版watch cache。此替换可能会带来性能提升。CBORServingAndStorage
:将 CBOR 启用为支持的请求和响应编码,并作为自定义资源的优选存储编码。ClearingNominatedNodeNameAfterBinding
:启用后,每当 Pod 绑定到节点时,都会清除.status.nominatedNodeName
。CloudControllerManagerWebhook
:在云控制器管理器中启用 Webhook。ClusterTrustBundle
:启用 ClusterTrustBundle 对象和 kubelet 集成。ClusterTrustBundleProjection
:clusterTrustBundle
投影卷源。ComponentFlagz
:启用组件的 flagz 端点。有关更多信息,请参阅 zpages。ComponentSLIs
:在 kubelet、kube-scheduler、kube-proxy、kube-controller-manager、cloud-controller-manager 等 Kubernetes 组件上启用/metrics/slis
端点,允许您抓取健康检查指标。ComponentStatusz
:启用组件的 statusz 端点。有关更多信息,请参阅 zpages。ConcurrentWatchObjectDecode
:启用并发 watch 对象解码。这是为了避免在安装了转换 Webhook 时 API 服务器的 watch 缓存饥饿。ConsistentListFromCache
:通过直接从 watch 缓存提供一致的 **list** 请求来增强 Kubernetes API 服务器的性能,从而提高可伸缩性和响应时间。为了实现一致的从缓存 list,Kubernetes 需要一个较新的 etcd 版本(v3.4.31+ 或 v3.5.13+),其中包含对 watch progress 请求功能的修复。如果提供较旧的 etcd 版本,Kubernetes 将自动检测到它并回退到从 etcd 提供一致的读取。Progress 通知确保 watch 缓存与 etcd 一致,同时减少从 etcd 进行资源密集型仲裁读取的需要。
有关更多详细信息,请参阅 Kubernetes 文档中关于 **get** 和 **list** 的语义。
ContainerCheckpoint
:启用 kubeletcheckpoint
API。有关更多详细信息,请参阅 Kubelet Checkpoint API。ContainerRestartRules
:启用配置容器级重启策略和重启规则的功能。有关更多详细信息,请参阅 容器重启策略和规则。ContainerStopSignals
:启用容器生命周期中的 StopSignal 使用,以使用用于停止容器的自定义停止信号进行配置。ContextualLogging
:在支持上下文日志记录的 Kubernetes 组件的日志输出中启用额外详细信息。CoordinatedLeaderElection
:启用支持 LeaseCandidate API 的行为,并确定性地启用 Kubernetes 控制平面的协调领导者选举。CPUManagerPolicyAlphaOptions
:这允许对 CPUManager 策略进行微调,提供实验性的 Alpha 质量选项。此功能门保护了一组 CPUManager 选项,这些选项的质量级别为 alpha。此功能门永远不会升级到 beta 或 stable。CPUManagerPolicyBetaOptions
:这允许对 CPUManager 策略进行微调,提供实验性的 Beta 质量选项。此功能门保护了一组 CPUManager 选项,这些选项的质量级别为 beta。此功能门永远不会升级到 stable。CPUManagerPolicyOptions
:允许对 CPUManager 策略进行微调。CRDValidationRatcheting
:启用对内部 Kubernetes API 的声明式验证。启用后,具有声明式验证规则(使用 Go 代码中的 IDL 标签定义)的 API 将同时执行生成的声明式验证代码和原始手写验证代码。将比较结果,并通过declarative_validation_mismatch_total
指标报告任何差异。只有手写验证结果才会返回给用户(例如,在请求路径中实际进行验证)。启用此功能后,原始手写验证仍然是权威验证,但如果启用了 DeclarativeValidationTakeover 功能门,则可以更改此行为。此功能门仅在 kube-apiserver 上运行。CronJobsScheduledAnnotation
:将计划作业时间设置为 CronJob 代为创建的作业上的 注解。CrossNamespaceVolumeDataSource
:启用跨命名空间卷数据源的使用,允许您在 PersistentVolumeClaim 的dataSourceRef
字段中指定源命名空间。CSIMigrationPortworx
:启用 shim 和翻译逻辑,将 Portworx 内部插件的卷操作路由到 Portworx CSI 插件。需要在集群中安装并配置 Portworx CSI 驱动程序。CSIVolumeHealth
:在节点上启用 CSI 卷健康监控支持。CustomCPUCFSQuotaPeriod
:允许节点更改 kubelet 配置中的cpuCFSQuotaPeriod
。CustomResourceFieldSelectors
:在 CustomResourceDefinition API 中启用selectableFields
,以允许过滤自定义资源的 **list**、**watch** 和 **deletecollection** 请求。DeclarativeValidation
:启用内部 Kubernetes API 的声明式验证。启用后,具有声明式验证规则(使用 Go 代码中的 IDL 标签定义)的 API 将同时执行生成的声明式验证代码和原始手写验证代码。将比较结果,并通过declarative_validation_mismatch_total
指标报告任何差异。只有手写验证结果才会返回给用户(例如,在请求路径中实际进行验证)。启用此功能后,原始手写验证仍然是权威验证,但如果启用了 DeclarativeValidationTakeover 功能门,则可以更改此行为。此功能门仅在 kube-apiserver 上运行。DeclarativeValidationTakeover
:启用此功能后,与 DeclarativeValidation 功能门一起,声明式验证错误将直接返回给调用者,取代具有声明式实现的规则的手写验证错误。禁用此功能门时(且DeclarativeValidation
已启用),将始终返回手写验证错误,有效地将声明式验证置于 **mismatch validation mode**,该模式会监视但不影响 API 响应。这种 **mismatch validation mode** 允许监视declarative_validation_mismatch_total
和declarative_validation_panic_total
指标,这些指标是安全推出的实现细节,普通用户不应直接与之交互。此功能门仅在 kube-apiserver 上运行。注意:尽管声明式验证旨在与手写验证在功能上等效,但两者在错误消息的描述上可能有所不同。DeploymentReplicaSetTerminatingReplicas
:在 Deployments 和 ReplicaSets 中启用新的状态字段.status.terminatingReplicas
,以允许跟踪终止中的 Pod。DisableAllocatorDualWrite
:您可以启用
MultiCIDRServiceAllocator
功能门。API 服务器支持从旧的位图 ClusterIP 分配器迁移到新的 IPAddress 分配器。API 服务器会在两个分配器上执行双写。如果您已完成迁移的相关阶段,此功能门将禁用对新 Cluster IP 分配器的双写;您可以启用此功能门。
DisableNodeKubeProxyVersion
:禁用设置 Node 的kubeProxyVersion
字段。DRAAdminAccess
:启用在 ResourceClaim 或 ResourceClaimTemplate 中请求管理员访问权限的支持。管理员访问权限授予对正在使用的设备的访问权限,并可能在使设备可用于容器时启用其他权限。从 Kubernetes v1.33 开始,只有在标记为
resource.kubernetes.io/admin-access: "true"
(区分大小写)的命名空间中获得创建 ResourceClaim 或 ResourceClaimTemplate 对象授权的用户才能使用adminAccess
字段。这确保了非管理员用户不会滥用该功能。从 Kubernetes v1.34 开始,此标签已更新为resource.kubernetes.io/admin-access: "true"
。除非您还启用了
DynamicResourceAllocation
功能门,否则此功能门无效。DRAConsumableCapacity
:启用多个 ResourceClaim 或请求之间的设备共享。
此外,如果设备支持共享,其资源(容量)可以通过定义的共享策略进行管理。
DRADeviceBindingConditions
:启用对 DRA 相关字段中的 DeviceBindingConditions 的支持。这允许在绑定阶段之前进行彻底的设备就绪检查和附加过程。DRADeviceTaints
:使用动态资源分配管理设备时,启用对设备进行污点标记和选择性容忍这些污点的支持。
除非您还启用了
DynamicResourceAllocation
功能门,否则此功能门无效。DRAExtendedResource
:启用对 DRA 的扩展资源分配功能的支持。它使得在 DeviceClass 中指定扩展资源名称成为可能。
除非启用了
DynamicResourceAllocation
功能门,否则此功能门无效。DRAPartitionableDevices
:启用对 DRA 的可分区设备的支持。这允许驱动程序广告多个映射到物理设备相同资源的设备。
除非您还启用了
DynamicResourceAllocation
功能门,否则此功能门无效。DRAPrioritizedList
:启用对优先列表功能的支持。它使得为 ResourceClaim 中的请求指定优先子请求列表成为可能。
除非您还启用了
DynamicResourceAllocation
功能门,否则此功能门无效。DRAResourceClaimDeviceStatus
:启用对 ResourceClaim.status.devices 字段的支持,并允许从 DRA 驱动程序设置此状态。它需要启用DynamicResourceAllocation
功能门。DynamicResourceAllocation
:启用支持具有自定义参数的资源以及独立于 Pod 的生命周期。资源的分配由 Kubernetes 调度程序基于“结构化参数”进行处理。ElasticIndexedJob
:允许通过同时修改spec.completions
和spec.parallelism
来扩展或缩减 Indexed Jobs,使得spec.completions == spec.parallelism
。有关更多详细信息,请参阅 弹性索引作业 的文档。EnvFiles
:通过文件支持定义容器的环境变量值。有关更多详细信息,请参阅 通过 Init Container 定义环境变量值。EventedPLEG
:启用 kubelet 通过对 CRI 的扩展来接收来自容器运行时的容器生命周期事件的支持。(PLEG 是“Pod lifecycle event generator”的缩写)。为了使此功能有用,您还需要为集群中运行的每个容器运行时启用对容器生命周期事件的支持。如果容器运行时不支持容器生命周期事件,则 kubelet 会自动切换到传统的通用 PLEG 机制,即使您已启用此功能门。ExecProbeTimeout
:确保 kubelet 尊重 exec 探测超时。此功能门用于处理您现有工作负载可能依赖于已修复的错误的情况,即 Kubernetes 忽略了 exec 探测超时。请参阅 就绪探测。ExternalServiceAccountTokenSigner
:启用设置--service-account-signing-endpoint
,使 kube-apiserver 使用 外部签名者 进行令牌签名和令牌验证密钥管理。GracefulNodeShutdown
:在 kubelet 中启用优雅关机支持。在系统关机期间,kubelet 将尝试检测关机事件并优雅地终止节点上运行的 Pod。有关更多详细信息,请参阅 优雅节点关机。GracefulNodeShutdownBasedOnPodPriority
:启用 kubelet 在优雅关机节点时检查 Pod 优先级。HonorPVReclaimPolicy
:尊重 Persistent Volume 的回收策略(当其为Delete
时),而不管 PV-PVC 的删除顺序。有关更多详细信息,请检查 PersistentVolume 删除保护 finalizer 文档。HostnameOverride
:允许将任何 FQDN 设置为 Pod 的主机名。HPAConfigurableTolerance
:在 HorizontalPodAutoscaler 指标上启用设置 容差阈值。HPAScaleToZero
:在使用自定义或外部指标时,为HorizontalPodAutoscaler
资源启用将minReplicas
设置为 0。ImageMaximumGCAge
:启用 kubelet 配置字段imageMaximumGCAge
,允许管理员指定垃圾回收图像的年龄。ImageVolume
:允许在 Pod 中使用image
卷源。此卷源允许您将容器镜像挂载为只读卷。InformerResourceVersion
:使用 informer 启用对最后同步资源版本的检查。InPlacePodVerticalScaling
:启用就地 Pod 垂直扩展。InPlacePodVerticalScalingAllocatedStatus
:在容器状态中启用allocatedResources
字段。此功能还需要启用InPlacePodVerticalScaling
gate。InPlacePodVerticalScalingExclusiveCPUs
:为 Guaranteed Pod 中具有整数 CPU 请求的容器启用资源重新调整。它仅适用于启用了InPlacePodVerticalScaling
和CPUManager
功能,并且 CPUManager 策略设置为static
的节点。InTreePluginPortworxUnregister
:停止在 kubelet 和卷控制器中注册 Portworx 内部插件。JobBackoffLimitPerIndex
:允许在 Indexed 作业中为每个索引指定最大 Pod 重试次数。JobManagedBy
:允许将 Job 对象的协调委托给外部控制器。JobPodReplacementPolicy
:允许您为 Job 中终止中的 Pod 指定 Pod 替换。JobSuccessPolicy
:允许用户根据已成功 Pod 的集合指定 Job 何时可以声明为成功。KMSv1
:启用 KMS v1 API 以实现静态加密。有关更多详细信息,请参阅 使用 KMS 提供程序进行数据加密。KubeletCgroupDriverFromCRI
:从 CRI 中检测 kubelet cgroup 驱动程序配置选项的支持。此功能门现在对所有集群都已开启。但是,它仅在支持
RuntimeConfig
CRI 调用的 CRI 容器运行时所在的节点上运行。如果 CRI 支持此功能,kubelet 将忽略cgroupDriver
配置设置(或已弃用的--cgroup-driver
命令行参数)。如果容器运行时不支持,kubelet 将回退到使用cgroupDriver
配置设置配置的驱动程序。kubelet 将在 Kubernetes 1.36 中停止回退到此配置。因此,用户必须在此之前将他们的 CRI 容器运行时升级到支持RuntimeConfig
CRI 调用的版本。管理员可以使用指标kubelet_cri_losing_support
来查看其集群中是否有节点将在 1.36 版本中失去支持。以下 CRI 版本支持此 CRI 调用- containerd: v2.0.0 中添加了支持
- CRI-O: v1.28.0 中添加了支持
有关更多详细信息,请参阅 配置 cgroup 驱动程序。
KubeletCrashLoopBackOffMax
:启用对可配置的每节点回退最大值进行支持,用于重启处于CrashLoopBackOff
状态的容器。有关更多详细信息,请检查 kubelet 配置文件 中的crashLoopBackOff.maxContainerRestartPeriod
字段。KubeletEnsureSecretPulledImages
:确保请求镜像的 Pod 在镜像已存在于节点上时,使用提供的凭据获得访问该镜像的授权。请参阅 确保镜像拉取凭据验证。KubeletFineGrainedAuthz
:为 kubelet 的 HTTP(s) API 启用细粒度授权。KubeletInUserNamespace
:启用在用户命名空间中运行 kubelet 的支持。请参阅 以非 root 用户运行 Kubernetes 节点组件。KubeletPodResourcesDynamicResources
:扩展 kubelet 的Pod 资源监控 gRPC API 端点 List 和 Get,以包含通过动态资源分配在 ResourceClaim 中分配的资源。KubeletPodResourcesGet
:启用 kubelet 上 Pod 资源的Get
gRPC 端点。此 API 增强了资源分配报告。KubeletPSI
:启用 kubelet 将压力停顿信息(PSI)指标暴露给 Summary API 和 Prometheus 指标。KubeletSeparateDiskGC
:拆分镜像文件系统功能使 kubelet 能够对部署在独立文件系统上的镜像(只读层)和/或容器(可写层)执行垃圾回收。KubeletServiceAccountTokenForCredentialProviders
:启用 kubelet 将绑定到正在拉取镜像的 Pod 的服务帐户令牌发送到凭据提供程序插件。KubeletTracing
:为 kubelet 添加分布式跟踪支持。启用后,kubelet CRI 接口和经过身份验证的 HTTP 服务器将被仪器化以生成 OpenTelemetry trace spans。有关更多详细信息,请参阅 Kubernetes 系统组件的跟踪。ListFromCacheSnapshot
:启用 API 服务器为 watch 缓存存储生成快照,并使用这些快照来提供 LIST 请求。LoadBalancerIPMode
:允许为type
设置为LoadBalancer
的服务设置ipMode
。有关更多信息,请参阅 指定负载均衡器状态的 IPMode。LocalStorageCapacityIsolationFSQuotaMonitoring
:当为本地临时存储启用LocalStorageCapacityIsolation
时,emptyDir 卷 的底层文件系统支持项目配额,并且启用了UserNamespacesSupport
,则将使用项目配额来监控emptyDir
卷存储消耗,而不是使用文件系统遍历,从而确保更好的性能和准确性。LogarithmicScaleDown
:在控制器缩减时,基于 Pod 时间戳的对数分桶,实现半随机选择要驱逐的 Pod。LoggingAlphaOptions
:允许对实验性的 Alpha 质量日志记录选项进行微调。LoggingBetaOptions
:允许对实验性的 Beta 质量日志记录选项进行微调。MatchLabelKeysInPodAffinity
:为Pod (anti)affinity 启用matchLabelKeys
和mismatchLabelKeys
字段。MatchLabelKeysInPodTopologySpread
:为Pod topology spread constraints 启用matchLabelKeys
字段。MatchLabelKeysInPodTopologySpreadSelectorMerge
:启用将从matchLabelKeys
构建的选择器合并到 Pod topology spread constraints 的labelSelector
中。当matchLabelKeys
功能与MatchLabelKeysInPodTopologySpread
功能标志一起启用时,可以启用此功能门。MaxUnavailableStatefulSet
:启用为 StatefulSet 的滚动更新策略设置maxUnavailable
字段。该字段指定了更新期间可能不可用的 Pod 的最大数量。MemoryManager
:允许根据 NUMA 拓扑为容器设置内存亲和性。MemoryQoS
:使用 cgroup v2 内存控制器在 Pod/容器上启用内存保护和使用节流。MultiCIDRServiceAllocator
:使用 IPAddress 对象跟踪 Service Cluster IP 的 IP 地址分配。MutableCSINodeAllocatableCount
:启用此功能门后,CSINode 的.spec.drivers[*].allocatable.count
字段将变得可变,并且 CSIDriver 对象中将提供一个新的字段nodeAllocatableUpdatePeriodSeconds
。这允许定期更新节点的分配卷容量报告,防止有状态 Pod 由于 kube-scheduler 依赖的过时信息而卡住。MutatingAdmissionPolicy
:启用可变admissionPolicy 支持,允许在 admission 控制期间应用CEL 突变。
对于 Kubernetes v1.30 和 v1.31,此功能门已存在但无效。
NFTablesProxyMode
:允许 kube-proxy 在nftables 模式下运行。NodeInclusionPolicyInPodTopologySpread
:在计算 Pod topology spread skew 时,启用在 Pod topology spread constraints 中使用nodeAffinityPolicy
和nodeTaintsPolicy
。NodeLogQuery
:启用通过/logs
端点查询节点服务的日志。NodeSwap
:启用 kubelet 为节点上的 Kubernetes 工作负载分配交换内存。必须与KubeletConfiguration.failSwapOn
设置为 false 一起使用。有关更多详细信息,请参阅 交换内存。NominatedNodeNameForExpectation
:启用后,kube-scheduler 使用.status.nominatedNodeName
来表达 Pod 将要绑定到哪个位置。外部组件也可以写入 Pod 的.status.nominatedNodeName
来提供建议的放置。OpenAPIEnums
:启用在 API 服务器返回的 spec 中填充 OpenAPI 架构的“enum”字段。OrderedNamespaceDeletion
:在删除命名空间时,Pod 资源将在其他资源之前被删除。PodAndContainerStatsFromCRI
:配置 kubelet 从 CRI 容器运行时收集容器和 Pod 统计信息,而不是从 cAdvisor 收集。截至 1.26 版本,这还包括从 CRI 收集指标并通过/metrics/cadvisor
发送(而不是让 cAdvisor 直接发送)。PodCertificateRequest
:启用 PodCertificateRequest 对象和 podCertificate 投影卷源。PodDeletionCost
:启用 Pod 删除成本 功能,该功能允许用户影响 ReplicaSet 的缩减顺序。PodIndexLabel
:启用 Job 控制器和 StatefulSet 控制器在创建新 Pod 时将 Pod 索引添加为标签。有关更多详细信息,请参阅 Job 完成模式文档 和 StatefulSet Pod 索引标签文档。PodLevelResources
:启用Pod 级资源:能够指定 Pod 级别的资源请求和限制,而不是仅为特定容器指定。PodLifecycleSleepAction
:在容器生命周期钩子中启用sleep
操作。PodLifecycleSleepActionAllowZero
:允许为 容器生命周期钩子 中的sleep
操作设置零值。PodLogsQuerySplitStreams
:使用 Pod API,允许从容器的日志流中获取特定的日志流(stdout 或 stderr)。PodObservedGenerationTracking
:启用 kubelet 在 Pod.status
中设置observedGeneration
,并启用其他组件在 Pod 条件中设置observedGeneration
。此功能允许反映在记录总体状态或某些特定条件时 Pod 的.metadata.generation
。存储它有助于避免丢失更新的风险。PodReadyToStartContainersCondition
:启用 kubelet 将 PodReadyToStartContainers 条件标记在 Pod 上。
此功能门以前称为
PodHasNetworkCondition
,并且关联的条件命名为PodHasNetwork
。PodSchedulingReadiness
:启用设置schedulingGates
字段以控制 Pod 的调度就绪状态。PodTopologyLabelsAdmission
:启用PodTopologyLabels
admission 插件。有关详细信息,请参阅 Pod Topology Labels。PortForwardWebsockets
:允许从请求 v2 版本(v2.portforward.k8s.io
)的子协议的客户端进行端口转发子协议(port-forward
)的 WebSocket 流式传输。PreferSameTrafficDistribution
:允许在 ServicetrafficDistribution
字段中使用PreferSameZone
和PreferSameNode
的值。ProcMountType
:通过设置 PodsecurityContext
的procMount
字段,启用对容器的 proc 挂载类型的控制。QOSReserved
:允许在 QoS 级别进行资源预留,防止较低 QoS 级别的 Pod 突增到较高 QoS 级别请求的资源(目前仅限内存)。RecoverVolumeExpansionFailure
:允许用户将 PVC 编辑为更小的尺寸,以便他们可以从先前发生的卷扩展失败中恢复。有关更多详细信息,请参阅 从扩展卷失败中恢复。RecursiveReadOnlyMounts
:启用递归只读挂载的支持。有关更多详细信息,请参阅 只读挂载。ReduceDefaultCrashLoopBackOffDecay
:将集群中处于CrashLoopBackOff
状态的容器的初始延迟和容器重启之间的最大延迟都减少到1s
的初始延迟和60s
的最大延迟。RelaxedDNSSearchValidation
:放宽容器的 DNS 搜索字符串(.spec.dnsConfig.searches
)的服务器端验证。例如,启用此门后,可以在 DNS 名称搜索字符串中包含_
字符。RelaxedEnvironmentVariableValidation
:允许在环境变量中使用几乎所有可打印的 ASCII 字符。ReloadKubeletServerCertificateFile
:启用 kubelet TLS 服务器在指定的证书文件更改时更新其证书。
当在 kubelet 配置中指定
tlsCertFile
和tlsPrivateKeyFile
时,此功能非常有用。对于使用 TLS boostrap 等其他情况,此功能门无效。RemoteRequestHeaderUID
:启用 API 服务器通过请求头身份验证接受 UID(用户 ID)。这还将使kube-apiserver
的 API aggregator 在将请求转发到服务聚合 API 的服务器时,通过标准头添加 UID。ResilientWatchCacheInitialization
:启用弹性 watchcache 初始化以避免控制平面过载。ResourceHealthStatus
:在 Pod 的
.status
中启用allocatedResources
字段。该字段报告 Pod 中每个容器的其他详细信息,以及分配给 Pod 的每个设备的健康信息。此功能适用于由设备插件和动态资源分配管理的设备。有关更多详细信息,请参阅设备插件和不健康的设备。
RetryGenerateName
:启用此功能后,如果控制平面检测到与现有对象的名称冲突,将自动重试使用
generateName
的请求,最多重试 8 次。RotateKubeletServerCertificate
:启用 kubelet 上服务器 TLS 证书的轮换。有关更多详细信息,请参阅 kubelet 配置。RuntimeClassInImageCriApi
:允许基于引用它们的 Pod 的运行时类来拉取镜像。SchedulerAsyncAPICalls
:将 kube-scheduler 更改为使整个调度周期摆脱对 Kubernetes API 服务器的阻塞请求。而是使用异步代码与 Kubernetes API 进行交互。SchedulerAsyncPreemption
:启用在调度器内运行一些与抢占相关的昂贵操作,异步进行。异步处理抢占可以提高整体 Pod 调度延迟。SchedulerPopFromBackoffQ
:通过在 activeQ 为空时从 backoffQ 中弹出 Pod 来改进调度队列行为。这允许尽快处理可能可调度的 Pod,消除了回退队列的惩罚效应。SchedulerQueueingHints
:启用调度器队列提示,这有助于减少无用的重新排队。如果集群中发生可能使 Pod 可调度的更改,调度器将重试调度 Pod。队列提示是内部信号,允许调度器根据先前的调度尝试过滤掉与未调度 Pod 相关的集群更改。SELinuxChangePolicy
:启用
spec.securityContext.seLinuxChangePolicy
字段。此字段可用于选择退出使用挂载选项将 SELinux 标签应用于 Pod 卷。当具有不同 SELinux 标签的 Pod(例如特权和非特权 Pod)之间共享支持使用 SELinux 挂载选项进行挂载的单个卷时,这是必需的。启用
SELinuxChangePolicy
功能门需要启用SELinuxMountReadWriteOncePod
功能门。SELinuxMount
:通过允许 kubelet 直接以正确的 SELinux 标签挂载 Pod 的卷,而不是递归地更改卷上的每个文件,来加速容器启动。它扩展了
SELinuxMountReadWriteOncePod
功能门背后的性能改进,将其实现扩展到所有卷。启用
SELinuxMount
功能门需要启用SELinuxMountReadWriteOncePod
和SELinuxChangePolicy
功能门。SELinuxMountReadWriteOncePod
:通过允许 kubelet 直接以正确的 SELinux 标签挂载 Pod 的卷,而不是递归地更改卷上的每个文件,来加速容器启动。初始实现侧重于 ReadWriteOncePod 卷。SeparateCacheWatchRPC
:允许 API 服务器 watch 缓存创建专用的 RPC watch。这可以防止 watch 缓存被其他 watch 饿死。SeparateTaintEvictionController
:启用运行基于污点的驱逐控制器,该控制器作为独立控制器(与节点生命周期控制器分开)执行基于污点的驱逐。ServiceAcccountNodeAudienceRestriction
:此门用于限制 kubelet 可以请求服务帐户令牌的目标受众。ServiceAccountTokenJTI
:控制是否将 JTI(UUID)嵌入生成的服务帐户令牌中,以及是否将这些 JTI 记录到 Kubernetes 审计日志中,以供这些令牌将来的请求使用。ServiceAccountTokenNodeBinding
:控制 API 服务器是否允许将服务帐户令牌绑定到 Node 对象。ServiceAccountTokenNodeBindingValidation
:控制 apiserver 是否将验证服务帐户令牌中的 Node 引用。ServiceAccountTokenPodNodeInfo
:控制 apiserver 在颁发绑定到 Pod 对象的服务帐户令牌时是否嵌入关联节点的节点名称和 uid。ServiceTrafficDistribution
:允许使用 Services 中可选的spec.trafficDistribution
字段。该字段提供了一种表达流量分布到 Service 端点偏好的方式。SidecarContainers
:允许将 init 容器的restartPolicy
设置为Always
,以便容器成为 sidecar 容器(可重启的 init 容器)。有关更多详细信息,请参阅 Sidecar 容器和 restartPolicy。SizeMemoryBackedVolumes
:使 kubelets 能够确定内存备份卷(主要是emptyDir
卷)的大小限制。StatefulSetAutoDeletePVC
:允许使用可选的.spec.persistentVolumeClaimRetentionPolicy
字段,从而控制 StatefulSet 生命周期中 PVC 的删除。有关更多详细信息,请参阅 PersistentVolumeClaim 保留。StatefulSetStartOrdinal
:允许在 StatefulSet 中配置起始序数。有关更多详细信息,请参阅 起始序数。StorageCapacityScoring
:功能门VolumeCapacityPriority
在 v1.32 中用于支持静态配置的存储。从 v1.33 开始,新的功能门StorageCapacityScoring
取代了旧的VolumeCapacityPriority
门,并增加了对动态配置存储的支持。启用StorageCapacityScoring
后,kube-scheduler 中的 VolumeBinding 插件将扩展为根据节点上的存储容量对节点进行评分。此功能适用于支持存储容量的 CSI 卷,包括由 CSI 驱动程序支持的本地存储。StorageNamespaceIndex
:为 API 服务器缓存中的命名空间作用域资源启用命名空间索引器,以加速 list 操作。StorageVersionAPI
:启用存储版本 API。StorageVersionHash
:允许 API 服务器在 discovery 中暴露存储版本哈希。StorageVersionMigrator
:启用存储版本迁移。有关更多详细信息,请参阅 使用存储版本迁移管理 Kubernetes 对象。StreamingCollectionEncodingToJSON
:允许 API 服务器 JSON 编码器逐项编码集合,而不是一次性全部编码。StreamingCollectionEncodingToProtobuf
:允许 API 服务器 Protobuf 编码器逐项编码集合,而不是一次性全部编码。StrictCostEnforcementForVAP
:对 ValidatingAdmissionPolicies 应用严格的 CEL 成本验证。StrictCostEnforcementForWebhooks
:对 admission webhook 中的matchConditions
应用严格的 CEL 成本验证。StrictIPCIDRValidation
:对包含 IP 地址和 CIDR 值的字段使用更严格的验证。
特别是,在启用此功能门的情况下,IPv4 地址中的八位字节不允许有任何前导
0
,并且禁止使用 IPv4 映射的 IPv6 值(例如::ffff:192.168.0.1
)。这些类型的值可能导致安全问题,因为不同的组件可能将同一字符串解释为指向不同的 IP 地址(如 CVE-2021-29923)。此收紧仅适用于内置 API 类型的字段,不适用于自定义资源类型、Kubernetes 配置文件中的值或命令行参数。
StructuredAuthenticationConfiguration
:为 API 服务器启用结构化身份验证配置。StructuredAuthenticationConfigurationEgressSelector
:在结构化身份验证配置中启用 Egress Selector。StructuredAuthorizationConfiguration
:启用结构化授权配置,以便集群管理员可以在 API 服务器处理链中指定多个授权 Webhook。SupplementalGroupsPolicy
:启用对细粒度 SupplementalGroups 的控制支持。有关更多详细信息,请参阅 为 Pod 配置细粒度 SupplementalGroups 控制。SystemdWatchdog
:允许使用 systemd watchdog 监控 kubelet 的健康状况。有关更多详细信息,请参阅 Kubelet Systemd Watchdog。TopologyAwareHints
:启用基于 EndpointSlices 中拓扑提示的拓扑感知路由。有关更多详细信息,请参阅 拓扑感知提示。TopologyManagerPolicyAlphaOptions
:允许对拓扑管理器策略进行微调,提供实验性的 Alpha 质量选项。此功能门保护了一组拓扑管理器选项,这些选项的质量级别为 alpha。此功能门永远不会升级到 beta 或 stable。TopologyManagerPolicyBetaOptions
:允许对拓扑管理器策略进行微调,提供实验性的 Beta 质量选项。此功能门保护了一组拓扑管理器选项,这些选项的质量级别为 beta。此功能门永远不会升级到 stable。TopologyManagerPolicyOptions
:启用拓扑管理器策略的微调。TranslateStreamCloseWebsocketRequests
:允许从请求 v5 版本(v5)的子协议的客户端(exec
、cp
、attach
)进行远程命令子协议的 WebSocket 流式传输。UnauthenticatedHTTP2DOSMitigation
: 启用对未经验证客户端的 HTTP/2 拒绝服务 (DoS) 缓解措施。Kubernetes v1.28.0 至 v1.28.2 不包含此功能门。UnknownVersionInteroperabilityProxy
: 当存在多个不同版本的 kube-apiserver 时,将资源请求代理到正确的对等 kube-apiserver。有关更多信息,请参阅混合版本代理。UserNamespacesPodSecurityStandards
: 启用 Pod 安全标准策略的放宽,以支持使用命名空间的 Pod。您必须在集群的所有节点上一致地设置此功能门的值,并且还必须启用UserNamespacesSupport
才能使用此功能。UserNamespacesSupport
: 为 Pod 启用用户命名空间支持。VolumeAttributesClass
: 启用对 VolumeAttributesClasses 的支持。有关更多信息,请参阅卷属性类。WatchCacheInitializationPostStartHook
: 启用 watchcache 初始化 post-start-hook,使其成为 readyz 的一部分(带超时)。WatchFromStorageWithoutResourceVersion
: 启用不带resourceVersion
的 watch,使其可以从存储中提供。WatchList
: 启用对watch 请求中对象的初始状态进行流式传输的支持。WatchListClient
: 允许 API 客户端请求数据流而不是获取完整列表。此功能在client-go
中可用,并且需要服务器上启用 WatchList 功能。如果服务器不支持WatchList
,客户端将无缝回退到标准的列表请求。WindowsCPUAndMemoryAffinity
: 通过 CPUManager、MemoryManager 和拓扑管理器为 Windows 节点添加 CPU 和内存亲和性支持。WindowsGracefulNodeShutdown
: 启用 kubelet 对 Windows 节点进行优雅关闭的支持。在系统关机期间,kubelet 将尝试检测关机事件并优雅地终止节点上运行的 Pod。有关更多详细信息,请参阅优雅节点关机。WindowsHostNetwork
: 启用将 Windows 容器连接到主机网络命名空间的支持。WinDSR
: 允许 kube-proxy 为 Windows 创建 DSR 负载均衡器。WinOverlay
: 允许 kube-proxy 在 Windows 上以覆盖模式运行。