特性門控
此頁面概述了管理員可以在不同 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 上以覆蓋模式執行。