本页面概述了管理员可以在不同 Kubernetes 组件上指定的各种特性门控。
请参阅特性阶段了解特性阶段的说明。
特性门控是一组 key=value 对,用于描述 Kubernetes 特性。你可以通过在每个 Kubernetes 组件上使用 --feature-gates 命令行标志来启用或禁用这些特性。
要为特定的 Kubernetes 组件启用或禁用特性门控,请使用 --feature-gates 标志。
该标志接受以逗号分隔的 key=value 对列表,其中每个 key 是特性门控的名称,每个 value 为 true(启用)或 false(禁用)。
用法示例
kube-apiserver --feature-gates=FeatureName1=true,FeatureName2=false
kubelet --feature-gates=GracefulNodeShutdown=true
每个 Kubernetes 组件仅支持与其功能相关的特性门控。使用 <component> -h 可列出特定组件的可用特性门控。
有关在集群中配置特性门控的详细说明,请参阅配置特性门控。
下表汇总了你可以在不同 Kubernetes 组件上设置的特性门控。
| 功能 | 默认 | 阶段 | 起始版本 | 终止版本 |
|---|---|---|---|---|
AllowParsingUserUIDFromCertAuth | false | Alpha | 1.33 | 1.33 |
AllowParsingUserUIDFromCertAuth | true | Beta | 1.34 | – |
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 | – |
AtomicFIFO | true | Beta | 1.36 | – |
AuthorizePodWebsocketUpgradeCreatePermission | true | Beta | 1.35 | – |
CBORServingAndStorage | false | Alpha | 1.32 | – |
ClearingNominatedNodeNameAfterBinding | false | Alpha | 1.34 | 1.34 |
ClearingNominatedNodeNameAfterBinding | true | Beta | 1.35 | – |
CloudControllerManagerWatchBasedRoutesReconciliation | false | Alpha | 1.35 | – |
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 | 1.35 |
ComponentFlagz | true | Beta | 1.36 | – |
ComponentStatusz | false | Alpha | 1.32 | 1.35 |
ComponentStatusz | true | Beta | 1.36 | – |
ConcurrentWatchObjectDecode | false | Beta | 1.31 | – |
ConstrainedImpersonation | false | Alpha | 1.35 | 1.35 |
ConstrainedImpersonation | true | Beta | 1.36 | – |
ContainerCheckpoint | false | Alpha | 1.25 | 1.29 |
ContainerCheckpoint | true | Beta | 1.30 | – |
ContainerRestartRules | false | Alpha | 1.34 | 1.34 |
ContainerRestartRules | true | Beta | 1.35 | – |
ContainerStopSignals | false | Alpha | 1.33 | – |
ContextualLogging | false | Alpha | 1.24 | – |
ContextualLogging | true | Beta | 1.30 | – |
ControllerManagerReleaseLeaderElectionLockOnExit | false | Alpha | 1.36 | – |
CoordinatedLeaderElection | false | Alpha | 1.31 | 1.32 |
CoordinatedLeaderElection | false | Beta | 1.33 | – |
CPUManagerPolicyAlphaOptions | false | Alpha | 1.23 | – |
CPUManagerPolicyBetaOptions | true | Beta | 1.23 | – |
CRDObservedGenerationTracking | false | Beta | 1.35 | – |
CRIListStreaming | false | Alpha | 1.36 | – |
CrossNamespaceVolumeDataSource | false | Alpha | 1.26 | – |
CSIVolumeHealth | false | Alpha | 1.21 | – |
CustomCPUCFSQuotaPeriod | false | Alpha | 1.12 | – |
DeclarativeValidationBeta | true | Beta | 1.36 | – |
DeploymentReplicaSetTerminatingReplicas | false | Alpha | 1.33 | 1.34 |
DeploymentReplicaSetTerminatingReplicas | true | Beta | 1.35 | – |
DetectCacheInconsistency | true | Beta | 1.34 | – |
DisableCPUQuotaWithExclusiveCPUs | true | Beta | 1.33 | – |
DRAConsumableCapacity | false | Alpha | 1.34 | 1.35 |
DRAConsumableCapacity | true | Beta | 1.36 | – |
DRADeviceBindingConditions | false | Alpha | 1.34 | 1.35 |
DRADeviceBindingConditions | true | Beta | 1.36 | – |
DRADeviceTaintRules | false | Alpha | 1.35 | 1.35 |
DRADeviceTaintRules | false | Beta | 1.36 | – |
DRADeviceTaints | false | Alpha | 1.33 | 1.35 |
DRADeviceTaints | true | Beta | 1.36 | – |
DRAExtendedResource | false | Alpha | 1.34 | 1.35 |
DRAExtendedResource | true | Beta | 1.36 | – |
DRAListTypeAttributes | false | Alpha | 1.36 | – |
DRANodeAllocatableResources | false | Alpha | 1.36 | – |
DRAPartitionableDevices | false | Alpha | 1.33 | 1.35 |
DRAPartitionableDevices | true | Beta | 1.36 | – |
DRAResourceClaimDeviceStatus | false | Alpha | 1.32 | 1.32 |
DRAResourceClaimDeviceStatus | true | Beta | 1.33 | – |
DRAResourceClaimGranularStatusAuthorization | true | Beta | 1.36 | – |
DRAResourcePoolStatus | false | Alpha | 1.36 | – |
DRASchedulerFilterTimeout | false | Alpha | 1.34 | – |
DRAWorkloadResourceClaims | false | Alpha | 1.36 | – |
EnvFiles | false | Alpha | 1.34 | 1.34 |
EnvFiles | true | Beta | 1.35 | – |
EventedPLEG | false | Alpha | 1.26 | – |
ExtendWebSocketsToKubelet | true | Beta | 1.36 | – |
GangScheduling | false | Alpha | 1.35 | – |
GenericWorkload | false | Alpha | 1.35 | – |
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 | 1.34 |
HostnameOverride | true | Beta | 1.35 | – |
HPAConfigurableTolerance | false | Alpha | 1.33 | 1.34 |
HPAConfigurableTolerance | true | Beta | 1.35 | – |
HPAScaleToZero | false | Alpha | 1.16 | – |
InOrderInformers | true | Alpha | 1.33 | 1.33 |
InOrderInformers | true | Beta | 1.34 | – |
InPlacePodLevelResourcesVerticalScaling | false | Alpha | 1.35 | 1.35 |
InPlacePodLevelResourcesVerticalScaling | true | Beta | 1.36 | – |
InPlacePodVerticalScalingExclusiveCPUs | false | Alpha | 1.32 | – |
InPlacePodVerticalScalingExclusiveMemory | false | Alpha | 1.34 | – |
KubeletCrashLoopBackOffMax | false | Alpha | 1.32 | 1.34 |
KubeletCrashLoopBackOffMax | true | Beta | 1.35 | – |
KubeletEnsureSecretPulledImages | false | Alpha | 1.33 | 1.34 |
KubeletEnsureSecretPulledImages | true | Beta | 1.35 | – |
KubeletInUserNamespace | false | Alpha | 1.22 | – |
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 | 1.33 |
ListFromCacheSnapshot | true | Beta | 1.34 | – |
LocalStorageCapacityIsolationFSQuotaMonitoring | false | Alpha | 1.15 | 1.30 |
LocalStorageCapacityIsolationFSQuotaMonitoring | false | Beta | 1.31 | – |
LoggingAlphaOptions | false | Alpha | 1.24 | – |
LoggingBetaOptions | true | Beta | 1.24 | – |
ManifestBasedAdmissionControlConfig | false | Alpha | 1.36 | – |
MatchLabelKeysInPodTopologySpread | false | Alpha | 1.25 | 1.26 |
MatchLabelKeysInPodTopologySpread | true | Beta | 1.27 | – |
MatchLabelKeysInPodTopologySpreadSelectorMerge | true | Beta | 1.34 | – |
MaxUnavailableStatefulSet | false | Alpha | 1.24 | 1.34 |
MaxUnavailableStatefulSet | true | Beta | 1.35 | – |
MemoryQoS | false | Alpha | 1.22 | – |
MutablePodResourcesForSuspendedJobs | false | Alpha | 1.35 | 1.35 |
MutablePodResourcesForSuspendedJobs | true | Beta | 1.36 | – |
MutablePVNodeAffinity | false | Alpha | 1.35 | – |
MutableSchedulingDirectivesForSuspendedJobs | false | Alpha | 1.35 | 1.35 |
MutableSchedulingDirectivesForSuspendedJobs | true | Beta | 1.36 | – |
NativeHistograms | false | Alpha | 1.36 | – |
NodeDeclaredFeatures | false | Alpha | 1.35 | 1.35 |
NodeDeclaredFeatures | true | Beta | 1.36 | – |
NominatedNodeNameForExpectation | false | Alpha | 1.34 | 1.34 |
NominatedNodeNameForExpectation | true | Beta | 1.35 | – |
OpenAPIEnums | false | Alpha | 1.23 | 1.23 |
OpenAPIEnums | true | Beta | 1.24 | – |
OpportunisticBatching | true | Beta | 1.35 | – |
PersistentVolumeClaimUnusedSinceTime | false | Alpha | 1.36 | – |
PodAndContainerStatsFromCRI | false | Alpha | 1.23 | – |
PodCertificateRequest | false | Alpha | 1.34 | 1.34 |
PodCertificateRequest | false | Beta | 1.35 | – |
PodDeletionCost | false | Alpha | 1.21 | 1.21 |
PodDeletionCost | true | Beta | 1.22 | – |
PodInfoAPI | false | Alpha | 1.35 | – |
PodLevelResourceManagers | false | Alpha | 1.36 | – |
PodLevelResources | false | Alpha | 1.32 | 1.33 |
PodLevelResources | true | Beta | 1.34 | – |
PodLogsQuerySplitStreams | false | Alpha | 1.32 | – |
PodReadyToStartContainersCondition | false | Alpha | 1.28 | 1.28 |
PodReadyToStartContainersCondition | true | Beta | 1.29 | – |
PodTopologyLabelsAdmission | false | Alpha | 1.33 | 1.34 |
PodTopologyLabelsAdmission | true | Beta | 1.35 | – |
PortForwardWebsockets | false | Alpha | 1.30 | 1.30 |
PortForwardWebsockets | true | Beta | 1.31 | – |
PreventStaticPodAPIReferences | true | Beta | 1.34 | – |
QOSReserved | false | Alpha | 1.11 | – |
ReduceDefaultCrashLoopBackOffDecay | false | Alpha | 1.33 | – |
RelaxedServiceNameValidation | false | Alpha | 1.34 | 1.35 |
RelaxedServiceNameValidation | true | Beta | 1.36 | – |
ReloadKubeletServerCertificateFile | true | Beta | 1.31 | – |
RemoteRequestHeaderUID | false | Alpha | 1.32 | – |
ResourceHealthStatus | false | Alpha | 1.31 | 1.35 |
ResourceHealthStatus | true | Beta | 1.36 | – |
RestartAllContainersOnContainerExits | false | Alpha | 1.35 | 1.35 |
RestartAllContainersOnContainerExits | true | Beta | 1.36 | – |
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 | – |
SELinuxMount | false | Alpha | 1.30 | 1.32 |
SELinuxMount | false | Beta | 1.33 | – |
ServiceAccountNodeAudienceRestriction | false | Beta | 1.32 | 1.32 |
ServiceAccountNodeAudienceRestriction | true | Beta | 1.33 | – |
ShardedListAndWatch | false | Alpha | 1.36 | – |
SizeBasedListCostEstimate | true | Beta | 1.34 | – |
StaleControllerConsistencyDaemonSet | true | Beta | 1.36 | – |
StaleControllerConsistencyJob | true | Beta | 1.36 | – |
StaleControllerConsistencyReplicaSet | true | Beta | 1.36 | – |
StaleControllerConsistencyStatefulSet | true | Beta | 1.36 | – |
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 | 1.34 |
StorageVersionMigrator | false | Beta | 1.35 | – |
StrictIPCIDRValidation | false | Alpha | 1.33 | 1.35 |
StrictIPCIDRValidation | true | Beta | 1.36 | – |
StructuredAuthenticationConfigurationEgressSelector | true | Beta | 1.34 | – |
StructuredAuthenticationConfigurationJWKSMetrics | true | Beta | 1.35 | – |
SupplementalGroupsPolicy | false | Alpha | 1.31 | 1.32 |
SupplementalGroupsPolicy | true | Beta | 1.33 | – |
SystemdWatchdog | true | Beta | 1.32 | – |
TaintTolerationComparisonOperators | false | Alpha | 1.35 | – |
TokenRequestServiceAccountUIDValidation | true | Beta | 1.34 | – |
TopologyAwareWorkloadScheduling | false | Alpha | 1.36 | – |
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 | 1.35 |
UnknownVersionInteroperabilityProxy | true | Beta | 1.36 | – |
UnlockWhileProcessingFIFO | true | Beta | 1.36 | – |
UserNamespacesHostNetworkSupport | false | Alpha | 1.35 | – |
VolumeLimitScaling | false | Alpha | 1.35 | – |
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 | 1.34 |
WatchListClient | true | Beta | 1.35 | – |
WindowsCPUAndMemoryAffinity | false | Alpha | 1.32 | – |
WindowsGracefulNodeShutdown | false | Alpha | 1.32 | 1.33 |
WindowsGracefulNodeShutdown | true | Beta | 1.34 | – |
WorkloadAwarePreemption | false | Alpha | 1.36 | – |
WorkloadWithJob | false | Alpha | 1.36 | – |
| 功能 | 默认 | 阶段 | 起始版本 | 终止版本 |
|---|---|---|---|---|
AllowDNSOnlyNodeCSR | false | 已弃用 | 1.31 | – |
AllowInsecureKubeletCertificateSigningRequests | false | 已弃用 | 1.31 | – |
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 | – |
ChangeContainerStatusOnKubeletRestart | false | 已弃用 | 1.35 | – |
ConsistentListFromCache | false | Alpha | 1.28 | 1.30 |
ConsistentListFromCache | true | Beta | 1.31 | 1.33 |
ConsistentListFromCache | true | GA | 1.34 | – |
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 | – |
CSIServiceAccountTokenSecrets | true | Beta | 1.35 | 1.35 |
CSIServiceAccountTokenSecrets | true | GA | 1.36 | – |
CustomResourceFieldSelectors | false | Alpha | 1.30 | 1.30 |
CustomResourceFieldSelectors | true | Beta | 1.31 | 1.31 |
CustomResourceFieldSelectors | true | GA | 1.32 | – |
DeclarativeValidation | true | Beta | 1.33 | 1.35 |
DeclarativeValidation | true | GA | 1.36 | – |
DeclarativeValidationTakeover | false | Beta | 1.33 | 1.35 |
DeclarativeValidationTakeover | false | 已弃用 | 1.36 | – |
DisableAllocatorDualWrite | false | Alpha | 1.31 | 1.32 |
DisableAllocatorDualWrite | false | Beta | 1.33 | 1.33 |
DisableAllocatorDualWrite | true | GA | 1.34 | – |
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 | – |
DRAAdminAccess | false | Alpha | 1.32 | 1.33 |
DRAAdminAccess | true | Beta | 1.34 | 1.35 |
DRAAdminAccess | true | GA | 1.36 | – |
DRAPrioritizedList | false | Alpha | 1.33 | 1.33 |
DRAPrioritizedList | true | Beta | 1.34 | 1.35 |
DRAPrioritizedList | true | GA | 1.36 | – |
DynamicResourceAllocation | false | Alpha | 1.30 | 1.31 |
DynamicResourceAllocation | false | Beta | 1.32 | 1.33 |
DynamicResourceAllocation | true | GA | 1.34 | 1.34 |
DynamicResourceAllocation | true | GA | 1.35 | – |
ElasticIndexedJob | true | Beta | 1.27 | 1.30 |
ElasticIndexedJob | true | GA | 1.31 | – |
ExecProbeTimeout | true | GA | 1.20 | – |
ExternalServiceAccountTokenSigner | false | Alpha | 1.32 | 1.33 |
ExternalServiceAccountTokenSigner | true | Beta | 1.34 | 1.35 |
ExternalServiceAccountTokenSigner | true | GA | 1.36 | – |
GitRepoVolumeDriver | false | 已弃用 | 1.33 | – |
ImageMaximumGCAge | false | Alpha | 1.29 | 1.29 |
ImageMaximumGCAge | true | Beta | 1.30 | 1.34 |
ImageMaximumGCAge | true | GA | 1.35 | – |
ImageVolume | false | Alpha | 1.31 | 1.32 |
ImageVolume | false | Beta | 1.33 | 1.34 |
ImageVolume | true | Beta | 1.35 | 1.35 |
ImageVolume | true | GA | 1.36 | – |
InformerResourceVersion | false | Alpha | 1.30 | 1.34 |
InformerResourceVersion | true | GA | 1.35 | – |
InPlacePodVerticalScaling | false | Alpha | 1.27 | 1.32 |
InPlacePodVerticalScaling | true | Beta | 1.33 | 1.34 |
InPlacePodVerticalScaling | true | GA | 1.35 | – |
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 | – |
JobManagedBy | false | Alpha | 1.30 | 1.31 |
JobManagedBy | true | Beta | 1.32 | 1.34 |
JobManagedBy | true | GA | 1.35 | – |
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 | – |
KubeletFineGrainedAuthz | false | Alpha | 1.32 | 1.32 |
KubeletFineGrainedAuthz | true | Beta | 1.33 | 1.35 |
KubeletFineGrainedAuthz | true | GA | 1.36 | – |
KubeletPodResourcesDynamicResources | false | Alpha | 1.27 | 1.33 |
KubeletPodResourcesDynamicResources | true | Beta | 1.34 | 1.35 |
KubeletPodResourcesDynamicResources | true | GA | 1.36 | – |
KubeletPodResourcesGet | false | Alpha | 1.27 | 1.33 |
KubeletPodResourcesGet | true | Beta | 1.34 | 1.35 |
KubeletPodResourcesGet | true | GA | 1.36 | – |
KubeletPSI | false | Alpha | 1.33 | 1.33 |
KubeletPSI | true | Beta | 1.34 | 1.35 |
KubeletPSI | true | GA | 1.36 | – |
KubeletTracing | false | Alpha | 1.25 | 1.26 |
KubeletTracing | true | Beta | 1.27 | 1.33 |
KubeletTracing | true | GA | 1.34 | – |
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 | – |
MutableCSINodeAllocatableCount | false | Alpha | 1.33 | 1.33 |
MutableCSINodeAllocatableCount | false | Beta | 1.34 | 1.34 |
MutableCSINodeAllocatableCount | true | Beta | 1.35 | 1.35 |
MutableCSINodeAllocatableCount | true | GA | 1.36 | – |
MutatingAdmissionPolicy | false | Alpha | 1.30 | 1.33 |
MutatingAdmissionPolicy | false | Beta | 1.34 | 1.35 |
MutatingAdmissionPolicy | true | GA | 1.36 | – |
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 | – |
NodeLogQuery | false | Alpha | 1.27 | 1.29 |
NodeLogQuery | false | Beta | 1.30 | 1.35 |
NodeLogQuery | true | GA | 1.36 | – |
NodeSwap | false | Alpha | 1.22 | 1.27 |
NodeSwap | false | Beta | 1.28 | 1.29 |
NodeSwap | true | Beta | 1.30 | 1.33 |
NodeSwap | true | GA | 1.34 | – |
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 | – |
PodObservedGenerationTracking | false | Alpha | 1.33 | 1.33 |
PodObservedGenerationTracking | true | Beta | 1.34 | 1.34 |
PodObservedGenerationTracking | true | GA | 1.35 | – |
PodSchedulingReadiness | false | Alpha | 1.26 | 1.26 |
PodSchedulingReadiness | true | Beta | 1.27 | 1.29 |
PodSchedulingReadiness | true | GA | 1.30 | – |
PreferSameTrafficDistribution | false | Alpha | 1.33 | 1.33 |
PreferSameTrafficDistribution | true | Beta | 1.34 | 1.34 |
PreferSameTrafficDistribution | true | GA | 1.35 | – |
ProcMountType | false | Alpha | 1.12 | 1.30 |
ProcMountType | false | Beta | 1.31 | 1.32 |
ProcMountType | true | Beta | 1.33 | 1.35 |
ProcMountType | true | GA | 1.36 | – |
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 | – |
RelaxedDNSSearchValidation | false | Alpha | 1.32 | 1.32 |
RelaxedDNSSearchValidation | true | Beta | 1.33 | 1.33 |
RelaxedDNSSearchValidation | true | GA | 1.34 | – |
RelaxedEnvironmentVariableValidation | false | Alpha | 1.30 | 1.31 |
RelaxedEnvironmentVariableValidation | true | Beta | 1.32 | 1.33 |
RelaxedEnvironmentVariableValidation | true | GA | 1.34 | – |
ResilientWatchCacheInitialization | true | Beta | 1.31 | 1.33 |
ResilientWatchCacheInitialization | 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 | – |
SELinuxChangePolicy | false | Alpha | 1.32 | 1.32 |
SELinuxChangePolicy | true | Beta | 1.33 | 1.35 |
SELinuxChangePolicy | true | GA | 1.36 | – |
SELinuxMountReadWriteOncePod | false | Alpha | 1.25 | 1.26 |
SELinuxMountReadWriteOncePod | false | Beta | 1.27 | 1.27 |
SELinuxMountReadWriteOncePod | true | Beta | 1.28 | 1.35 |
SELinuxMountReadWriteOncePod | true | GA | 1.36 | – |
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 | – |
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 | – |
StreamingCollectionEncodingToJSON | true | Beta | 1.33 | 1.33 |
StreamingCollectionEncodingToJSON | true | GA | 1.34 | – |
StreamingCollectionEncodingToProtobuf | true | Alpha | 1.33 | 1.33 |
StreamingCollectionEncodingToProtobuf | true | GA | 1.34 | – |
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 | – |
UserNamespacesSupport | false | Alpha | 1.28 | 1.29 |
UserNamespacesSupport | false | Beta | 1.30 | 1.32 |
UserNamespacesSupport | true | Beta | 1.33 | 1.35 |
UserNamespacesSupport | true | GA | 1.36 | – |
VolumeAttributesClass | false | Alpha | 1.29 | 1.30 |
VolumeAttributesClass | false | Beta | 1.31 | 1.33 |
VolumeAttributesClass | true | GA | 1.34 | 1.35 |
VolumeAttributesClass | true | GA | 1.36 | – |
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 特性意味着:
Beta 特性意味着:
正式发布 (GA) 特性也称为 稳定 特性。这意味着:
每个特性门控都旨在启用/禁用特定的特性。
AllowDNSOnlyNodeCSR允许 kubelet 在没有 Node IP 可用的情况下请求证书,仅使用 DNS 名称。
AllowInsecureKubeletCertificateSigningRequests禁用 kubelet 签发者对 CertificateSigningRequests 的节点准入验证。除非你禁用此特性门控,否则 Kubernetes 会强制要求新的 kubelet 证书的 commonName 与 system:node:$nodeName 匹配。
AllowParsingUserUIDFromCertAuth启用此特性后,X.509 证书中的使用者名称属性 1.3.6.1.4.1.57683.2 将在证书认证期间被解析为用户 UID。
AllowUnsafeMalformedObjectDeletion使集群操作员能够使用 list 操作识别损坏的资源,并引入一个选项 ignoreStoreReadErrorWithClusterBreakingPotential,操作员可以设置该选项以执行不安全且强制的 delete 操作,使用 Kubernetes API 删除此类损坏的资源。
AnonymousAuthConfigurableEndpoints为 API 服务器启用匿名认证的可配置端点。
AnyVolumeDataSource启用将任何自定义资源用作 PVC 的 DataSource。
APIResponseCompression压缩 LIST 或 GET 请求的 API 响应。
APIServerIdentity使用 Lease 为集群中的每个 API 服务器分配一个 ID。
APIServerTracing添加对 API 服务器分布式追踪的支持。更多详情请参阅Kubernetes 系统组件追踪。
APIServingWithRoutine此特性门控启用了 API 服务器性能改进:API 服务器可以使用单独的 goroutines(由 Go 运行时管理的轻量级线程)来处理 watch 请求。
AtomicFIFO一种 client-go FIFO 队列实现,它使用原子操作来确保批量到达的事件(例如来自 ListAndWatch 调用的事件)能够被分块处理。这与之前逐个处理事件的实现形成对比,后者可能导致内部缓存暂时与 API 服务器不一致。此特性门控可在 kube-controller-manager 和任何基于 client-go 的控制器中切换。
AuthorizeNodeWithSelectors使 节点授权器 (Node authorizer) 使用细粒度的选择器授权。
AuthorizePodWebsocketUpgradeCreatePermission当 AuthorizePodWebsocketUpgradeCreatePermission 特性门控为 true 时,即使通过 WebSocket 触发创建,客户端也必须被授权 create Pod 子资源。
连接升级请求发生在以下每个子资源中:pods/exec、pods/attach 和 pods/portforward。此特性门控修复了因协议转换导致的安全漏洞:虽然 SPDY 请求使用 HTTP POST(与 create RBAC 权限自然对齐),但 WebSocket 协议在握手时需要 HTTP GET 请求。为纠正此缺陷,现应用一个综合 RBAC 检查,确保 WebSocket 升级严格执行 create 权限,以匹配现有的 SPDY 安全模型。
如果你现有的客户端或自定义工具依赖之前的行为(具体来说,是通过 WebSocket 连接但当前不持有 create RBAC 权限),则可能需要禁用此特性门控。
AuthorizeWithSelectors允许授权使用字段和标签选择器。在 SubjectAccessReview API 中启用 fieldSelector 和 labelSelector 字段,将字段和标签选择器信息传递给授权 Webhook,在授权器 CEL 库中启用 fieldSelector 和 labelSelector 函数,并启用在授权 Webhook matchConditions 中检查 fieldSelector 和 labelSelector 字段。
BtreeWatchCache启用后,API 服务器将使用基于 BTree 的实现替换基于 HashMap 的旧版 watch 缓存。此替换可能会带来性能提升。
CBORServingAndStorage启用 CBOR 作为请求和响应的受支持编码,并作为自定义资源的首选存储编码。
ChangeContainerStatusOnKubeletRestart启用旧版写入操作,在 kubelet 检测到重启后更新容器的 ready 状态。
引入此特性门控是为了允许你将行为恢复到之前使用的默认值。如果你对默认行为感到满意,则无需启用此特性门控。
ClearingNominatedNodeNameAfterBinding启用在 Pod 绑定到节点时清除 .status.nominatedNodeName 的功能。
CloudControllerManagerWatchBasedRoutesReconciliation在 cloud-controller-manager 库中启用基于 watch 的路由协调机制(而非以固定间隔协调)。
CloudControllerManagerWebhook在云控制器管理器中启用 Webhook。
ClusterTrustBundle启用 ClusterTrustBundle 对象和 kubelet 集成。
ClusterTrustBundleProjectionComponentFlagz启用组件的 flagz 端点。更多信息请参阅 zpages。
ComponentStatusz启用组件的 statusz 端点。更多信息请参阅 zpages。
ConcurrentWatchObjectDecode启用并发 watch 对象解码。这是为了避免在安装转换 Webhook 时耗尽 API 服务器的 watch 缓存。
ConsistentListFromCache通过直接从其 watch 缓存提供一致的 list 请求来增强 Kubernetes API 服务器性能,从而提高可扩展性和响应时间。为了从缓存中进行一致的 list 操作,Kubernetes 需要较新版本的 etcd(v3.4.31+ 或 v3.5.13+),其中包含对 watch 进度请求特性的修复。如果提供了旧版本的 etcd,Kubernetes 将自动检测并回退到从 etcd 进行一致读取。进度通知可确保 watch 缓存与 etcd 保持一致,同时减少对从 etcd 进行资源密集型法定读取的需求。
更多详细信息,请参阅 Kubernetes 关于 get 和 list 语义 的文档。
ConstrainedImpersonation启用限于特定请求的模拟 (impersonation),而不是全有或全无。
ContainerCheckpoint启用 kubelet checkpoint API。更多详细信息请参阅 Kubelet Checkpoint API。
ContainerRestartRules启用配置容器级重启策略和重启规则的能力。更多详细信息请参阅 容器重启策略和规则。
ContainerStopSignals启用容器的 StopSignal 生命周期,用于配置自定义停止信号,通过该信号停止容器。
ContextualLogging在支持上下文日志记录的 Kubernetes 组件的日志输出中启用额外详细信息。
ControllerManagerReleaseLeaderElectionLockOnExit使 kube-controller-manager 在领导者切换期间主动释放其领导者选举锁,而不是等待锁的 TTL 过期。这允许更快地选举出新的领导者。
CoordinatedLeaderElection启用支持 LeaseCandidate API 的行为,并确定性地为 Kubernetes 控制平面启用协调领导者选举。
CPUManagerPolicyAlphaOptions这允许对 CPUManager 策略进行微调,属于实验性 Alpha 质量选项。此特性门控保护一组质量等级为 alpha 的 CPUManager 选项。此特性门控永远不会升级到 Beta 或稳定版。
CPUManagerPolicyBetaOptions这允许对 CPUManager 策略进行微调,属于实验性 Beta 质量选项。此特性门控保护一组质量等级为 beta 的 CPUManager 选项。此特性门控永远不会升级到稳定版。
CPUManagerPolicyOptions允许对 CPUManager 策略进行微调。
CRDObservedGenerationTracking允许在 CRD 条件中跟踪观察到的生成 (observed generation)。设置为 false 将导致 CRD 条件中的观察生成被清除。
CRDValidationRatcheting如果资源更新的违规部分未发生变化,则允许更新包含违反 OpenAPI 模式的自定义资源。更多详细信息请参阅 验证升级 (Validation Ratcheting)。
CRIListStreaming为 CRI list 操作 (ListContainers, ListPodSandbox, ListImages) 启用流式 RPC。启用后,kubelet 使用服务器端流式 RPC(例如 StreamContainers, StreamPodSandboxes),允许容器运行时将结果拆分到多个响应消息中,从而绕过 16 MiB 的 gRPC 消息大小限制。这使得在具有数千个容器的节点上列出容器而不会失败。如果容器运行时不支持流式 RPC,kubelet 会回退到一元 RPC。
CronJobsScheduledAnnotation将定时任务执行时间设置为代表 CronJob 创建的 Job 的 注解 (annotation)。
CrossNamespaceVolumeDataSource启用跨命名空间卷数据源支持,允许你在 PersistentVolumeClaim 的 dataSourceRef 字段中指定源命名空间。
CSIServiceAccountTokenSecrets使 CSI 驱动程序能够选择通过 NodePublishVolumeRequest 中的专用 secrets 字段(而不是 volume_context 字段)从 kubelet 接收服务账户令牌。
CSIVolumeHealth在节点上启用对 CSI 卷健康监控的支持。
CustomCPUCFSQuotaPeriod允许节点在 kubelet 配置 中更改 cpuCFSQuotaPeriod。
CustomResourceFieldSelectors在 CustomResourceDefinition API 中启用 selectableFields,以允许过滤自定义资源的 list、watch 和 deletecollection 请求。
DeclarativeValidation启用对内嵌 Kubernetes API 的声明式验证。启用后,具有声明式验证规则(使用 Go 代码中的 IDL 标签定义)的 API 将同时执行生成的声明式验证代码和原始手写验证代码。结果进行比较,任何差异都会通过 declarative_validation_mismatch_total 指标报告。只有手写验证结果会返回给用户(例如:实际在请求路径中验证)。启用此功能时,原始手写验证仍然是权威验证,但如果同时启用 DeclarativeValidationBeta 特性门控,这一点可能会改变。此特性门控仅在 kube-apiserver 组件上运行。
DeclarativeValidationBeta此特性门控充当 Beta 阶段验证规则 (+k8s:beta) 的全局安全开关。它允许集群管理员在发现回归时禁用 Beta 阶段的验证执行,强制它们回到 Shadow 模式。
在 Shadow 模式下,声明式验证会被执行,且与手写验证的不匹配会作为指标记录,但失败不会拒绝请求。手写验证仍然是权威且强制执行的。
使用 WithDeclarativeEnforcement() 的资源的强制逻辑:
+k8s:beta):启用此门控时强制执行(默认),否则为 Shadow 模式。+k8s:alpha):始终为 Shadow 模式。如果禁用了主 DeclarativeValidation 特性门控,此门控无效。
DeclarativeValidationTakeover已弃用:建议使用 DeclarativeValidationBeta。
启用此特性门控时,若同时启用了 DeclarativeValidation,声明式验证错误将直接返回给调用者,替换具有声明式实现规则的手写验证错误。当禁用此项(且启用了 DeclarativeValidation)时,总是返回手写验证错误,有效地将声明式验证置于不匹配验证模式 (mismatch validation mode),该模式会监控但不影响 API 响应。此不匹配验证模式允许监控 declarative_validation_mismatch_total 和 declarative_validation_panic_total 指标,这些指标是为了更安全地推广而存在的实现细节,普通用户通常不需要直接与之交互。此特性门控仅在 kube-apiserver 组件上运行。注意:尽管声明式验证旨在实现与手写验证的功能等价,但两者错误消息的具体描述可能有所不同。
DeploymentReplicaSetTerminatingReplicas在 Deployments 和 ReplicaSets 中启用一个新的状态字段 .status.terminatingReplicas,以允许跟踪终止中的 Pod。
DetectCacheInconsistency在 API 服务器中启用缓存不一致检测。
DisableAllocatorDualWrite你可以启用 MultiCIDRServiceAllocator 特性门控。API 服务器支持从旧的位图 ClusterIP 分配器迁移到新的 IPAddress 分配器。
API 服务器在两个分配器上执行双重写入。此特性门控禁用新 Cluster IP 分配器上的双重写入;如果你已完成迁移的相关阶段,则可以启用此特性门控。
DisableCPUQuotaWithExclusiveCPUs当启用 DisableCPUQuotaWithExclusiveCPUs 特性门控时(默认),Kubernetes 不会为使用 Guaranteed QoS 类的 Pod 强制执行 CPU 配额。
你可以禁用 DisableCPUQuotaWithExclusiveCPUs 特性门控以恢复旧版行为。
DisableNodeKubeProxyVersion禁用设置节点的 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"。
DRAConsumableCapacity启用跨多个 ResourceClaims 或请求的设备共享。
此外,如果设备支持共享,其资源(容量)可以通过定义的共享策略进行管理。
DRADeviceBindingConditions启用对 DRA 相关字段中 DeviceBindingConditions 的支持。这允许在绑定阶段之前进行彻底的设备就绪检查和挂载过程。
DRADeviceTaintRules在使用动态资源分配管理设备时,启用对通过 DeviceTaintRule 对象对设备进行污点标记的支持。
除非你也启用了 DRADeviceTaint 特性门控,否则此特性门控无效。
DRADeviceTaints在使用动态资源分配管理设备时,启用对对设备进行污点标记并有选择地容忍这些污点的支持。
DRAExtendedResource启用对 DRA 扩展资源分配 特性的支持。它使得在 DeviceClass 中指定扩展资源名称成为可能。
DRAListTypeAttributes为 ResourceSlice 中的设备启用列表类型属性字段 (bools, ints, strings, versions),允许设备为一个属性通告多个值。
启用后,matchAttribute 使用集合交集语义(所有选定设备上的属性值集合必须具有非空交集),而 distinctAttribute 使用成对不相交语义(集合不得共享任何值)。标量属性保持向后兼容,被视为单例集。
还为 CEL 设备选择器表达式添加了 includes() 辅助函数,该函数适用于标量和列表类型属性。
有关更多信息,请参阅动态资源分配文档中的 列表类型属性。
DRANodeAllocatableResources启用 kube-scheduler 将由动态资源分配 (DRA) 管理的节点可分配资源(如 CPU、内存和巨页)纳入其标准节点资源核算中。
启用后,DRA 驱动程序可以使用 ResourceSlice 设备上的 nodeAllocatableResourceMappings 字段指定其设备如何消耗节点可分配资源。这允许调度器将这些 DRA 分配与标准 Pod 请求结合起来。它还在 Pod API 上公开了 status.nodeAllocatableResourceClaimStatuses 字段以跟踪生成的资源分配。
有关更多信息,请参阅动态资源分配文档中的 节点可分配资源。
DRAPartitionableDevices启用对为 DRA 请求可分区设备的支持。这让驱动程序可以通告映射到物理设备相同资源的多个设备。
DRAPrioritizedList允许指定可分配给声明中请求的替代设备优先级列表,以防首选替代设备不可用。
DRAResourceClaimDeviceStatus启用对 ResourceClaim.status.devices 字段的支持,并允许从 DRA 驱动程序设置此状态。它要求启用 DynamicResourceAllocation 特性门控。
DRAResourceClaimGranularStatusAuthorization启用对 ResourceClaim 状态更新的细粒度授权支持。此特性在修改 ResourceClaim 状态对象中的特定字段时需要额外的细粒度访问权限。
DRAResourcePoolStatus启用 ResourcePoolStatusRequest API,用于查询 DRA 资源池中设备的可用性。启用后,用户可以创建 ResourcePoolStatusRequest 对象,以获取特定驱动程序以及可选特定池的设备可用性(总计、已分配、可用和不可用设备)的时间点快照。kube-controller-manager 中的控制器处理这些一次性请求并使用池信息填充状态。
DRASchedulerFilterTimeout启用调度器在经过一定时间(默认 10 秒,在 DynamicResources 调度器插件配置中可配置)后中止每节点过滤操作。
DRAWorkloadResourceClaimsDynamicResourceAllocation启用对具有自定义参数且生命周期独立于 Pod 的资源支持。资源分配由 Kubernetes 调度器根据“结构化参数”处理。
ElasticIndexedJob允许通过同时变异 spec.completions 和 spec.parallelism 来扩缩 Indexed Jobs,以使 spec.completions == spec.parallelism。更多详细信息请参阅关于 弹性 Indexed Jobs 的文档。
EnvFiles支持通过文件定义容器的环境变量值。更多详细信息请参阅 使用 Init 容器定义环境变量值。
EventedPLEG启用对 kubelet 从 容器运行时 通过 CRI 的扩展接收容器生命周期事件的支持。(PLEG 是“Pod 生命周期事件生成器”的缩写)。要使此特性有用,你还需要在集群中运行的每个容器运行时中启用对容器生命周期事件的支持。如果容器运行时未宣布支持容器生命周期事件,则 kubelet 会自动回退到传统的通用 PLEG 机制,即使你启用了此特性门控。
ExecProbeTimeout确保 kubelet 遵循 exec 探针超时。此特性门控的存在是为了防止你的现有工作负载依赖于一个现已被纠正的错误,即 Kubernetes 忽略了 exec 探针超时。请参阅 就绪探针 (readiness probes)。
ExtendWebSocketsToKubelet当 ExtendWebSocketsToKubelet 启用且 kubelet 节点通告支持时,exec/attach/portforward 流将被直接代理到 kubelet,而不是在 API 服务器处进行翻译或隧道传输。关键的是,API 服务器处使用的相同流翻译和隧道处理程序现在在 kubelet 上以相同方式设置——逻辑只是更靠近容器运行时。此特性依赖于 NodeDeclaredFeatures 升级到 Beta,以便在生产集群中可靠地通告 kubelet 能力。
ExternalServiceAccountTokenSigner启用设置 --service-account-signing-endpoint,使 kube-apiserver 使用外部签发者进行令牌签名和令牌验证密钥管理。
GangScheduling在 kube-scheduler 中启用 GangScheduling 插件,它实现了“全有或全无”的调度算法。工作负载 API 用于表达需求。
GenericWorkload启用对 工作负载 API 的支持,以在工作负载级别表达调度需求。
启用后,Pod 可以引用特定的 Pod 组,并使用它来影响它们的调度方式。
GitRepoVolumeDriver这控制是否支持 gitRepo 卷插件。gitRepo 卷插件从 v1.33 版本开始默认禁用。这为用户提供了启用它的方法。
GracefulNodeShutdown启用对 kubelet 中优雅关机的支持。在系统关机期间,kubelet 将尝试检测关机事件并优雅地终止节点上运行的 Pod。更多详细信息请参阅 优雅节点关机。
GracefulNodeShutdownBasedOnPodPriority使 kubelet 在优雅关闭节点时能够检查 Pod 优先级。
HostnameOverride允许设置任何 FQDN 作为 Pod 的主机名。
HPAConfigurableTolerance启用设置 HorizontalPodAutoscaler 指标的容差阈值。
HPAScaleToZero在使用自定义或外部指标时,启用将 HorizontalPodAutoscaler 资源的 minReplicas 设置为 0。
ImageMaximumGCAge启用 kubelet 配置字段 imageMaximumGCAge,允许管理员指定镜像垃圾回收的时间限制。
ImageVolume允许在 Pod 中使用 image 卷源。此卷源允许你将容器镜像挂载为只读卷。
InformerResourceVersion允许客户端使用 Informer 上的 LastSyncResourceVersion() 调用,使它们能够基于当前资源版本执行操作。禁用时,LastSyncResourceVersion() 成功但返回空字符串。kube-controller-manager 用于 StorageVersionMigration。
InOrderInformers强制 Informer 按顺序而不是无序地传递 watch 流事件。
InPlacePodLevelResourcesVerticalScaling启用 Pod 资源的就地垂直伸缩(例如,无需重启即可更改运行中 Pod 的 Pod 级 CPU 或内存请求/限制)。有关详情,请参阅关于 就地 Pod 级资源垂直伸缩 的文档。
InPlacePodVerticalScaling启用就地 Pod 垂直伸缩。
InPlacePodVerticalScalingAllocatedStatus启用容器状态中的 allocatedResources 字段。此特性同样需要启用 InPlacePodVerticalScaling 门控。
InPlacePodVerticalScalingExclusiveCPUs启用具有整数 CPU 请求的 Guaranteed Pod 中容器的资源调整大小。它仅适用于启用了 InPlacePodVerticalScaling 和 CPUManager 特性的节点,并且 CPUManager 策略设置为 static。
InPlacePodVerticalScalingExclusiveMemory当内存管理器策略设置为 "Static" 时,允许 Guaranteed Pod 中容器的资源调整大小。仅适用于启用了 InPlacePodVerticalScaling 和内存管理器特性的节点。
JobBackoffLimitPerIndex允许在 Indexed Jobs 中指定每个索引的最大 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 中停止回退到此配置。因此,用户必须在 1.36 之前将他们的 CRI 容器运行时升级到支持 RuntimeConfig CRI 调用的版本。管理员可以使用指标 kubelet_cri_losing_support 查看集群中是否有节点将在 1.36 中失去支持。以下 CRI 版本支持此 CRI 调用:
更多详细信息请参阅 配置 cgroup 驱动。
KubeletCrashLoopBackOffMax启用对可配置的每节点退避最大值的支持,用于在 CrashLoopBackOff 状态下重启容器。有关更多详细信息,请检查 kubelet 配置文件 中的 crashLoopBackOff.maxContainerRestartPeriod 字段。
KubeletEnsureSecretPulledImages确保请求镜像的 Pod 在镜像已存在于节点上时,能够使用提供的凭据授权访问该镜像。请参阅 确保镜像拉取凭据验证。
KubeletFineGrainedAuthz为 kubelet 的 HTTP(s) API 启用细粒度授权。
KubeletInUserNamespace启用在 用户命名空间 (user namespace) 中运行 kubelet 的支持。请参阅 以非 root 用户身份运行 Kubernetes 节点组件。
KubeletPodResourcesDynamicResources扩展 kubelet 的 Pod 资源监控 gRPC API 端点 List 和 Get,以包含通过 动态资源分配 在 ResourceClaims 中分配的资源。
以下是 GPU 指标的示例,展示了此 API 如何被 NVIDIA dcgm-exporter 用于收集由 NVIDIA DRA 驱动程序 分配的每个 Pod 的 GPU 指标:
DCGM_FI_PROF_PCIE_RX_BYTES{gpu="0",UUID="GPU-a4f34abc-7715-3560-dcea-7238b9611a45",pci_bus_id="00000009:01:00.0",device="nvidia0",modelName="NVIDIA GH200 96GB HBM3",Hostname="sc-starwars-xxxx",container="ctr",dra_claim_name="single-gpu",dra_claim_namespace="gpu-test3",dra_device_name="gpu-0",dra_driver_name="gpu.nvidia.com",dra_pool_name="sc-starwars-xxxx",namespace="gpu-test3",pod="pod1"} 23792DCGM_FI_PROF_PCIE_RX_BYTES{gpu="0",UUID="GPU-a4f34abc-7715-3560-dcea-7238b9611a45",pci_bus_id="00000009:01:00.0",device="nvidia0",modelName="NVIDIA GH200 96GB HBM3",Hostname="sc-starwars-xxxx",container="ctr",dra_claim_name="single-gpu",dra_claim_namespace="gpu-test3",dra_device_name="gpu-0",dra_driver_name="gpu.nvidia.com",dra_pool_name="sc-starwars-xxxx",namespace="gpu-test3",pod="pod2"} 23792
with Pod DRA info:
container="ctr", dra_claim_name="single-gpu", dra_claim_namespace="gpu-test3", dra_device_name="gpu-0",dra_driver_name="gpu.nvidia.com", dra_pool_name="sc-starwars-xxxx", namespace="gpu-test3", pod="pod1"
KubeletPodResourcesGet在 kubelet 的 Pod 资源上启用 Get gRPC 端点。此 API 增强了 资源分配报告。
KubeletPSI使 kubelet 能够在 Summary API 和 Prometheus 指标中显示压力失速信息 (PSI) 指标。
KubeletSeparateDiskGC拆分镜像文件系统特性使 kubelet 能够对部署在单独文件系统上的镜像(只读层)和/或容器(可写层)执行垃圾回收。
KubeletServiceAccountTokenForCredentialProviders使 kubelet 能够将绑定到正在拉取镜像的 Pod 的服务账户令牌发送给凭据提供程序插件。
KubeletTracing添加对 kubelet 分布式追踪的支持。启用后,kubelet CRI 接口和身份验证 HTTP 服务器将被插桩以生成 OpenTelemetry 追踪跨度 (spans)。更多详细信息请参阅 Kubernetes 系统组件追踪。
ListFromCacheSnapshot使 API 服务器能够为 watch 缓存存储生成快照,并使用它们来服务 LIST 请求。
LocalStorageCapacityIsolationFSQuotaMonitoring当为本地临时存储启用 LocalStorageCapacityIsolation,emptyDir 卷的底层文件系统支持项目配额,并且启用了 UserNamespacesSupport 时,项目配额将用于监控 emptyDir 卷的存储消耗,而不是使用文件系统遍历,从而确保更好的性能和准确性。
LogarithmicScaleDown基于 Pod 时间戳的对数分桶,在控制器缩容时允许半随机选择 Pod 进行驱逐。
LoggingAlphaOptions允许对实验性 Alpha 质量的日志选项进行微调。
LoggingBetaOptions允许对实验性 Beta 质量的日志选项进行微调。
ManifestBasedAdmissionControlConfig启用通过 AdmissionConfiguration 中的 staticManifestsDir 字段,从磁盘上的静态清单文件加载准入 Webhook 和基于 CEL 的准入策略。这些策略在 API 服务器启动时激活,在 etcd 不可用时依然有效,并且可以保护基于 API 的准入资源免受修改。
MatchLabelKeysInPodAffinity为 Pod (反)亲和性 启用 matchLabelKeys 和 mismatchLabelKeys 字段。
MatchLabelKeysInPodTopologySpread为 Pod 拓扑分布约束 启用 matchLabelKeys 字段。
MatchLabelKeysInPodTopologySpreadSelectorMerge启用将由 matchLabelKeys 构建的选择器合并到 Pod 拓扑分布约束 的 labelSelector 中。当启用了 MatchLabelKeysInPodTopologySpread 特性标志且启用了 matchLabelKeys 特性时,可以启用此特性门控。
启用为 StatefulSet 的 滚动更新策略 设置 maxUnavailable 字段。该字段指定更新期间不可用的 Pod 的最大数量。
MemoryManager允许根据 NUMA 拓扑设置容器的内存亲和性。
MemoryQoS使用 cgroup v2 内存控制器启用对 Pod/容器的内存保护和使用限制。为 Burstable Pod 设置 memory.high 以进行限流,并在 memoryReservationPolicy 设置为 TieredReservation 时,可选地设置 memory.min / memory.low 以进行分层内存保护。
MultiCIDRServiceAllocator使用 IPAddress 对象跟踪 Service 集群 IP 的 IP 地址分配。
MutableCSINodeAllocatableCount使 CSINode 的 .spec.drivers[*].allocatable.count 字段可变。此外,启用 CSIDriver 字段 nodeAllocatableUpdatePeriodSeconds。
这允许定期更新节点报告的可分配卷容量,防止有状态 Pod 因 kube-scheduler 否则会依赖的过时信息而陷入困境。
MutablePodResourcesForSuspendedJobs启用修补暂停状态 Job 的 Pod 模板的能力,以更改基础设施资源的请求或限制。
MutablePVNodeAffinity允许更新 PersistentVolume 的 .spec.nodeAffinity 字段。更多详细信息请参阅 节点亲和性更新。
MutableSchedulingDirectivesForSuspendedJobs启用修补暂停状态 Job 的 Pod 模板的能力,以更改 Pod 调度指令。
MutatingAdmissionPolicy启用 MutatingAdmissionPolicy 支持,允许在准入控制期间应用 CEL 变异。
对于 Kubernetes v1.30 和 v1.31,此特性门控存在但无作用。
NativeHistograms使 Kubernetes 组件能够以 Prometheus 原生直方图格式公开指标,以提高效率和细化桶分辨率。更多信息请参阅 原生直方图。
NFTablesProxyMode允许在 nftables 模式 下运行 kube-proxy。
NodeDeclaredFeatures使节点能够通过其 .status 上报支持的功能。这使得调度程序和准入控制器能够防止在缺乏 Pod 所需功能的节点上执行操作。参见 节点声明功能。
NodeInclusionPolicyInPodTopologySpread在计算 Pod 拓扑分布偏差时,允许在 Pod 拓扑分布约束 中使用 nodeAffinityPolicy 和 nodeTaintsPolicy。
NodeLogQuery允许使用 /logs 端点查询节点服务的日志。
NodeSwap允许 kubelet 为节点上的 Kubernetes 工作负载分配交换内存(Swap)。必须将 KubeletConfiguration.failSwapOn 设置为 false 才能使用。有关更多详细信息,请参阅 交换内存。
NominatedNodeNameForExpectation启用此功能后,kube-scheduler 会使用 .status.nominatedNodeName 来表示 Pod 将要绑定的目标。当 kube-scheduler 触发 Pod 抢占,或预计 WaitOnPermit 或 PreBinding 阶段耗时较长时,会设置 .status.nominatedNodeName 字段。其他组件可以读取并使用 .status.nominatedNodeName,但不应修改它。
禁用此功能后,kube-scheduler 将仅在触发抢占之前设置 .status.nominatedNodeName。
OpenAPIEnums允许在 API 服务器返回的规范(spec)中填充 OpenAPI 模式的 "enum" 字段。
OpportunisticBatching允许对等效 Pod 重复使用上一调度周期的调度结果。
OrderedNamespaceDeletion在删除命名空间时,Pod 资源将先于其他资源被删除。
PersistentVolumeClaimUnusedSinceTime启用此功能后,PVC 保护控制器会向 PersistentVolumeClaims 添加一个 Unused 条件,用于跟踪该 PVC 当前是否被任何非终止状态的 Pod 引用。该条件的 lastTransitionTime 记录了 PVC 上次在“使用中”和“未使用”状态之间转换的时间。
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 索引标签文档。
PodInfoAPI启用 kubelet Pod Info gRPC API。有关详细信息,请参阅 Kubelet Pod Info gRPC API。
PodLevelResourceManagers启用 Pod 级资源管理器:允许拓扑、CPU 和内存管理器利用 .spec.resources 中的信息,为整个 Pod 执行 NUMA 对齐,并灵活地管理该 Pod 内容器的资源。
PodLevelResources启用 Pod 级资源:允许在 Pod 级别而不是仅针对特定容器指定资源请求和限制的能力。
PodLifecycleSleepAction启用容器生命周期钩子(preStop 和 postStart)中的 sleep 操作。
PodLifecycleSleepActionAllowZero允许在 容器生命周期钩子 中为 sleep 操作设置零值。
PodLogsQuerySplitStreams允许使用 Pod API 从容器的日志流中获取特定的日志流(stdout 或 stderr)。
PodObservedGenerationTracking允许 kubelet 在 Pod .status 中设置 observedGeneration,并允许其他组件在 Pod 条件中设置 observedGeneration。此功能有助于反映记录总体状态或特定条件时 Pod 的 .metadata.generation。存储该值有助于避免与丢失更新相关的风险。
PodReadyToStartContainersCondition允许 kubelet 在 Pod 上标记 PodReadyToStartContainers 条件。
此特性门控之前称为 PodHasNetworkCondition,相关条件名称为 PodHasNetwork。
PodSchedulingReadiness允许设置 schedulingGates 字段以控制 Pod 的 调度就绪状态。
PodTopologyLabelsAdmission启用 PodTopologyLabels 准入插件。详情参见 Pod 拓扑标签。
PortForwardWebsockets允许来自请求 v2 版本 (v2.portforward.k8s.io) 子协议的客户端对端口转发子协议 (port-forward) 进行 WebSocket 流式传输。
PreferSameTrafficDistribution允许在 Service trafficDistribution 字段中使用 PreferSameZone 和 PreferSameNode 值。
PreventStaticPodAPIReferences如果静态 Pod 引用了其他 API 对象,则拒绝 Pod 准入。
ProcMountType通过设置 Pod 的 securityContext 中的 procMount 字段,实现对容器 proc 挂载类型的控制。
QOSReserved允许在 QoS 级别进行资源预留,防止较低 QoS 级别的 Pod 突发使用分配给较高 QoS 级别的资源(目前仅限内存)。
RecoverVolumeExpansionFailure允许用户将 PVC 缩减为更小的尺寸,以便从之前卷扩展失败的状态中恢复。有关更多详细信息,请参阅 从卷扩展失败中恢复。
RecursiveReadOnlyMounts启用递归只读挂载支持。有关更多详细信息,请参阅 只读挂载。
ReduceDefaultCrashLoopBackOffDecay将集群范围内 CrashLoopBackOff 容器的初始重启延迟和最大重启延迟分别缩短至 1s 和 60s。
RelaxedDNSSearchValidation放宽容器 DNS 搜索字符串 (.spec.dnsConfig.searches) 的服务端验证。例如,启用此门控后,可以在 DNS 名称搜索字符串中包含 _ 字符。
RelaxedEnvironmentVariableValidation允许在环境变量中使用几乎所有可打印的 ASCII 字符。
RelaxedServiceNameValidation启用对 Service 对象名称的宽松验证,允许使用 RFC 1123 标签名称 而非 RFC 1035 标签名称。
此功能允许 Service 对象名称以数字开头。
ReloadKubeletServerCertificateFile使 kubelet TLS 服务器能够在指定的证书文件发生更改时更新其证书。
此功能在 kubelet 配置中指定 tlsCertFile 和 tlsPrivateKeyFile 时非常有用。对于使用 TLS bootstrap 等其他情况,此特性门控无效。
RemoteRequestHeaderUID允许 API 服务器通过请求头身份验证接受 UID(用户 ID)。这也将使 kube-apiserver 的 API 聚合器在将请求转发到提供聚合 API 的服务器时,通过标准标头添加 UID。
ResilientWatchCacheInitialization启用弹性 watchcache 初始化,以避免控制平面过载。
ResourceHealthStatus在 Pod 的 .status 中启用 allocatedResourcesStatus 字段。该字段报告 Pod 中每个容器的详细信息,以及分配给 Pod 的每个设备的健康状况信息。
从 v1.36(beta)开始,健康状况报告包含一个可选的 message 字段,提供关于健康状态的额外人类可读上下文,例如错误详细信息或故障原因。
此功能适用于由 设备插件 和 动态资源分配 管理的设备。有关更多详细信息,请参阅 设备插件与不健康设备。
RestartAllContainersOnContainerExits允许在容器的 restartPolicyRules 中将 RestartAllContainers 指定为操作。当容器的退出状态匹配此操作的规则时,整个 Pod 将被终止并在原地重启。有关更多详细信息,请参阅 重启所有容器。
RetryGenerateName当预期由 API 服务器 生成 名称 时,启用对象创建重试机制。
启用此功能后,如果控制平面检测到名称与现有对象冲突,使用 generateName 的请求将自动重试,最多尝试 8 次。
RotateKubeletServerCertificate允许在 kubelet 上轮换服务器 TLS 证书。有关更多详细信息,请参阅 kubelet 配置。
RuntimeClassInImageCriApi允许基于引用 Pod 的 运行时类 (Runtime Class) 拉取镜像。
SchedulerAsyncAPICalls更改 kube-scheduler,使整个调度周期不再包含阻塞 Kubernetes API 服务器的请求。改为使用异步代码与 Kubernetes API 进行交互。
SchedulerAsyncPreemption允许异步运行调度程序中与 抢占 相关的某些耗时操作。抢占的异步处理可提高整体 Pod 调度延迟。
SchedulerPopFromBackoffQ通过在 activeQ 为空时从 backoffQ 中弹出 Pod,改善调度队列行为。这允许尽快处理潜在可调度的 Pod,消除了退避队列的惩罚效应。
SchedulerQueueingHints启用调度程序 队列提示 (queueing hints),有助于减少无效的重新排队。当集群中发生可能使 Pod 变得可调度的变化时,调度程序会重试调度。队列提示是内部信号,允许调度程序基于先前的调度尝试,过滤掉与未调度 Pod 不相关的集群变更。
SELinuxChangePolicy启用 spec.securityContext.seLinuxChangePolicy 字段。该字段可用于选择不通过挂载选项将 SELinux 标签应用于 Pod 卷。当单个支持 SELinux 挂载选项的卷在具有不同 SELinux 标签的 Pod(例如特权和非特权 Pod)之间共享时,此功能是必需的。
启用 SELinuxChangePolicy 特性门控需要同时启用 SELinuxMountReadWriteOncePod 特性门控。
SELinuxMount允许 kubelet 直接使用正确的 SELinux 标签挂载 Pod 卷,而无需递归更改卷上的每个文件,从而加速容器启动。它将 SELinuxMountReadWriteOncePod 特性门控背后的性能提升扩展到了所有卷。
启用 SELinuxMount 特性门控需要同时启用 SELinuxMountReadWriteOncePod 和 SELinuxChangePolicy 特性门控。
SELinuxMountReadWriteOncePod允许 kubelet 直接使用正确的 SELinux 标签挂载 Pod 卷,而无需递归更改卷上的每个文件,从而加速容器启动。最初的实现侧重于 ReadWriteOncePod 卷。
SeparateCacheWatchRPC允许 API 服务器 watch 缓存创建专用 RPC 的监听。这防止了 watch 缓存被其他监听操作耗尽资源。
SeparateTaintEvictionController启用基于污点的驱逐控制器作为独立控制器(与节点生命周期控制器分离)运行,该控制器执行 基于污点的驱逐。
ServiceAccountNodeAudienceRestriction此门控用于限制 kubelet 可以为其请求服务账户令牌的受众 (audience)。
ServiceAccountTokenJTI控制是否将 JTI (UUID) 嵌入到生成的服务账户令牌中,以及这些 JTI 是否被记录到 Kubernetes 审计日志中,以供这些令牌的未来请求使用。
ServiceAccountTokenNodeBinding控制 API 服务器是否允许将服务账户令牌绑定到节点对象。
ServiceAccountTokenNodeBindingValidation控制 API 服务器是否验证服务账户令牌中的节点引用。
ServiceAccountTokenPodNodeInfo控制 API 服务器在签发绑定到 Pod 对象的服务账户令牌时,是否嵌入相关节点的名称和 UID。
ServiceTrafficDistribution允许在 Services 中使用可选的 spec.trafficDistribution 字段。该字段提供了一种表达如何将流量分配到 Service 端点的偏好方式。
ShardedListAndWatch启用对 list 和 watch 请求的 shardSelector 参数支持,允许客户端根据元数据字段(如 UID)的哈希范围接收过滤后的对象子集。有关更多详细信息,请参阅 分片列表和观察。
SidecarContainers允许将初始化容器的 restartPolicy 设置为 Always,从而将其转换为边车容器(可重启的初始化容器)。有关更多详细信息,请参阅 边车容器和 restartPolicy。
SizeBasedListCostEstimate允许 APF(API 优先级与公平性)使用对象的大小来估计请求成本。
StaleControllerConsistencyDaemonSet启用 DaemonSet 控制器内的行为,确保在对同一 DaemonSet 进行额外协调之前,观察到对 API 服务器的先前写入。这是为了防止过期的缓存导致对 DaemonSet 的错误或虚假更新。
StaleControllerConsistencyJob启用 Job 控制器内的行为,确保在对同一 Job 进行额外协调之前,观察到对 API 服务器的先前写入。这是为了防止过期的缓存导致对 Job 的错误或虚假更新。
StaleControllerConsistencyReplicaSet启用 ReplicaSet 控制器内的行为,确保在对同一 ReplicaSet 进行额外协调之前,观察到对 API 服务器的先前写入。这是为了防止过期的缓存导致对 ReplicaSet 的错误或虚假更新。
StaleControllerConsistencyStatefulSet启用 StatefulSet 控制器内的行为,确保在对同一 StatefulSet 进行额外协调之前,观察到对 API 服务器的先前写入。这是为了防止过期的缓存导致对 StatefulSet 的错误或虚假更新。
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 服务器在发现 API 中公开存储版本哈希。
StorageVersionMigrator允许资源 存储版本 的迁移。
StreamingCollectionEncodingToJSON允许 API 服务器 JSON 编码器逐项对集合进行编码,而不是一次性编码。
StreamingCollectionEncodingToProtobuf允许 API 服务器 Protobuf 编码器逐项对集合进行编码,而不是一次性编码。
StrictCostEnforcementForVAP对 ValidatingAdmissionPolicies 应用严格的 CEL 成本验证。
StrictCostEnforcementForWebhooks对准入 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。
StructuredAuthenticationConfigurationJWKSMetrics为通过 --authentication-config 配置的 JWT 身份验证器中的 JSON Web Key Set (JWKS) 操作启用额外的指标。启用后,API 服务器会记录有关最后一次获取 JWKS 的时间以及 JWKS 响应哈希值的指标。详情请参阅 指标参考。
StructuredAuthorizationConfiguration启用结构化授权配置,以便集群管理员可以在 API 服务器处理程序链中指定多个 授权 Webhook。
SupplementalGroupsPolicy启用对细粒度 SupplementalGroups 控制的支持。有关更多详细信息,请参阅 为 Pod 配置细粒度 SupplementalGroups 控制。
SystemdWatchdog允许使用 systemd 看门狗来监控 kubelet 的健康状态。有关更多详细信息,请参阅 Kubelet Systemd 看门狗。
TaintTolerationComparisonOperators为 污点容忍 启用数字比较运算符 (Lt 和 Gt)。
TokenRequestServiceAccountUIDValidation用于确保 TokenRequest 中提供的 UID 与正在请求令牌的 ServiceAccount 的 UID 匹配。这有助于防止 TokenRequest API 的滥用,确保令牌仅针对正确的 ServiceAccount 签发。
TopologyAwareHints根据 EndpointSlice 中的拓扑提示启用拓扑感知路由。有关更多详细信息,请参阅 拓扑感知提示。
TopologyAwareWorkloadScheduling启用工作负载的拓扑感知调度。
TopologyManagerPolicyAlphaOptions允许微调拓扑管理器策略的实验性 Alpha 质量选项。此特性门控保护一组质量级别为 Alpha 的拓扑管理器选项。此特性门控永远不会升级到 Beta 或稳定版本。
TopologyManagerPolicyBetaOptions允许微调拓扑管理器策略的实验性 Beta 质量选项。此特性门控保护一组质量级别为 Beta 的拓扑管理器选项。此特性门控永远不会升级到稳定版本。
TopologyManagerPolicyOptions启用拓扑管理器策略的 微调 功能。
TranslateStreamCloseWebsocketRequests允许来自请求 v5 版本子协议的客户端对远程命令子协议 (exec, cp, attach) 进行 WebSocket 流式传输。
UnauthenticatedHTTP2DOSMitigation为未经身份验证的客户端启用 HTTP/2 拒绝服务 (DoS) 缓解措施。Kubernetes v1.28.0 到 v1.28.2 不包含此特性门控。
UnknownVersionInteroperabilityProxy当存在多个不同版本的 kube-apiserver 时,将资源请求代理到正确的对等 kube-apiserver。有关更多信息,请参阅 混合版本代理。
UnlockWhileProcessingFIFO在 client-go 中启用 FIFO 队列,该队列在处理事件时解锁。如果不启用,队列将在处理事件的整个期间持有锁,这可能导致高吞吐量场景下的性能问题。此特性门控可在 kube-controller-manager 和任何基于 client-go 的控制器中切换。
仅当同时启用 AtomicFIFO 特性门控时,才能启用此特性门控。
UserNamespacesHostNetworkSupport启用此功能后,Pod 可以同时使用 hostNetwork 和 用户命名空间。
UserNamespacesSupport启用 Pod 的用户命名空间支持。
VolumeAttributesClass启用对 VolumeAttributesClasses 的支持。有关更多信息,请参阅 卷属性类。
VolumeLimitScaling启用 CSI 驱动程序的卷限制扩展。这允许调度程序与集群自动缩放器更好地协调存储限制。有关更多信息,请参阅 存储限制。
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 容器加入主机网络命名空间的支持。
WinDSR允许 kube-proxy 为 Windows 创建 DSR 负载均衡器。
WinOverlay允许 kube-proxy 以覆盖 (overlay) 模式在 Windows 上运行。
WorkloadAwarePreemption启用对 工作负载感知抢占 的支持。
启用此功能后,如果 PodGroup 调度失败,调度程序将使用工作负载感知抢占算法来选择要抢占的牺牲品,而不是使用默认的 Pod 抢占算法。
WorkloadWithJob允许 Job 控制器为 符合条件的 Job 自动创建 Workload 和 PodGroup 对象。详情请参阅 与工作负载 API 集成。
storage.k8s.io/v1beta1/csistoragecapacities 的特定资源,请设置 --runtime-config=storage.k8s.io/v1beta1/csistoragecapacities。有关命令行标志的更多详细信息,请参阅 API 版本控制。