Feature Gate
本页面包含管理员可以在不同 Kubernetes 组件上指定的各种 Feature Gate 的概述。
有关功能的阶段说明,请参阅功能阶段。
概述
Feature Gate 是一组描述 Kubernetes 功能的键值对 (key=value)。你可以通过在每个 Kubernetes 组件上使用 --feature-gates
命令行标志来开启或关闭这些功能。
每个 Kubernetes 组件都允许你启用或禁用与其相关的一组 Feature Gate。使用 -h
标志可以查看所有组件的完整 Feature Gate 列表。要为组件(例如 kubelet)设置 Feature Gate,请使用 --feature-gates
标志,并将其赋值为 Feature 对的列表。
--feature-gates=...,GracefulNodeShutdown=true
以下表格总结了你可以在不同 Kubernetes 组件上设置的 Feature Gate。
- “起始版本 (Since)” 列包含功能引入或其发布阶段发生变更的 Kubernetes 版本。
- “截止版本 (Until)” 列(如果不为空)包含你仍然可以使用某个 Feature Gate 的最后一个 Kubernetes 版本。
- 如果某个功能处于 Alpha 或 Beta 状态,你可以在Alpha/Beta Feature Gate 表中找到列出的该功能。
- 如果某个功能是稳定的 (Stable),你可以在毕业/废弃 Feature Gate 表中找到列出的该功能的所有阶段。
- 如需参考已移除的旧 Feature Gate,请查阅已移除的 Feature Gate。
注意
如需参考已移除的旧 Feature Gate,请查阅已移除的 Feature Gate。Alpha 或 Beta 功能的 Feature Gate
功能 | 默认值 | 阶段 | 起始版本 | 截止版本 |
---|---|---|---|---|
AllowUnsafeMalformedObjectDeletion | false | Alpha | 1.32 | – |
AnonymousAuthConfigurableEndpoints | false | Alpha | 1.31 | 1.31 |
AnonymousAuthConfigurableEndpoints | true | Beta | 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 | – |
APIServerTracing | false | Alpha | 1.22 | 1.26 |
APIServerTracing | true | Beta | 1.27 | – |
APIServingWithRoute | false | Alpha | 1.30 | – |
AuthorizeNodeWithSelectors | false | Alpha | 1.31 | 1.31 |
AuthorizeNodeWithSelectors | true | Beta | 1.32 | – |
AuthorizeWithSelectors | false | Alpha | 1.31 | 1.31 |
AuthorizeWithSelectors | true | Beta | 1.32 | – |
BtreeWatchCache | true | Beta | 1.32 | – |
CBORServingAndStorage | false | Alpha | 1.32 | – |
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 | – |
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 | – |
CPUManagerPolicyOptions | false | Alpha | 1.22 | 1.22 |
CPUManagerPolicyOptions | 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 | – |
DRADeviceTaints | false | Alpha | 1.33 | – |
DRAPartitionableDevices | false | Alpha | 1.33 | – |
DRAPrioritizedList | false | Alpha | 1.33 | – |
DRAResourceClaimDeviceStatus | false | Alpha | 1.32 | 1.32 |
DRAResourceClaimDeviceStatus | true | Beta | 1.33 | – |
DynamicResourceAllocation | false | Alpha | 1.30 | 1.31 |
DynamicResourceAllocation | false | Beta | 1.32 | – |
EventedPLEG | false | Alpha | 1.26 | – |
ExternalServiceAccountTokenSigner | false | Alpha | 1.32 | – |
GracefulNodeShutdown | false | Alpha | 1.20 | 1.20 |
GracefulNodeShutdown | true | Beta | 1.21 | – |
GracefulNodeShutdownBasedOnPodPriority | false | Alpha | 1.23 | 1.23 |
GracefulNodeShutdownBasedOnPodPriority | true | Beta | 1.24 | – |
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 | – |
InPlacePodVerticalScaling | false | Alpha | 1.27 | 1.32 |
InPlacePodVerticalScaling | true | Beta | 1.33 | – |
InPlacePodVerticalScalingAllocatedStatus | false | Alpha | 1.32 | – |
InPlacePodVerticalScalingExclusiveCPUs | false | Alpha | 1.32 | – |
InTreePluginPortworxUnregister | false | Alpha | 1.23 | – |
JobManagedBy | false | Alpha | 1.30 | 1.31 |
JobManagedBy | true | Beta | 1.32 | – |
JobPodReplacementPolicy | false | Alpha | 1.28 | 1.28 |
JobPodReplacementPolicy | true | Beta | 1.29 | – |
KubeletCgroupDriverFromCRI | false | Alpha | 1.28 | 1.30 |
KubeletCgroupDriverFromCRI | true | Beta | 1.31 | – |
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 | – |
KubeletPodResourcesGet | false | Alpha | 1.27 | – |
KubeletPSI | false | Alpha | 1.33 | – |
KubeletSeparateDiskGC | false | Alpha | 1.29 | 1.30 |
KubeletSeparateDiskGC | true | Beta | 1.31 | – |
KubeletServiceAccountTokenForCredentialProviders | false | Alpha | 1.33 | – |
KubeletTracing | false | Alpha | 1.25 | 1.26 |
KubeletTracing | true | Beta | 1.27 | – |
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 | – |
MaxUnavailableStatefulSet | false | Alpha | 1.24 | – |
MemoryQoS | false | Alpha | 1.22 | – |
MutableCSINodeAllocatableCount | false | Alpha | 1.33 | – |
MutatingAdmissionPolicy | false | Alpha | 1.30 | – |
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 | – |
OpenAPIEnums | false | Alpha | 1.23 | 1.23 |
OpenAPIEnums | true | Beta | 1.24 | – |
OrderedNamespaceDeletion | false | Beta | 1.30 | 1.32 |
OrderedNamespaceDeletion | true | Beta | 1.33 | – |
PodAndContainerStatsFromCRI | false | Alpha | 1.23 | – |
PodDeletionCost | false | Alpha | 1.21 | 1.21 |
PodDeletionCost | true | Beta | 1.22 | – |
PodLevelResources | false | Alpha | 1.32 | – |
PodLifecycleSleepAction | false | Alpha | 1.29 | 1.29 |
PodLifecycleSleepAction | true | Beta | 1.30 | – |
PodLifecycleSleepActionAllowZero | false | Alpha | 1.32 | 1.32 |
PodLifecycleSleepActionAllowZero | true | Beta | 1.33 | – |
PodLogsQuerySplitStreams | false | Alpha | 1.32 | – |
PodObservedGenerationTracking | false | Alpha | 1.33 | – |
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 | – |
ProcMountType | false | Alpha | 1.12 | 1.30 |
ProcMountType | false | Beta | 1.31 | – |
QOSReserved | false | Alpha | 1.11 | – |
RecoverVolumeExpansionFailure | false | Alpha | 1.23 | 1.31 |
RecoverVolumeExpansionFailure | true | Beta | 1.32 | – |
ReduceDefaultCrashLoopBackOffDecay | false | Alpha | 1.33 | – |
RelaxedDNSSearchValidation | false | Alpha | 1.32 | – |
RelaxedEnvironmentVariableValidation | false | Alpha | 1.30 | 1.31 |
RelaxedEnvironmentVariableValidation | true | Beta | 1.32 | – |
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 | – |
SchedulerAsyncPreemption | false | Alpha | 1.32 | 1.32 |
SchedulerAsyncPreemption | true | Beta | 1.33 | – |
SchedulerPopFromBackoffQ | true | Beta | 1.33 | – |
SchedulerQueueingHints | true | Beta | 1.28 | 1.28 |
SchedulerQueueingHints | false | Beta | 1.29 | 1.31 |
SchedulerQueueingHints | true | Beta | 1.32 | – |
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 | – |
SeparateCacheWatchRPC | true | Beta | 1.20 | – |
SeparateTaintEvictionController | true | Beta | 1.29 | – |
StorageCapacityScoring | false | Alpha | 1.33 | – |
StorageNamespaceIndex | true | Beta | 1.30 | – |
StorageVersionAPI | false | Alpha | 1.20 | – |
StorageVersionHash | false | Alpha | 1.14 | 1.14 |
StorageVersionHash | true | Beta | 1.15 | – |
StorageVersionMigrator | false | Alpha | 1.30 | – |
StrictIPCIDRValidation | false | Alpha | 1.33 | – |
StructuredAuthenticationConfiguration | false | Alpha | 1.29 | 1.29 |
StructuredAuthenticationConfiguration | true | Beta | 1.30 | – |
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 | – |
VolumeAttributesClass | false | Alpha | 1.29 | 1.30 |
VolumeAttributesClass | false | Beta | 1.31 | – |
WatchCacheInitializationPostStartHook | false | Beta | 1.31 | – |
WatchFromStorageWithoutResourceVersion | false | Beta | 1.30 | – |
WatchList | false | Alpha | 1.27 | 1.31 |
WatchList | true | Beta | 1.32 | 1.32 |
WatchList | false | Beta | 1.33 | – |
WatchListClient | false | Beta | 1.30 | – |
WindowsCPUAndMemoryAffinity | false | Alpha | 1.32 | – |
WindowsGracefulNodeShutdown | false | Alpha | 1.32 | – |
WindowsHostNetwork | true | Alpha | 1.26 | – |
WinDSR | false | Alpha | 1.14 | – |
WinOverlay | false | Alpha | 1.14 | 1.19 |
WinOverlay | true | Beta | 1.20 | – |
已毕业或废弃的功能的 Feature Gate
功能 | 默认值 | 阶段 | 起始版本 | 截止版本 |
---|---|---|---|---|
AdmissionWebhookMatchConditions | false | Alpha | 1.27 | 1.27 |
AdmissionWebhookMatchConditions | true | Beta | 1.28 | 1.29 |
AdmissionWebhookMatchConditions | true | GA | 1.30 | – |
AggregatedDiscoveryEndpoint | false | Alpha | 1.26 | 1.26 |
AggregatedDiscoveryEndpoint | true | Beta | 1.27 | 1.29 |
AggregatedDiscoveryEndpoint | true | GA | 1.30 | – |
AllowDNSOnlyNodeCSR | false | 已废弃 | 1.31 | – |
AllowInsecureKubeletCertificateSigningRequests | false | 已废弃 | 1.31 | – |
AllowServiceLBStatusOnNonLB | false | 已废弃 | 1.29 | – |
AnyVolumeDataSource | false | Alpha | 1.18 | 1.23 |
AnyVolumeDataSource | true | Beta | 1.24 | 1.32 |
AnyVolumeDataSource | true | GA | 1.33 | – |
APIListChunking | false | Alpha | 1.8 | 1.8 |
APIListChunking | true | Beta | 1.9 | 1.28 |
APIListChunking | true | GA | 1.29 | – |
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 | – |
DevicePluginCDIDevices | false | Alpha | 1.28 | 1.28 |
DevicePluginCDIDevices | true | Beta | 1.29 | 1.30 |
DevicePluginCDIDevices | true | GA | 1.31 | – |
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 | – |
EfficientWatchResumption | false | Alpha | 1.20 | 1.20 |
EfficientWatchResumption | true | Beta | 1.21 | 1.23 |
EfficientWatchResumption | true | GA | 1.24 | – |
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 | – |
JobBackoffLimitPerIndex | false | Alpha | 1.28 | 1.28 |
JobBackoffLimitPerIndex | true | Beta | 1.29 | 1.32 |
JobBackoffLimitPerIndex | true | GA | 1.33 | – |
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 | – |
KubeProxyDrainingTerminatingNodes | false | Alpha | 1.28 | 1.30 |
KubeProxyDrainingTerminatingNodes | true | Beta | 1.30 | 1.30 |
KubeProxyDrainingTerminatingNodes | true | GA | 1.31 | – |
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 | – |
PodDisruptionConditions | false | Alpha | 1.25 | 1.25 |
PodDisruptionConditions | true | Beta | 1.26 | 1.30 |
PodDisruptionConditions | true | GA | 1.31 | – |
PodIndexLabel | true | Beta | 1.28 | 1.31 |
PodIndexLabel | true | GA | 1.32 | – |
PodSchedulingReadiness | false | Alpha | 1.26 | 1.26 |
PodSchedulingReadiness | true | Beta | 1.27 | 1.29 |
PodSchedulingReadiness | true | GA | 1.30 | – |
RecursiveReadOnlyMounts | false | Alpha | 1.30 | 1.30 |
RecursiveReadOnlyMounts | true | Beta | 1.31 | 1.32 |
RecursiveReadOnlyMounts | true | GA | 1.33 | – |
RemainingItemCount | false | Alpha | 1.15 | 1.15 |
RemainingItemCount | true | Beta | 1.16 | 1.28 |
RemainingItemCount | true | GA | 1.29 | – |
RetryGenerateName | false | Alpha | 1.30 | 1.30 |
RetryGenerateName | true | Beta | 1.31 | 1.31 |
RetryGenerateName | true | GA | 1.32 | – |
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 | – |
StrictCostEnforcementForVAP | false | Beta | 1.30 | 1.31 |
StrictCostEnforcementForVAP | true | GA | 1.32 | – |
StrictCostEnforcementForWebhooks | false | Beta | 1.31 | 1.31 |
StrictCostEnforcementForWebhooks | true | GA | 1.32 | – |
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 | – |
ValidatingAdmissionPolicy | false | Alpha | 1.26 | 1.27 |
ValidatingAdmissionPolicy | false | Beta | 1.28 | 1.29 |
ValidatingAdmissionPolicy | true | GA | 1.30 | – |
WatchBookmark | false | Alpha | 1.15 | 1.15 |
WatchBookmark | true | Beta | 1.16 | 1.16 |
WatchBookmark | true | GA | 1.17 | – |
使用功能
功能阶段
功能可以处于 Alpha、Beta 或 GA 阶段。处于 Alpha 阶段的功能意味着:
- 默认禁用。
- 可能存在错误。启用此功能可能会暴露出 Bug。
- 对此功能的支持可能随时取消,恕不另行通知。
- API 可能在以后的软件版本中以不兼容的方式更改,恕不另行通知。
- 仅建议在短期测试集群中使用,因为存在较高的 Bug 风险且缺乏长期支持。
处于 Beta 阶段的功能意味着:
- 通常默认启用。Beta API 组默认禁用。
- 此功能经过充分测试。启用此功能被认为是安全的。
- 对整个功能的支持不会取消,尽管细节可能会改变。
- 对象的 Schema 和/或语义可能在随后的 Beta 或 Stable 版本中以不兼容的方式更改。发生这种情况时,我们将提供迁移到下一版本的说明。这可能需要删除、编辑和重新创建 API 对象。编辑过程可能需要仔细考虑。这可能需要依赖此功能的应用程序停机。
- 仅建议用于非业务关键用途,因为在后续版本中可能存在不兼容的更改。如果你的集群可以独立升级,则可以放宽此限制。
注意
请务必试用 Beta 功能并提供反馈!在它们退出 Beta 阶段后,我们可能无法再进行更多更改。通用可用 (General Availability) (GA) 功能也称为稳定 (stable) 功能。它意味着:
- 此功能始终启用;你无法禁用它。
- 相应的 Feature Gate 不再需要。
- 功能的稳定版本将在许多后续发布的软件版本中出现。
Feature Gate 列表
每个 Feature Gate 用于启用/禁用特定功能。
AdmissionWebhookMatchConditions
: 在修改性和校验性准入 Webhook 上启用匹配条件。AggregatedDiscoveryEndpoint
: 启用单个 HTTP 端点/discovery/<version>
,该端点支持原生 HTTP 缓存并包含 API 服务器已知的所有 APIResource 的 ETag。AllowDNSOnlyNodeCSR
: 允许 kubelet 在没有可用节点 IP 的情况下仅使用 DNS 名称请求证书。AllowInsecureKubeletCertificateSigningRequests
: 禁用节点对 kubelet 签名者的证书签名请求 (CertificateSigningRequests) 的准入校验。除非禁用此 Feature Gate,否则 Kubernetes 将强制要求新的 kubelet 证书的commonName
与system:node:$nodeName
匹配。AllowServiceLBStatusOnNonLB
: 允许在类型不是LoadBalancer
的 Service 上设置.status.ingress.loadBalancer
。AllowUnsafeMalformedObjectDeletion
: 允许集群操作员使用 list 操作标识损坏的资源,并引入一个选项ignoreStoreReadErrorWithClusterBreakingPotential
,操作员可以设置此选项以使用 Kubernetes API 对此类损坏资源执行不安全和强制 delete 操作。AnonymousAuthConfigurableEndpoints
: 为 API 服务器启用匿名身份认证的可配置端点。AnyVolumeDataSource
: 允许使用任何 CustomResource 作为 PVC 的DataSource
。APIListChunking
: 允许 API 客户端分块从 API 服务器检索 (LIST
或GET
) 资源。APIResponseCompression
: 压缩LIST
或GET
请求的 API 响应。APIServerIdentity
: 使用租约 (Lease) 为集群中的每个 API 服务器分配一个 ID。APIServerTracing
: 在 API 服务器中增加对分布式追踪的支持。有关更多详细信息,请参阅Kubernetes 系统组件的追踪。APIServingWithRoute
: 此 Feature Gate 可提高 API 服务器性能:API 服务器可以使用单独的 Goroutine(由 Go 运行时管理的轻量级线程)来处理watch 请求。AuthorizeNodeWithSelectors
: 使节点授权器使用细粒度的选择器授权。需要启用AuthorizeWithSelectors
。AuthorizeWithSelectors
: 允许授权使用字段和标签选择器。在SubjectAccessReview API 中启用fieldSelector
和labelSelector
字段,将字段和标签选择器信息传递给授权 Webhook,在授权器 CEL 库中启用fieldSelector
和labelSelector
函数,并在授权 WebhookmatchConditions
中启用对fieldSelector
和labelSelector
字段的检查。BtreeWatchCache
: 启用后,API 服务器将使用基于 BTree 的实现替换旧的基于 HashMap 的 watch cache。此替换可能会带来性能改进。CBORServingAndStorage
: 启用 CBOR 作为请求和响应支持的编码,以及作为 CustomResource 的首选存储编码。CloudControllerManagerWebhook
: 在云控制器管理器中启用 Webhook。ClusterTrustBundle
: 启用 ClusterTrustBundle 对象和 kubelet 集成。ClusterTrustBundleProjection
:clusterTrustBundle
Projected Volume 源。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 cache 提供一致的 list 请求来增强 Kubernetes API 服务器性能,从而提高可伸缩性和响应时间。要从 cache 提供一致的 list,Kubernetes 需要较新的 etcd 版本(v3.4.31+ 或 v3.5.13+),其中包括对 watch progress request 功能的修复。如果提供了较旧的 etcd 版本,Kubernetes 将自动检测到并回退到从 etcd 提供一致的读取。进度通知可确保 watch cache 与 etcd 保持一致,同时减少对 etcd 进行资源密集型仲裁读取的需求。
有关更多详细信息,请参阅 Kubernetes 文档中关于get 和 list 的语义。
ContainerCheckpoint
: 启用 kubeletcheckpoint
API。有关更多详细信息,请参阅Kubelet 检查点 API。ContainerStopSignals
: 允许为容器使用 StopSignal 生命周期,以便配置用于停止容器的自定义停止信号。ContextualLogging
: 在支持上下文日志记录的 Kubernetes 组件的日志输出中启用更多详细信息。CoordinatedLeaderElection
: 启用支持 LeaseCandidate API 的行为,并以确定性方式为 Kubernetes 控制平面启用协调的领导者选举。CPUManagerPolicyAlphaOptions
: 此选项允许微调 CPUManager 策略,是实验性的、Alpha 质量的选项。此 Feature Gate 保护一组处于 Alpha 质量级别的 CPUManager 选项。此 Feature Gate 永远不会升级到 Beta 或 Stable。CPUManagerPolicyBetaOptions
: 此选项允许微调 CPUManager 策略,是实验性的、Beta 质量的选项。此 Feature Gate 保护一组处于 Beta 质量级别的 CPUManager 选项。此 Feature Gate 永远不会升级到 Stable。CPUManagerPolicyOptions
: 允许微调 CPUManager 策略。CRDValidationRatcheting
: 允许对 CustomResource 进行更新,即使更新中违反 OpenAPI Schema 的部分没有改变。有关更多详细信息,请参阅校验棘轮 (Validation Ratcheting)。CronJobsScheduledAnnotation
: 将 Job 的调度时间设置为由 CronJob 创建的 Job 上的注解 (annotation)。CrossNamespaceVolumeDataSource
: 启用跨 Namespace 的卷数据源的使用,允许你在 PersistentVolumeClaim 的dataSourceRef
字段中指定源 Namespace。CSIMigrationPortworx
: 启用垫片和转换逻辑,将来自 Portworx 树内插件的卷操作路由到 Portworx CSI 插件。需要在集群中安装和配置 Portworx CSI 驱动程序。CSIVolumeHealth
: 启用节点上的 CSI 卷健康状况监测支持。CustomCPUCFSQuotaPeriod
: 允许节点在kubelet 配置中更改cpuCFSQuotaPeriod
。CustomResourceFieldSelectors
: 在CustomResourceDefinition API 中启用selectableFields
,以允许过滤 CustomResource 的 list、watch 和 deletecollection 请求。DeclarativeValidation
: 启用树内 Kubernetes API 的声明性校验。启用此功能后,具有声明性校验规则(在 Go 代码中使用 IDL 标签定义)的 API 将同时执行生成的声明性校验代码和原始手写校验代码。结果将进行比较,任何差异将通过declarative_validation_mismatch_total
指标报告。仅将手写校验结果返回给用户(例如:在请求路径中实际校验)。启用此功能时,原始手写校验仍然是权威校验,但如果在启用此 Feature Gate 的同时启用 DeclarativeValidationTakeover Feature Gate,则可以更改此行为。此 Feature Gate 仅对 kube-apiserver 生效。DeclarativeValidationTakeover
: 启用时,连同 DeclarativeValidation 特性门一起,声明式验证错误将直接返回给调用方,替换已具有声明式实现的规则的手写验证错误。禁用时(且启用了DeclarativeValidation
),总是返回手写验证错误,这使得声明式验证实际上处于**不匹配验证模式**,此模式只会进行监控,但不会影响 API 响应。这种**不匹配验证模式**允许监控declarative_validation_mismatch_total
和declarative_validation_panic_total
指标,这些是用于安全推广的实现细节,普通用户无需直接与其交互。此特性门仅在 kube-apiserver 上运行。注意:尽管声明式验证旨在功能上与手写验证等效,但这两种方法之间错误消息的具体描述可能有所不同。DeploymentReplicaSetTerminatingReplicas
: 在 Deployment 和 ReplicaSet 中启用一个新的状态字段.status.terminatingReplicas
,以允许跟踪正在终止的 Pod。DevicePluginCDIDevices
: 在设备插件 API 中启用对 CDI 设备 ID 的支持。DisableAllocatorDualWrite
:可以启用
MultiCIDRServiceAllocator
特性门。API 服务器支持从旧的位图 ClusterIP 分配器迁移到新的 IPAddress 分配器。API 服务器在两个分配器上执行双写操作。该特性门禁用在新 Cluster IP 分配器上的双写;如果你已完成迁移的相关阶段,则可以启用此特性门。
DisableNodeKubeProxyVersion
: 禁用对 Node 的kubeProxyVersion
字段的设置。DRAAdminAccess
:启用在 ResourceClaim 或 ResourceClaimTemplate 中请求管理访问权限的支持。管理访问权限允许访问正在使用的设备,并且在容器中提供设备时可能启用额外的权限。从 Kubernetes v1.33 开始,只有被授权在带有
resource.k8s.io/admin-access: "true"
(区分大小写)标签的命名空间中创建 ResourceClaim 或 ResourceClaimTemplate 对象的用户才能使用adminAccess
字段。这确保了非管理用户不能滥用此特性。除非你同时也启用了
DynamicResourceAllocation
特性门,否则此特性门无效。DRADeviceTaints
:启用在使用动态资源分配管理设备时支持标记设备污点并选择性地容忍这些污点。
除非你同时也启用了
DynamicResourceAllocation
特性门,否则此特性门无效。DRAPartitionableDevices
:启用支持在 DRA 中请求可分区设备。这允许驱动程序通告映射到同一物理设备资源的多个设备。
除非你同时也启用了
DynamicResourceAllocation
特性门,否则此特性门无效。DRAPrioritizedList
:启用支持优先列表特性。这使得可以在 ResourceClaim 的请求中指定子请求的优先列表。
除非你同时也启用了
DynamicResourceAllocation
特性门,否则此特性门无效。DRAResourceClaimDeviceStatus
: 启用 ResourceClaim.status.devices 字段的支持,并支持从 DRA 驱动程序设置此状态。这要求启用DynamicResourceAllocation
特性门。DynamicResourceAllocation
: 启用支持具有自定义参数且生命周期独立于 Pod 的资源。资源分配由 Kubernetes 调度器基于“结构化参数”处理。EfficientWatchResumption
: 允许将存储发起的书签(进度通知)事件发送给用户。此特性仅适用于 watch 操作。ElasticIndexedJob
: 启用对索引 Job 进行扩缩容的能力,方法是同时修改spec.completions
和spec.parallelism
字段,使其满足spec.completions == spec.parallelism
。有关更多详细信息,请参阅弹性索引 Job 文档。EventedPLEG
: 启用 kubelet 支持通过 CRI 的扩展从容器运行时接收容器生命周期事件。(PLEG 是 “Pod lifecycle event generator” 的缩写,即 Pod 生命周期事件生成器)。要使此特性有用,你还需要在集群中运行的每个容器运行时中启用对容器生命周期事件的支持。如果容器运行时未宣布支持容器生命周期事件,则即使你启用了此特性门,kubelet 也会自动切换到传统的通用 PLEG 机制。ExecProbeTimeout
: 确保 kubelet 遵守 exec 探针超时。此特性门的存在是为了应对现有的工作负载可能依赖于一个已被修正的错误,即 Kubernetes 之前忽略了 exec 探针超时。请参阅就绪探针。ExternalServiceAccountTokenSigner
: 启用设置--service-account-signing-endpoint
,使 kube-apiserver 使用外部签名者进行令牌签名和令牌验证密钥管理。GracefulNodeShutdown
: 在 kubelet 中启用优雅关机支持。在系统关机期间,kubelet 将尝试检测关机事件并优雅地终止节点上运行的 Pod。更多详细信息请参阅节点优雅关机。GracefulNodeShutdownBasedOnPodPriority
: 启用 kubelet 在节点优雅关机时检查 Pod 优先级。HonorPVReclaimPolicy
: 当持久卷回收策略为Delete
时,无论 PV-PVC 删除顺序如何,均遵守该策略。更多详细信息,请查阅PersistentVolume 删除保护 Finalizer 文档。HPAConfigurableTolerance
: 允许为 HorizontalPodAutoscaler 指标设置容差阈值。HPAScaleToZero
: 使用自定义或外部指标时,允许为HorizontalPodAutoscaler
资源设置minReplicas
为 0。ImageMaximumGCAge
: 启用 kubelet 配置字段imageMaximumGCAge
,允许管理员指定镜像在多久之后会被垃圾回收。ImageVolume
: 允许在 Pod 中使用image
卷源。此卷源允许你将容器镜像作为只读卷挂载。InPlacePodVerticalScaling
: 启用 Pod 原地垂直扩缩容。InPlacePodVerticalScalingAllocatedStatus
: 在容器状态中启用allocatedResources
字段。此特性需要同时启用InPlacePodVerticalScaling
特性门。InPlacePodVerticalScalingExclusiveCPUs
: 启用带有整数 CPU 请求的 Guaranteed Pod 中的容器资源重设大小。它仅适用于启用了InPlacePodVerticalScaling
和CPUManager
特性且 CPUManager 策略设置为static
的节点。InTreePluginPortworxUnregister
: 停止在 kubelet 和卷控制器中注册 Portworx in-tree 插件。JobBackoffLimitPerIndex
: 允许为索引 Job 中的每个索引指定最大 Pod 重试次数。JobManagedBy
: 允许将 Job 对象的协调委托给外部控制器。JobPodReplacementPolicy
: 允许你指定Job 中正在终止的 Pod 的 Pod 替换策略。JobSuccessPolicy
: 允许用户根据成功 Pod 的集合指定何时可以将 Job 声明为已成功。KMSv1
: 为静态加密启用 KMS v1 API。更多详细信息,请参阅使用 KMS Provider 进行数据加密。KubeletCgroupDriverFromCRI
: 启用从CRI 检测 kubelet cgroup 驱动程序配置选项。你可以在支持该特性门并且有支持RuntimeConfig
CRI 调用的 CRI 容器运行时的节点上使用此特性门。如果 CRI 和 kubelet 都支持此特性,则 kubelet 将忽略cgroupDriver
配置设置(或已废弃的--cgroup-driver
命令行参数)。如果你启用此特性门但容器运行时不支持它,kubelet 将回退到使用由cgroupDriver
配置设置指定的驱动程序。更多详细信息,请参阅配置 cgroup 驱动程序。KubeletCrashLoopBackOffMax
: 启用支持为处于CrashLoopBackOff
状态的容器重启配置每个节点的回退最大值。更多详细信息,请查阅kubelet 配置文件中的crashLoopBackOff.maxContainerRestartPeriod
字段。KubeletEnsureSecretPulledImages
: 确保请求镜像的 Pod 在节点上已存在该镜像时,仍然使用提供的凭据验证访问镜像的权限。请参阅确保镜像拉取凭据验证。KubeletFineGrainedAuthz
: 启用对 kubelet 的 HTTP(s) API 进行细粒度授权。KubeletInUserNamespace
: 启用支持在用户命名空间中运行 kubelet。请参阅以非 root 用户身份运行 Kubernetes 节点组件。KubeletPodResourcesDynamicResources
: 扩展 kubelet 的 Pod 资源 gRPC 端点,以包含通过DynamicResourceAllocation
API 在ResourceClaims
中分配的资源。更多详细信息,请参阅资源分配报告。其中包含有关可分配资源的信息,使客户端能够正确跟踪节点上的可用计算资源。KubeletPodResourcesGet
: 为 Pod 资源启用 kubelet 上的Get
gRPC 端点。此 API 增强了资源分配报告。KubeletPSI
: 使 kubelet 能够在 Summary API 和 Prometheus 指标中暴露 Pressure Stall Information (PSI) 指标。KubeletSeparateDiskGC
: 分离镜像文件系统特性使 kubelet 能够在单独的文件系统上对部署的镜像(只读层)和/或容器(可写层)执行垃圾回收。KubeletServiceAccountTokenForCredentialProviders
: 启用 kubelet 将绑定到正在拉取镜像的 Pod 的服务账号令牌发送给凭据提供者插件。KubeletTracing
: 在 kubelet 中添加对分布式追踪的支持。启用后,将对 kubelet CRI 接口和经认证的 http 服务器进行插桩,以生成 OpenTelemetry 追踪跨度。更多详细信息,请参阅Kubernetes 系统组件追踪。KubeProxyDrainingTerminatingNodes
: 为externalTrafficPolicy: Cluster
的 Service 实现正在终止的节点的连接排水。LoadBalancerIPMode
: 允许为type
设置为LoadBalancer
的 Service 设置ipMode
。更多信息,请参阅指定负载均衡器状态的 IPMode。LocalStorageCapacityIsolationFSQuotaMonitoring
: 当针对本地临时存储启用LocalStorageCapacityIsolation
,且 emptyDir 卷的底层文件系统支持项目配额,并且启用了UserNamespacesSupport
时,将使用项目配额而非文件系统遍历来监控emptyDir
卷的存储消耗,从而确保更好的性能和准确性。LogarithmicScaleDown
: 启用基于 Pod 时间戳的对数分桶,以半随机方式选择要驱逐的 Pod,应用于控制器缩容。LoggingAlphaOptions
: 允许精细调整实验性的 Alpha 质量日志选项。LoggingBetaOptions
: 允许精细调整实验性的 Beta 质量日志选项。MatchLabelKeysInPodAffinity
: 启用Pod (反)亲和性的matchLabelKeys
和mismatchLabelKeys
字段。MatchLabelKeysInPodTopologySpread
: 启用Pod 拓扑分布约束的matchLabelKeys
字段。MaxUnavailableStatefulSet
: 启用为 StatefulSet 的滚动更新策略设置maxUnavailable
字段。该字段指定更新期间最大不可用 Pod 的数量。MemoryManager
: 允许基于 NUMA 拓扑为容器设置内存亲和性。MemoryQoS
: 使用 cgroup v2 memory controller 为 Pod/容器启用内存保护和使用限制。MultiCIDRServiceAllocator
: 使用 IPAddress 对象跟踪 Service cluster IP 的 IP 地址分配。MutableCSINodeAllocatableCount
: 启用此特性门后,CSINode.Spec.Drivers[*].Allocatable.Count
字段将变为可变,并且CSIDriver
对象中将新增一个字段NodeAllocatableUpdatePeriodSeconds
。这允许定期更新节点报告的可分配卷容量,防止有状态 Pod 因 kube-scheduler 依赖的过期信息而卡住。MutatingAdmissionPolicy
:启用MutatingAdmissionPolicy 支持,以便在准入控制中使用 CEL 变更。
对于 Kubernetes v1.30 和 v1.31,此特性门存在但无效。
NFTablesProxyMode
: 允许 kube-proxy 在nftables 模式下运行。NodeInclusionPolicyInPodTopologySpread
: 在计算 Pod 拓扑分布偏移时,允许在Pod 拓扑分布约束中使用nodeAffinityPolicy
和nodeTaintsPolicy
。NodeLogQuery
: 启用使用/logs
端点查询节点服务的日志。NodeSwap
: 启用 kubelet 为节点上的 Kubernetes 工作负载分配交换内存。必须与KubeletConfiguration.failSwapOn
设置为 false 一起使用。更多详细信息,请参阅交换内存。OpenAPIEnums
: 启用填充 API 服务器返回的规范中 OpenAPI schema 的 "enum" 字段。OrderedNamespaceDeletion
: 在命名空间删除期间,使 Pod 在其余资源之前被删除。PodAndContainerStatsFromCRI
: 配置 kubelet 从 CRI 容器运行时收集容器和 Pod 统计信息,而不是从 cAdvisor 收集。从 1.26 开始,这也包括从 CRI 收集指标并通过/metrics/cadvisor
发送(而不是由 cAdvisor 直接发送)。PodDeletionCost
: 启用Pod 删除开销特性,允许用户影响 ReplicaSet 的缩容顺序。PodDisruptionConditions
: 启用支持附加一个专用的 Pod 条件,指示 Pod 正在因中断而被删除。PodIndexLabel
: 使 Job 控制器和 StatefulSet 控制器能够在创建新 Pod 时将 Pod 索引作为标签添加。更多详细信息,请参阅Job 完成模式文档和StatefulSet Pod 索引标签文档。PodLevelResources
: 启用**Pod 级资源**:能够在 Pod 级别而非仅针对特定容器指定资源请求和限制的能力。PodLifecycleSleepAction
: 启用容器生命周期钩子中的sleep
action。PodLifecycleSleepActionAllowZero
: 允许为容器生命周期钩子中的sleep
action 设置零值。PodLogsQuerySplitStreams
: 启用使用 Pod API 从容器的日志流中获取特定日志流(stdout 或 stderr)。PodObservedGenerationTracking
: 使 kubelet 能够在 Pod 状态中设置observedGeneration
,并使其他组件在 Pod 条件中设置observedGeneration
,以反映记录状态或条件时 Pod 的metadata.generation
。PodReadyToStartContainersCondition
:使 kubelet 能够在 Pod 上标记 PodReadyToStartContainers 条件。
此特性门之前被称为
PodHasNetworkCondition
,相应的条件名为PodHasNetwork
。PodSchedulingReadiness
: 启用设置schedulingGates
字段来控制 Pod 的调度就绪性。PodTopologyLabelsAdmission
: 启用PodTopologyLabels
准入插件。详情请参阅Pod 拓扑标签。PortForwardWebsockets
: 允许客户端请求子协议的 v2 版本(v2.portforward.k8s.io
)时,对 portforward 子协议(port-forward
)进行 WebSocket 流传输。PreferSameTrafficDistribution
: 允许在 Service 的trafficDistribution
字段中使用PreferSameZone
和PreferSameNode
值。ProcMountType
: 通过设置 Pod 的securityContext
中的procMount
字段,启用对容器 proc 挂载类型的控制。QOSReserved
: 允许在 QoS 级别进行资源预留,防止较低 QoS 级别的 Pod 突发占用较高 QoS 级别请求的资源(目前仅支持内存)。RecoverVolumeExpansionFailure
: 允许用户编辑其 PVC 以减小大小,从而可以从之前发生的卷扩容失败中恢复。更多详细信息,请参阅从卷扩容失败中恢复。ReduceDefaultCrashLoopBackOffDecay
: 使集群中处于CrashLoopBackOff
状态的容器在节点上重启之间的初始延迟和最大延迟都减少到初始延迟1s
和最大延迟60s
。RelaxedDNSSearchValidation
: 放宽对容器 DNS 搜索字符串(.spec.dnsConfig.searches
)的服务器端验证。例如,启用此特性门后,在 DNS 名称搜索字符串中包含字符_
是允许的。RelaxedEnvironmentVariableValidation
: 允许在环境变量中使用几乎所有可打印的 ASCII 字符。ReloadKubeletServerCertificateFile
:使 kubelet TLS 服务器能够在指定的证书文件更改时更新其证书。
在 kubelet 配置中指定
tlsCertFile
和tlsPrivateKeyFile
时,此特性非常有用。对于使用 TLS bootstrap 等其他情况,此特性门无效。RemainingItemCount
: 允许 API 服务器在分块列表请求的响应中显示剩余项目的数量。RemoteRequestHeaderUID
: 使 API 服务器能够通过请求头认证接受 UID(用户 ID)。这还将使kube-apiserver
的 API 聚合器在将请求转发到提供聚合 API 的服务器时,通过标准头部添加 UID。ResilientWatchCacheInitialization
: 启用弹性 watch cache 初始化以避免控制平面过载。ResourceHealthStatus
: 启用 Pod 的.status
中的allocatedResourcesStatus
字段。该字段报告 Pod 中每个容器的附加详细信息,其中包含分配给 Pod 的每个设备的健康信息。更多详细信息,请参阅设备插件和不健康设备。RetryGenerateName
:启用此特性后,在使用
generateName
的请求遇到控制平面检测到与现有对象发生名称冲突时,将自动重试,最多总共尝试 8 次。RotateKubeletServerCertificate
: 启用 kubelet 服务器 TLS 证书的轮换。更多详细信息,请参阅kubelet 配置。RuntimeClassInImageCriApi
: 启用根据引用镜像的 Pod 的运行时类拉取镜像。SchedulerAsyncPreemption
: 允许在调度器内异步运行与抢占相关的某些昂贵操作。异步处理抢占提高了 Pod 的整体调度延迟。SchedulerPopFromBackoffQ
: 通过在 activeQ 为空时从 backoffQ 中弹出 Pod 来改进调度队列行为。这允许尽快处理可能可调度的 Pod,消除了 backoff 队列的惩罚效应。SchedulerQueueingHints
: 启用调度器的**队列提示**特性,这有助于减少无用的重新入队。如果集群中发生可能导致 Pod 能够被调度的变化,调度器会重试调度 Pod。队列提示是内部信号,允许调度器根据先前的调度尝试来过滤与未调度 Pod 相关的集群变化。SELinuxChangePolicy
:启用
spec.securityContext.seLinuxChangePolicy
字段。此字段可用于选择不使用挂载选项将 SELinux 标签应用于 Pod 卷。当支持使用 SELinux 挂载选项挂载的单个卷在具有不同 SELinux 标签的 Pod(例如特权 Pod 和非特权 Pod)之间共享时,这是必需的。启用
SELinuxChangePolicy
特性门需要启用特性门SELinuxMountReadWriteOncePod
。SELinuxMount
:通过允许 kubelet 直接以正确的 SELinux 标签为 Pod 挂载卷,而不是递归更改卷上的每个文件,从而加快容器启动速度。它通过将实现扩展到所有卷,从而扩大了
SELinuxMountReadWriteOncePod
特性门背后的性能改进。启用
SELinuxMount
特性门需要启用特性门SELinuxMountReadWriteOncePod
和SELinuxChangePolicy
。SELinuxMountReadWriteOncePod
: 通过允许 kubelet 直接使用正确的 SELinux 标签为 Pod 挂载卷,而不是递归更改卷上的每个文件,从而加快容器启动速度。初始实现专注于 ReadWriteOncePod 卷。SeparateCacheWatchRPC
: 允许 API 服务器的 watch 缓存在一个专用的 RPC 上创建 watch。这防止了 watch 缓存被其他 watch 饿死。SeparateTaintEvictionController
: 启用独立于NodeLifecycleController
运行执行基于污点的驱逐的TaintEvictionController
控制器。启用此特性后,用户可以选择通过在kube-controller-manager
上设置--controllers=-taint-eviction-controller
标志来禁用基于污点的驱逐。ServiceAccountTokenJTI
: 控制是否将 JTI(UUID)嵌入生成的服务账号令牌中,以及是否将这些 JTI 记录到 Kubernetes 审计日志中,以便跟踪这些令牌发起的未来请求。ServiceAccountTokenNodeBinding
: 控制 API 服务器是否允许将服务账号令牌绑定到 Node 对象。ServiceAccountTokenNodeBindingValidation
: 控制 apiserver 是否会验证服务账号令牌中的 Node 引用。ServiceAccountTokenPodNodeInfo
: 控制 apiserver 在颁发绑定到 Pod 对象的服务账号令牌时,是否嵌入关联节点的节点名称和 UID。ServiceTrafficDistribution
: 允许使用 Service 中可选的spec.trafficDistribution
字段。此字段提供了一种表达如何将流量分发到 Service 端点的偏好的方式。SidecarContainers
: 允许将 Init 容器的restartPolicy
设置为Always
,从而使该容器成为 Sidecar 容器(可重启的 Init 容器)。更多详细信息,请参阅Sidecar 容器和 restartPolicy。SizeMemoryBackedVolumes
: 使 kubelet 能够确定内存支持卷(主要是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 服务器缓存中为命名空间范围的资源启用命名空间索引器,以加速列表操作。StorageVersionAPI
: 启用存储版本 API。StorageVersionHash
: 允许 API 服务器在 discovery 中公开存储版本哈希。StorageVersionMigrator
: 启用存储版本迁移。更多详细信息,请参阅使用存储版本迁移来迁移 Kubernetes 对象。StrictCostEnforcementForVAP
: 对 ValidatingAdmissionPolicies 应用严格的 CEL 成本验证。StrictCostEnforcementForWebhooks
: 对准入 Webhook 中的matchConditions
应用严格的 CEL 成本验证。StrictIPCIDRValidation
:对包含 IP 地址和 CIDR 值的字段使用更严格的验证。
具体来说,启用此特性门后,IPv4 地址中的字节不允许有前导
0
,并且禁止使用 IPv4 映射的 IPv6 值(例如::ffff:192.168.0.1
)。当不同组件将同一字符串解释为引用不同的 IP 地址时(如 CVE-2021-29923 中所示),这些类型的值可能导致安全问题。此严格限制仅适用于内置 API Kind 中的字段,而不适用于自定义资源 Kind、Kubernetes 配置文件中的值或命令行参数。
StructuredAuthenticationConfiguration
: 为 API 服务器启用结构化认证配置。StructuredAuthorizationConfiguration
: 启用结构化授权配置,以便集群管理员可以在 API 服务器处理链中指定多个授权 Webhook。SupplementalGroupsPolicy
: 启用对细粒度 SupplementalGroups 控制的支持。更多详细信息,请参阅为 Pod 配置细粒度 SupplementalGroups 控制。SystemdWatchdog
: 允许使用 systemd watchdog 监控 kubelet 的健康状态。更多详细信息,请参阅Kubelet Systemd Watchdog。TopologyAwareHints
: 启用基于 EndpointSlice 中拓扑提示的拓扑感知路由。更多详细信息,请参阅拓扑感知提示。TopologyManagerPolicyAlphaOptions
:允许对拓扑管理器策略进行微调,实验性,Alpha 质量选项。此特性门守护着一组质量级别为 Alpha 的拓扑管理器选项。此特性门永远不会晋升到 Beta 或 Stable。TopologyManagerPolicyBetaOptions
:允许对拓扑管理器策略进行微调,实验性,Beta 质量选项。此特性门守护着一组质量级别为 Beta 的拓扑管理器选项。此特性门永远不会晋升到 Stable。TopologyManagerPolicyOptions
:启用对拓扑管理器策略的微调。TranslateStreamCloseWebsocketRequests
:允许 WebSocket 流式传输远程命令子协议(exec
、cp
、attach
),来自请求子协议版本 5 (v5) 的客户端。UnauthenticatedHTTP2DOSMitigation
:为未认证的客户端启用 HTTP/2 拒绝服务 (DoS) 缓解措施。Kubernetes v1.28.0 到 v1.28.2 不包含此特性门。UnknownVersionInteroperabilityProxy
:当存在多个不同版本的 kube-apiserver 时,将资源请求代理到正确的对等 kube-apiserver。参阅混合版本代理了解更多信息。UserNamespacesPodSecurityStandards
:为使用 namespace 运行的 Pod 启用 Pod 安全标准策略放宽。你必须在集群的所有节点上一致地设置此特性门的值,并且你还必须启用UserNamespacesSupport
才能使用此特性。UserNamespacesSupport
:为 Pod 启用用户 namespace 支持。ValidatingAdmissionPolicy
:启用ValidatingAdmissionPolicy支持,用于在 Admission Control 中使用 CEL 验证。VolumeAttributesClass
:启用对 VolumeAttributesClasses 的支持。参阅Volume Attributes Classes了解更多信息。WatchBookmark
:启用对 watch bookmark 事件的支持。WatchCacheInitializationPostStartHook
:为 watchcache 初始化启用 post-start-hook,使其成为 readyz(带超时)的一部分。WatchFromStorageWithoutResourceVersion
:启用不带resourceVersion
的 watch 请求从存储中提供。WatchList
:启用对在 watch 请求中流式传输对象的初始状态的支持。WatchListClient
:允许 API 客户端请求数据流而不是获取完整列表。此功能在client-go
中可用,并且需要在服务器上启用WatchList特性。如果服务器不支持WatchList
,客户端将无缝回退到标准列表请求。WindowsCPUAndMemoryAffinity
:为 Windows 节点添加 CPU 和内存亲和性支持,结合使用CPUManager、MemoryManager和拓扑管理器。WindowsGracefulNodeShutdown
:在 kubelet 中启用 Windows 节点优雅关机支持。在系统关机期间,kubelet 将尝试检测关机事件并优雅地终止在节点上运行的 Pod。参阅优雅节点关机了解更多详细信息。WindowsHostNetwork
:启用将 Windows 容器加入到宿主机的网络 namespace 的支持。WinDSR
:允许 kube-proxy 为 Windows 创建 DSR 负载均衡器。WinOverlay
:允许 kube-proxy 在 Windows 上以 overlay 模式运行。