diff --git a/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates.md b/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates.md index 8faf5dff6edc7..9fe2898138e4a 100644 --- a/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/zh-cn/docs/reference/command-line-tools-reference/feature-gates.md @@ -83,15 +83,25 @@ different Kubernetes components. 你可以在[已毕业和废弃特性门控表](#feature-gates-for-graduated-or-deprecated-features)中找到该特性的所有阶段。 - [已毕业和废弃特性门控表](#feature-gates-for-graduated-or-deprecated-features)还列出了废弃的和已被移除的特性。 +{{< note >}} +有关已移除的原有特性门控的参考信息, +请参阅[已移除的特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates-removed/)。 +{{< /note >}} -| Feature | Default | Stage | Since | Until | + ### Alpha 和 Beta 状态的特性门控 {#feature-gates-for-alpha-or-beta-features} {{< table caption="处于 Alpha 或 Beta 状态的特性门控" >}} + | 特性 | 默认值 | 状态 | 开始(Since) | 结束(Until) | |---------|---------|-------|---------------|---------------| | `APIListChunking` | `false` | Alpha | 1.8 | 1.8 | @@ -245,44 +255,19 @@ different Kubernetes components. ### 已毕业和已废弃的特性门控 {#feature-gates-for-graduated-or-deprecated-features} {{< table caption="已毕业或不推荐使用的特性门控" >}} + | 特性 | 默认值 | 状态 | 开始(Since) | 结束(Until) | |---------|---------|-------|---------------|---------------| -| `Accelerators` | `false` | Alpha | 1.6 | 1.10 | -| `Accelerators` | - | Deprecated | 1.11 | - | | `AdvancedAuditing` | `false` | Alpha | 1.7 | 1.7 | | `AdvancedAuditing` | `true` | Beta | 1.8 | 1.11 | | `AdvancedAuditing` | `true` | GA | 1.12 | - | -| `AffinityInAnnotations` | `false` | Alpha | 1.6 | 1.7 | -| `AffinityInAnnotations` | - | Deprecated | 1.8 | - | -| `AllowExtTrafficLocalEndpoints` | `false` | Beta | 1.4 | 1.6 | -| `AllowExtTrafficLocalEndpoints` | `true` | GA | 1.7 | - | -| `AttachVolumeLimit` | `false` | Alpha | 1.11 | 1.11 | -| `AttachVolumeLimit` | `true` | Beta | 1.12 | 1.16 | -| `AttachVolumeLimit` | `true` | GA | 1.17 | - | -| `BalanceAttachedNodeVolumes` | `false` | Alpha | 1.11 | 1.21 | -| `BalanceAttachedNodeVolumes` | `false` | Deprecated | 1.22 | | -| `BlockVolume` | `false` | Alpha | 1.9 | 1.12 | -| `BlockVolume` | `true` | Beta | 1.13 | 1.17 | -| `BlockVolume` | `true` | GA | 1.18 | - | -| `BoundServiceAccountTokenVolume` | `false` | Alpha | 1.13 | 1.20 | -| `BoundServiceAccountTokenVolume` | `true` | Beta | 1.21 | 1.21 | -| `BoundServiceAccountTokenVolume` | `true` | GA | 1.22 | - | -| `CRIContainerLogRotation` | `false` | Alpha | 1.10 | 1.10 | -| `CRIContainerLogRotation` | `true` | Beta | 1.11 | 1.20 | -| `CRIContainerLogRotation` | `true` | GA | 1.21 | - | -| `CSIBlockVolume` | `false` | Alpha | 1.11 | 1.13 | -| `CSIBlockVolume` | `true` | Beta | 1.14 | 1.17 | -| `CSIBlockVolume` | `true` | GA | 1.18 | - | -| `CSIDriverRegistry` | `false` | Alpha | 1.12 | 1.13 | -| `CSIDriverRegistry` | `true` | Beta | 1.14 | 1.17 | -| `CSIDriverRegistry` | `true` | GA | 1.18 | - | | `CSIInlineVolume` | `false` | Alpha | 1.15 | 1.15 | | `CSIInlineVolume` | `true` | Beta | 1.16 | 1.24 | | `CSIInlineVolume` | `true` | GA | 1.25 | - | @@ -293,75 +278,27 @@ different Kubernetes components. | `CSIMigrationAWS` | `false` | Beta | 1.17 | 1.22 | | `CSIMigrationAWS` | `true` | Beta | 1.23 | 1.24 | | `CSIMigrationAWS` | `true` | GA | 1.25 | - | -| `CSIMigrationAWSComplete` | `false` | Alpha | 1.17 | 1.20 | -| `CSIMigrationAWSComplete` | - | Deprecated | 1.21 | - | | `CSIMigrationAzureDisk` | `false` | Alpha | 1.15 | 1.18 | | `CSIMigrationAzureDisk` | `false` | Beta | 1.19 | 1.22 | | `CSIMigrationAzureDisk` | `true` | Beta | 1.23 | 1.23 | | `CSIMigrationAzureDisk` | `true` | GA | 1.24 | | -| `CSIMigrationAzureDiskComplete` | `false` | Alpha | 1.17 | 1.20 | -| `CSIMigrationAzureDiskComplete` | - | Deprecated | 1.21 | - | -| `CSIMigrationAzureFileComplete` | `false` | Alpha | 1.17 | 1.20 | -| `CSIMigrationAzureFileComplete` | - | Deprecated | 1.21 | - | | `CSIMigrationGCE` | `false` | Alpha | 1.14 | 1.16 | | `CSIMigrationGCE` | `false` | Beta | 1.17 | 1.22 | | `CSIMigrationGCE` | `true` | Beta | 1.23 | 1.24 | | `CSIMigrationGCE` | `true` | GA | 1.25 | - | -| `CSIMigrationGCEComplete` | `false` | Alpha | 1.17 | 1.20 | -| `CSIMigrationGCEComplete` | - | Deprecated | 1.21 | - | | `CSIMigrationOpenStack` | `false` | Alpha | 1.14 | 1.17 | | `CSIMigrationOpenStack` | `true` | Beta | 1.18 | 1.23 | | `CSIMigrationOpenStack` | `true` | GA | 1.24 | | -| `CSIMigrationOpenStackComplete` | `false` | Alpha | 1.17 | 1.20 | -| `CSIMigrationOpenStackComplete` | - | Deprecated | 1.21 | - | -| `CSIMigrationvSphereComplete` | `false` | Beta | 1.19 | 1.21 | -| `CSIMigrationvSphereComplete` | - | Deprecated | 1.22 | - | -| `CSINodeInfo` | `false` | Alpha | 1.12 | 1.13 | -| `CSINodeInfo` | `true` | Beta | 1.14 | 1.16 | -| `CSINodeInfo` | `true` | GA | 1.17 | - | -| `CSIPersistentVolume` | `false` | Alpha | 1.9 | 1.9 | -| `CSIPersistentVolume` | `true` | Beta | 1.10 | 1.12 | -| `CSIPersistentVolume` | `true` | GA | 1.13 | - | -| `CSIServiceAccountToken` | `false` | Alpha | 1.20 | 1.20 | -| `CSIServiceAccountToken` | `true` | Beta | 1.21 | 1.21 | -| `CSIServiceAccountToken` | `true` | GA | 1.22 | - | | `CSIStorageCapacity` | `false` | Alpha | 1.19 | 1.20 | | `CSIStorageCapacity` | `true` | Beta | 1.21 | 1.23 | | `CSIStorageCapacity` | `true` | GA | 1.24 | - | -| `CSIVolumeFSGroupPolicy` | `false` | Alpha | 1.19 | 1.19 | -| `CSIVolumeFSGroupPolicy` | `true` | Beta | 1.20 | 1.22 | -| `CSIVolumeFSGroupPolicy` | `true` | GA | 1.23 | | | `CSRDuration` | `true` | Beta | 1.22 | 1.23 | | `CSRDuration` | `true` | GA | 1.24 | - | -| `ConfigurableFSGroupPolicy` | `false` | Alpha | 1.18 | 1.19 | -| `ConfigurableFSGroupPolicy` | `true` | Beta | 1.20 | 1.22 | -| `ConfigurableFSGroupPolicy` | `true` | GA | 1.23 | - | | `ControllerManagerLeaderMigration` | `false` | Alpha | 1.21 | 1.21 | | `ControllerManagerLeaderMigration` | `true` | Beta | 1.22 | 1.23 | | `ControllerManagerLeaderMigration` | `true` | GA | 1.24 | - | -| `CronJobControllerV2` | `false` | Alpha | 1.20 | 1.20 | -| `CronJobControllerV2` | `true` | Beta | 1.21 | 1.21 | -| `CronJobControllerV2` | `true` | GA | 1.22 | - | | `CronJobTimeZone` | `false` | Alpha | 1.24 | 1.24 | | `CronJobTimeZone` | `true` | Beta | 1.25 | | -| `CustomPodDNS` | `false` | Alpha | 1.9 | 1.9 | -| `CustomPodDNS` | `true` | Beta| 1.10 | 1.13 | -| `CustomPodDNS` | `true` | GA | 1.14 | - | -| `CustomResourceDefaulting` | `false` | Alpha| 1.15 | 1.15 | -| `CustomResourceDefaulting` | `true` | Beta | 1.16 | 1.16 | -| `CustomResourceDefaulting` | `true` | GA | 1.17 | - | -| `CustomResourcePublishOpenAPI` | `false` | Alpha| 1.14 | 1.14 | -| `CustomResourcePublishOpenAPI` | `true` | Beta| 1.15 | 1.15 | -| `CustomResourcePublishOpenAPI` | `true` | GA | 1.16 | - | -| `CustomResourceSubresources` | `false` | Alpha | 1.10 | 1.10 | -| `CustomResourceSubresources` | `true` | Beta | 1.11 | 1.15 | -| `CustomResourceSubresources` | `true` | GA | 1.16 | - | -| `CustomResourceValidation` | `false` | Alpha | 1.8 | 1.8 | -| `CustomResourceValidation` | `true` | Beta | 1.9 | 1.15 | -| `CustomResourceValidation` | `true` | GA | 1.16 | - | -| `CustomResourceWebhookConversion` | `false` | Alpha | 1.13 | 1.14 | -| `CustomResourceWebhookConversion` | `true` | Beta | 1.15 | 1.15 | -| `CustomResourceWebhookConversion` | `true` | GA | 1.16 | - | | `DaemonSetUpdateSurge` | `false` | Alpha | 1.21 | 1.21 | | `DaemonSetUpdateSurge` | `true` | Beta | 1.22 | 1.24 | | `DaemonSetUpdateSurge` | `true` | GA | 1.25 | - | @@ -374,36 +311,15 @@ different Kubernetes components. | `DryRun` | `false` | Alpha | 1.12 | 1.12 | | `DryRun` | `true` | Beta | 1.13 | 1.18 | | `DryRun` | `true` | GA | 1.19 | - | -| `DynamicAuditing` | `false` | Alpha | 1.13 | 1.18 | -| `DynamicAuditing` | - | Deprecated | 1.19 | - | | `DynamicKubeletConfig` | `false` | Alpha | 1.4 | 1.10 | | `DynamicKubeletConfig` | `true` | Beta | 1.11 | 1.21 | | `DynamicKubeletConfig` | `false` | Deprecated | 1.22 | - | -| `DynamicProvisioningScheduling` | `false` | Alpha | 1.11 | 1.11 | -| `DynamicProvisioningScheduling` | - | Deprecated| 1.12 | - | -| `DynamicVolumeProvisioning` | `true` | Alpha | 1.3 | 1.7 | -| `DynamicVolumeProvisioning` | `true` | GA | 1.8 | - | | `EfficientWatchResumption` | `false` | Alpha | 1.20 | 1.20 | | `EfficientWatchResumption` | `true` | Beta | 1.21 | 1.23 | | `EfficientWatchResumption` | `true` | GA | 1.24 | - | -| `EnableAggregatedDiscoveryTimeout` | `true` | Deprecated | 1.16 | - | -| `EnableEquivalenceClassCache` | `false` | Alpha | 1.8 | 1.14 | -| `EnableEquivalenceClassCache` | - | Deprecated | 1.15 | - | -| `EndpointSlice` | `false` | Alpha | 1.16 | 1.16 | -| `EndpointSlice` | `false` | Beta | 1.17 | 1.17 | -| `EndpointSlice` | `true` | Beta | 1.18 | 1.20 | -| `EndpointSlice` | `true` | GA | 1.21 | - | -| `EndpointSliceNodeName` | `false` | Alpha | 1.20 | 1.20 | -| `EndpointSliceNodeName` | `true` | GA | 1.21 | - | -| `EndpointSliceProxying` | `false` | Alpha | 1.18 | 1.18 | -| `EndpointSliceProxying` | `true` | Beta | 1.19 | 1.21 | -| `EndpointSliceProxying` | `true` | GA | 1.22 | - | | `EphemeralContainers` | `false` | Alpha | 1.16 | 1.22 | | `EphemeralContainers` | `true` | Beta | 1.23 | 1.24 | | `EphemeralContainers` | `true` | GA | 1.25 | - | -| `EvenPodsSpread` | `false` | Alpha | 1.16 | 1.17 | -| `EvenPodsSpread` | `true` | Beta | 1.18 | 1.18 | -| `EvenPodsSpread` | `true` | GA | 1.19 | - | | `ExecProbeTimeout` | `true` | GA | 1.20 | - | | `ExpandCSIVolumes` | `false` | Alpha | 1.14 | 1.15 | | `ExpandCSIVolumes` | `true` | Beta | 1.16 | 1.23 | @@ -414,225 +330,54 @@ different Kubernetes components. | `ExpandPersistentVolumes` | `false` | Alpha | 1.8 | 1.10 | | `ExpandPersistentVolumes` | `true` | Beta | 1.11 | 1.23 | | `ExpandPersistentVolumes` | `true` | GA | 1.24 |- | -| `ExperimentalCriticalPodAnnotation` | `false` | Alpha | 1.5 | 1.12 | -| `ExperimentalCriticalPodAnnotation` | `false` | Deprecated | 1.13 | - | -| `ExternalPolicyForExternalIP` | `true` | GA | 1.18 | - | -| `GCERegionalPersistentDisk` | `true` | Beta | 1.10 | 1.12 | -| `GCERegionalPersistentDisk` | `true` | GA | 1.13 | - | -| `GenericEphemeralVolume` | `false` | Alpha | 1.19 | 1.20 | -| `GenericEphemeralVolume` | `true` | Beta | 1.21 | 1.22 | -| `GenericEphemeralVolume` | `true` | GA | 1.23 | - | -| `HugePageStorageMediumSize` | `false` | Alpha | 1.18 | 1.18 | -| `HugePageStorageMediumSize` | `true` | Beta | 1.19 | 1.21 | -| `HugePageStorageMediumSize` | `true` | GA | 1.22 | - | -| `HugePages` | `false` | Alpha | 1.8 | 1.9 | -| `HugePages` | `true` | Beta| 1.10 | 1.13 | -| `HugePages` | `true` | GA | 1.14 | - | -| `HyperVContainer` | `false` | Alpha | 1.10 | 1.19 | -| `HyperVContainer` | `false` | Deprecated | 1.20 | - | -| `IPv6DualStack` | `false` | Alpha | 1.15 | 1.20 | -| `IPv6DualStack` | `true` | Beta | 1.21 | 1.22 | -| `IPv6DualStack` | `true` | GA | 1.23 | - | | `IdentifyPodOS` | `false` | Alpha | 1.23 | 1.23 | | `IdentifyPodOS` | `true` | Beta | 1.24 | 1.24 | | `IdentifyPodOS` | `true` | GA | 1.25 | - | -| `ImmutableEphemeralVolumes` | `false` | Alpha | 1.18 | 1.18 | -| `ImmutableEphemeralVolumes` | `true` | Beta | 1.19 | 1.20 | -| `ImmutableEphemeralVolumes` | `true` | GA | 1.21 | | | `IndexedJob` | `false` | Alpha | 1.21 | 1.21 | | `IndexedJob` | `true` | Beta | 1.22 | 1.23 | | `IndexedJob` | `true` | GA | 1.24 | - | -| `IngressClassNamespacedParams` | `false` | Alpha | 1.21 | 1.21 | -| `IngressClassNamespacedParams` | `true` | Beta | 1.22 | 1.22 | -| `IngressClassNamespacedParams` | `true` | GA | 1.23 | - | -| `Initializers` | `false` | Alpha | 1.7 | 1.13 | -| `Initializers` | - | Deprecated | 1.14 | - | -| `KubeletConfigFile` | `false` | Alpha | 1.8 | 1.9 | -| `KubeletConfigFile` | - | Deprecated | 1.10 | - | -| `KubeletPluginsWatcher` | `false` | Alpha | 1.11 | 1.11 | -| `KubeletPluginsWatcher` | `true` | Beta | 1.12 | 1.12 | -| `KubeletPluginsWatcher` | `true` | GA | 1.13 | - | -| `LegacyNodeRoleBehavior` | `false` | Alpha | 1.16 | 1.18 | -| `LegacyNodeRoleBehavior` | `true` | Beta | 1.19 | 1.20 | -| `LegacyNodeRoleBehavior` | `false` | GA | 1.21 | - | | `LocalStorageCapacityIsolation` | `false` | Alpha | 1.7 | 1.9 | | `LocalStorageCapacityIsolation` | `true` | Beta | 1.10 | 1.24 | | `LocalStorageCapacityIsolation` | `true` | GA | 1.25 | - | -| `MountContainers` | `false` | Alpha | 1.9 | 1.16 | -| `MountContainers` | `false` | Deprecated | 1.17 | - | -| `MountPropagation` | `false` | Alpha | 1.8 | 1.9 | -| `MountPropagation` | `true` | Beta | 1.10 | 1.11 | -| `MountPropagation` | `true` | GA | 1.12 | - | -| `NamespaceDefaultLabelName` | `true` | Beta | 1.21 | 1.21 | -| `NamespaceDefaultLabelName` | `true` | GA | 1.22 | - | | `NetworkPolicyEndPort` | `false` | Alpha | 1.21 | 1.21 | | `NetworkPolicyEndPort` | `true` | Beta | 1.22 | 1.24 | | `NetworkPolicyEndPort` | `true` | GA | 1.25 | - | -| `NodeDisruptionExclusion` | `false` | Alpha | 1.16 | 1.18 | -| `NodeDisruptionExclusion` | `true` | Beta | 1.19 | 1.20 | -| `NodeDisruptionExclusion` | `true` | GA | 1.21 | - | -| `NodeLease` | `false` | Alpha | 1.12 | 1.13 | -| `NodeLease` | `true` | Beta | 1.14 | 1.16 | -| `NodeLease` | `true` | GA | 1.17 | - | | `NonPreemptingPriority` | `false` | Alpha | 1.15 | 1.18 | | `NonPreemptingPriority` | `true` | Beta | 1.19 | 1.23 | | `NonPreemptingPriority` | `true` | GA | 1.24 | - | -| `PVCProtection` | `false` | Alpha | 1.9 | 1.9 | -| `PVCProtection` | - | Deprecated | 1.10 | - | -| `PersistentLocalVolumes` | `false` | Alpha | 1.7 | 1.9 | -| `PersistentLocalVolumes` | `true` | Beta | 1.10 | 1.13 | -| `PersistentLocalVolumes` | `true` | GA | 1.14 | - | | `PodAffinityNamespaceSelector` | `false` | Alpha | 1.21 | 1.21 | | `PodAffinityNamespaceSelector` | `true` | Beta | 1.22 | 1.23 | | `PodAffinityNamespaceSelector` | `true` | GA | 1.24 | - | -| `PodDisruptionBudget` | `false` | Alpha | 1.3 | 1.4 | -| `PodDisruptionBudget` | `true` | Beta | 1.5 | 1.20 | -| `PodDisruptionBudget` | `true` | GA | 1.21 | - | | `PodOverhead` | `false` | Alpha | 1.16 | 1.17 | | `PodOverhead` | `true` | Beta | 1.18 | 1.23 | | `PodOverhead` | `true` | GA | 1.24 | - | -| `PodPriority` | `false` | Alpha | 1.8 | 1.10 | -| `PodPriority` | `true` | Beta | 1.11 | 1.13 | -| `PodPriority` | `true` | GA | 1.14 | - | -| `PodReadinessGates` | `false` | Alpha | 1.11 | 1.11 | -| `PodReadinessGates` | `true` | Beta | 1.12 | 1.13 | -| `PodReadinessGates` | `true` | GA | 1.14 | - | | `PodSecurity` | `false` | Alpha | 1.22 | 1.22 | | `PodSecurity` | `true` | Beta | 1.23 | 1.24 | | `PodSecurity` | `true` | GA | 1.25 | | -| `PodShareProcessNamespace` | `false` | Alpha | 1.10 | 1.11 | -| `PodShareProcessNamespace` | `true` | Beta | 1.12 | 1.16 | -| `PodShareProcessNamespace` | `true` | GA | 1.17 | - | | `PreferNominatedNode` | `false` | Alpha | 1.21 | 1.21 | | `PreferNominatedNode` | `true` | Beta | 1.22 | 1.23 | | `PreferNominatedNode` | `true` | GA | 1.24 | - | | `RemoveSelfLink` | `false` | Alpha | 1.16 | 1.19 | | `RemoveSelfLink` | `true` | Beta | 1.20 | 1.23 | | `RemoveSelfLink` | `true` | GA | 1.24 | - | -| `RequestManagement` | `false` | Alpha | 1.15 | 1.16 | -| `RequestManagement` | - | Deprecated | 1.17 | - | -| `ResourceLimitsPriorityFunction` | `false` | Alpha | 1.9 | 1.18 | -| `ResourceLimitsPriorityFunction` | - | Deprecated | 1.19 | - | -| `ResourceQuotaScopeSelectors` | `false` | Alpha | 1.11 | 1.11 | -| `ResourceQuotaScopeSelectors` | `true` | Beta | 1.12 | 1.16 | -| `ResourceQuotaScopeSelectors` | `true` | GA | 1.17 | - | -| `RootCAConfigMap` | `false` | Alpha | 1.13 | 1.19 | -| `RootCAConfigMap` | `true` | Beta | 1.20 | 1.20 | -| `RootCAConfigMap` | `true` | GA | 1.21 | - | -| `RotateKubeletClientCertificate` | `true` | Beta | 1.8 | 1.18 | -| `RotateKubeletClientCertificate` | `true` | GA | 1.19 | - | -| `RunAsGroup` | `true` | Beta | 1.14 | 1.20 | -| `RunAsGroup` | `true` | GA | 1.21 | - | -| `RuntimeClass` | `false` | Alpha | 1.12 | 1.13 | -| `RuntimeClass` | `true` | Beta | 1.14 | 1.19 | -| `RuntimeClass` | `true` | GA | 1.20 | - | -| `SCTPSupport` | `false` | Alpha | 1.12 | 1.18 | -| `SCTPSupport` | `true` | Beta | 1.19 | 1.19 | -| `SCTPSupport` | `true` | GA | 1.20 | - | -| `ScheduleDaemonSetPods` | `false` | Alpha | 1.11 | 1.11 | -| `ScheduleDaemonSetPods` | `true` | Beta | 1.12 | 1.16 | -| `ScheduleDaemonSetPods` | `true` | GA | 1.17 | - | -| `SelectorIndex` | `false` | Alpha | 1.18 | 1.18 | -| `SelectorIndex` | `true` | Beta | 1.19 | 1.19 | -| `SelectorIndex` | `true` | GA | 1.20 | - | | `ServerSideApply` | `false` | Alpha | 1.14 | 1.15 | | `ServerSideApply` | `true` | Beta | 1.16 | 1.21 | | `ServerSideApply` | `true` | GA | 1.22 | - | -| `ServiceAccountIssuerDiscovery` | `false` | Alpha | 1.18 | 1.19 | -| `ServiceAccountIssuerDiscovery` | `true` | Beta | 1.20 | 1.20 | -| `ServiceAccountIssuerDiscovery` | `true` | GA | 1.21 | - | -| `ServiceAppProtocol` | `false` | Alpha | 1.18 | 1.18 | -| `ServiceAppProtocol` | `true` | Beta | 1.19 | 1.19 | -| `ServiceAppProtocol` | `true` | GA | 1.20 | - | | `ServiceLBNodePortControl` | `false` | Alpha | 1.20 | 1.21 | | `ServiceLBNodePortControl` | `true` | Beta | 1.22 | 1.23 | | `ServiceLBNodePortControl` | `true` | GA | 1.24 | - | | `ServiceLoadBalancerClass` | `false` | Alpha | 1.21 | 1.21 | | `ServiceLoadBalancerClass` | `true` | Beta | 1.22 | 1.23 | | `ServiceLoadBalancerClass` | `true` | GA | 1.24 | - | -| `ServiceLoadBalancerFinalizer` | `false` | Alpha | 1.15 | 1.15 | -| `ServiceLoadBalancerFinalizer` | `true` | Beta | 1.16 | 1.16 | -| `ServiceLoadBalancerFinalizer` | `true` | GA | 1.17 | - | -| `ServiceNodeExclusion` | `false` | Alpha | 1.8 | 1.18 | -| `ServiceNodeExclusion` | `true` | Beta | 1.19 | 1.20 | -| `ServiceNodeExclusion` | `true` | GA | 1.21 | - | -| `ServiceTopology` | `false` | Alpha | 1.17 | 1.19 | -| `ServiceTopology` | `false` | Deprecated | 1.20 | - | -| `SetHostnameAsFQDN` | `false` | Alpha | 1.19 | 1.19 | -| `SetHostnameAsFQDN` | `true` | Beta | 1.20 | 1.21 | -| `SetHostnameAsFQDN` | `true` | GA | 1.22 | - | -| `StartupProbe` | `false` | Alpha | 1.16 | 1.17 | -| `StartupProbe` | `true` | Beta | 1.18 | 1.19 | -| `StartupProbe` | `true` | GA | 1.20 | - | | `StatefulSetMinReadySeconds` | `false` | Alpha | 1.22 | 1.22 | | `StatefulSetMinReadySeconds` | `true` | Beta | 1.23 | 1.24 | | `StatefulSetMinReadySeconds` | `true` | GA | 1.25 | - | -| `StorageObjectInUseProtection` | `true` | Beta | 1.10 | 1.10 | -| `StorageObjectInUseProtection` | `true` | GA | 1.11 | - | -| `StreamingProxyRedirects` | `false` | Beta | 1.5 | 1.5 | -| `StreamingProxyRedirects` | `true` | Beta | 1.6 | 1.17 | -| `StreamingProxyRedirects` | `true` | Deprecated | 1.18 | 1.21 | -| `StreamingProxyRedirects` | `false` | Deprecated | 1.22 | - | -| `SupportIPVSProxyMode` | `false` | Alpha | 1.8 | 1.8 | -| `SupportIPVSProxyMode` | `false` | Beta | 1.9 | 1.9 | -| `SupportIPVSProxyMode` | `true` | Beta | 1.10 | 1.10 | -| `SupportIPVSProxyMode` | `true` | GA | 1.11 | - | -| `SupportNodePidsLimit` | `false` | Alpha | 1.14 | 1.14 | -| `SupportNodePidsLimit` | `true` | Beta | 1.15 | 1.19 | -| `SupportNodePidsLimit` | `true` | GA | 1.20 | - | -| `SupportPodPidsLimit` | `false` | Alpha | 1.10 | 1.13 | -| `SupportPodPidsLimit` | `true` | Beta | 1.14 | 1.19 | -| `SupportPodPidsLimit` | `true` | GA | 1.20 | - | | `SuspendJob` | `false` | Alpha | 1.21 | 1.21 | | `SuspendJob` | `true` | Beta | 1.22 | 1.23 | | `SuspendJob` | `true` | GA | 1.24 | - | -| `Sysctls` | `true` | Beta | 1.11 | 1.20 | -| `Sysctls` | `true` | GA | 1.21 | - | -| `TTLAfterFinished` | `false` | Alpha | 1.12 | 1.20 | -| `TTLAfterFinished` | `true` | Beta | 1.21 | 1.22 | -| `TTLAfterFinished` | `true` | GA | 1.23 | - | -| `TaintBasedEvictions` | `false` | Alpha | 1.6 | 1.12 | -| `TaintBasedEvictions` | `true` | Beta | 1.13 | 1.17 | -| `TaintBasedEvictions` | `true` | GA | 1.18 | - | -| `TaintNodesByCondition` | `false` | Alpha | 1.8 | 1.11 | -| `TaintNodesByCondition` | `true` | Beta | 1.12 | 1.16 | -| `TaintNodesByCondition` | `true` | GA | 1.17 | - | -| `TokenRequest` | `false` | Alpha | 1.10 | 1.11 | -| `TokenRequest` | `true` | Beta | 1.12 | 1.19 | -| `TokenRequest` | `true` | GA | 1.20 | - | -| `TokenRequestProjection` | `false` | Alpha | 1.11 | 1.11 | -| `TokenRequestProjection` | `true` | Beta | 1.12 | 1.19 | -| `TokenRequestProjection` | `true` | GA | 1.20 | - | -| `ValidateProxyRedirects` | `false` | Alpha | 1.12 | 1.13 | -| `ValidateProxyRedirects` | `true` | Beta | 1.14 | 1.21 | -| `ValidateProxyRedirects` | `true` | Deprecated | 1.22 | - | -| `VolumePVCDataSource` | `false` | Alpha | 1.15 | 1.15 | -| `VolumePVCDataSource` | `true` | Beta | 1.16 | 1.17 | -| `VolumePVCDataSource` | `true` | GA | 1.18 | - | -| `VolumeScheduling` | `false` | Alpha | 1.9 | 1.9 | -| `VolumeScheduling` | `true` | Beta | 1.10 | 1.12 | -| `VolumeScheduling` | `true` | GA | 1.13 | - | -| `VolumeSnapshotDataSource` | `false` | Alpha | 1.12 | 1.16 | -| `VolumeSnapshotDataSource` | `true` | Beta | 1.17 | 1.19 | -| `VolumeSnapshotDataSource` | `true` | GA | 1.20 | - | -| `VolumeSubpath` | `true` | GA | 1.10 | - | -| `VolumeSubpathEnvExpansion` | `false` | Alpha | 1.14 | 1.14 | -| `VolumeSubpathEnvExpansion` | `true` | Beta | 1.15 | 1.16 | -| `VolumeSubpathEnvExpansion` | `true` | GA | 1.17 | - | -| `WarningHeaders` | `true` | Beta | 1.19 | 1.21 | -| `WarningHeaders` | `true` | GA | 1.22 | - | | `WatchBookmark` | `false` | Alpha | 1.15 | 1.15 | | `WatchBookmark` | `true` | Beta | 1.16 | 1.16 | | `WatchBookmark` | `true` | GA | 1.17 | - | -| `WindowsEndpointSliceProxying` | `false` | Alpha | 1.19 | 1.20 | -| `WindowsEndpointSliceProxying` | `true` | Beta | 1.21 | 1.21 | -| `WindowsEndpointSliceProxying` | `true` | GA | 1.22| - | -| `WindowsGMSA` | `false` | Alpha | 1.14 | 1.15 | -| `WindowsGMSA` | `true` | Beta | 1.16 | 1.17 | -| `WindowsGMSA` | `true` | GA | 1.18 | - | -| `WindowsRunAsUserName` | `false` | Alpha | 1.16 | 1.16 | -| `WindowsRunAsUserName` | `true` | Beta | 1.17 | 1.17 | -| `WindowsRunAsUserName` | `true` | GA | 1.18 | - | {{< /table >}} - 处于 **Alpha** 、**Beta** 、 **GA** 阶段的特性。 **Alpha** 特性代表: @@ -745,14 +489,7 @@ Each feature gate is designed for enabling/disabling a specific feature: 参阅[针对 Kubernetes 系统组件的追踪](/zh-cn/docs/concepts/cluster-administration/system-traces/) 获取更多详细信息。 -- `Accelerators`:使用 Docker Engine 时启用 Nvidia GPU 支持。这一特性不再提供。 - 关于替代方案,请参阅[设备插件](/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)。 - `AdvancedAuditing`:启用[高级审计功能](/zh-cn/docs/tasks/debug/debug-cluster/audit/#advanced-audit)。 -- `AffinityInAnnotations`:启用 [Pod 亲和或反亲和](/zh-cn/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity)。 - `AllowExtTrafficLocalEndpoints`:启用服务用于将外部请求路由到节点本地终端。 -- `AllowInsecureBackendProxy`:允许用户在执行 Pod 日志访问请求时跳过 TLS 验证。 - `AnyVolumeDataSource`:允许使用任何自定义的资源来做作为 {{< glossary_tooltip text="PVC" term_id="persistent-volume-claim" >}} 中的 `DataSource`。 - `AppArmor`:在 Linux 节点上为 Pod 启用 AppArmor 机制的强制访问控制。 请参见 [AppArmor 教程](/zh-cn/docs/tutorials/security/apparmor/)获取详细信息。 -- `AttachVolumeLimit`:启用卷插件用于报告可连接到节点的卷数限制。有关更多详细信息, - 请参阅[动态卷限制](/zh-cn/docs/concepts/storage/storage-limits/#dynamic-volume-limits)。 -- `BalanceAttachedNodeVolumes`:在进行平衡资源分配的调度时,考虑节点上的卷数。 - 调度器在决策时会优先考虑 CPU、内存利用率和卷数更近的节点。 -- `BlockVolume`:在 Pod 中启用原始块设备的定义和使用。有关更多详细信息, - 请参见[原始块卷支持](/zh-cn/docs/concepts/storage/persistent-volumes/#raw-block-volume-support)。 -- `BoundServiceAccountTokenVolume`:迁移 ServiceAccount 卷以使用由 - ServiceAccountTokenVolumeProjection 组成的投射卷。集群管理员可以使用 - `serviceaccount_stale_tokens_total` 度量值来监控依赖于扩展令牌的负载。 - 如果没有这种类型的负载,你可以在启动 `kube-apiserver` 时添加 - `--service-account-extend-token-expiration=false` 参数关闭扩展令牌。 - 查看[绑定服务账号令牌](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md)获取更多详细信息。 - `ContainerCheckpoint`:启用 kubelet `checkpoint` API。 参阅 [Kubelet Checkpoint API](/zh-cn/docs/reference/node/kubelet-checkpoint-api/) 获取更多详细信息。 - `ControllerManagerLeaderMigration`:为 @@ -839,27 +543,10 @@ Each feature gate is designed for enabling/disabling a specific feature: 此特性门控永远不会被升级为稳定版本。 - `CPUManagerPolicyOptions`:允许微调 CPU 管理策略。 -- `CRIContainerLogRotation`:为 CRI 容器运行时启用容器日志轮换。日志文件的默认最大大小为 - 10MB,缺省情况下,一个容器允许的最大日志文件数为5。这些值可以在kubelet配置中配置。 - 更多细节请参见[日志架构](/zh-cn/docs/concepts/cluster-administration/logging/#logging-at-the-node-level)。 -- `CSIBlockVolume`:启用外部 CSI 卷驱动程序用于支持块存储。有关更多详细信息,请参见 - [`csi` 原始块卷支持](/zh-cn/docs/concepts/storage/volumes/#csi-raw-block-volume-support)。 -- `CSIDriverRegistry`:在 csi.storage.k8s.io 中启用与 CSIDriver API 对象有关的所有逻辑。 - `CSIInlineVolume`:为 Pod 启用 CSI 内联卷支持。 - `CSIMigration`:确保封装和转换逻辑能够将卷操作从内嵌插件路由到相应的预安装 CSI 插件。 - `CSIMigrationAWS`:确保填充和转换逻辑能够将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 如果节点禁用了此特性门控或者未安装和配置 EBS CSI 插件,支持回退到内嵌 EBS 插件来执行卷挂载操作。 不支持回退到这些插件来执行卷制备操作,因为需要安装并配置 CSI 插件。 -- `CSIMigrationAWSComplete`:停止在 kubelet 和卷控制器中注册 EBS 内嵌插件, - 并启用填充和转换逻辑将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 - 这需要启用 CSIMigration 和 CSIMigrationAWS 特性标志,并在集群中的所有节点上安装和配置 - EBS CSI 插件。该特性标志已被废弃,取而代之的是 `InTreePluginAWSUnregister`, - 后者会阻止注册 EBS 内嵌插件。 - `CSIMigrationAzureDisk`:确保填充和转换逻辑能够将卷操作从 AzureDisk 内嵌插件路由到 Azure 磁盘 CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureDisk CSI 插件的节点,支持回退到内嵌(in-tree)AzureDisk 插件来执行磁盘挂载操作。 不支持回退到内嵌插件来执行磁盘制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。 -- `CSIMigrationAzureDiskComplete`:停止在 kubelet 和卷控制器中注册 Azure 磁盘内嵌插件, - 并启用 shims 和转换逻辑以将卷操作从 Azure 磁盘内嵌插件路由到 AzureDisk CSI 插件。 - 这需要启用 CSIMigration 和 CSIMigrationAzureDisk 特性标志, - 并在集群中的所有节点上安装和配置 AzureDisk CSI 插件。该特性标志已被废弃, - 取而代之的是能防止注册内嵌 AzureDisk 插件的 `InTreePluginAzureDiskUnregister` 特性标志。 - `CSIMigrationAzureFile`:确保封装和转换逻辑能够将卷操作从 AzureFile 内嵌插件路由到 AzureFile CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureFile CSI 插件的节点,支持回退到内嵌(in-tree)AzureFile 插件来执行卷挂载操作。 不支持回退到内嵌插件来执行卷制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。 -- `CSIMigrationAzureFileComplete`:停止在 kubelet 和卷控制器中注册 Azure-File 内嵌插件, - 并启用 shims 和转换逻辑以将卷操作从 Azure-File 内嵌插件路由到 AzureFile CSI 插件。 - 这需要启用 CSIMigration 和 CSIMigrationAzureFile 特性标志, - 并在集群中的所有节点上安装和配置 AzureFile CSI 插件。该特性标志已被废弃, - 取而代之的是能防止注册内嵌 AzureDisk 插件的 `InTreePluginAzureFileUnregister` 特性标志。 - `CSIMigrationGCE`:启用填充和转换逻辑,将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。对于禁用了此特性的节点或者没有安装并配置 PD CSI 插件的节点, 支持回退到内嵌(in-tree)GCE 插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。 -- `CSIMigrationGCEComplete`:停止在 kubelet 和卷控制器中注册 GCE-PD 内嵌插件, - 并启用 shims 和转换逻辑以将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。 - 这需要启用 CSIMigration 和 CSIMigrationGCE 特性标志,并在集群中的所有节点上安装和配置 - PD CSI 插件。该特性标志已被废弃,取而代之的是能防止注册内嵌 GCE PD 插件的 - `InTreePluginGCEUnregister` 特性标志。 - `CSIMigrationOpenStack`:确保填充和转换逻辑能够将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。对于禁用了此特性的节点或者没有安装并配置 Cinder CSI 插件的节点, 支持回退到内嵌(in-tree)Cinder 插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此磁特性需要启用 CSIMigration 特性标志。 -- `CSIMigrationOpenStackComplete`:停止在 kubelet 和卷控制器中注册 Cinder 内嵌插件, - 并启用填充和转换逻辑将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 - 这需要启用 CSIMigration 和 CSIMigrationOpenStack 特性标志,并在集群中的所有节点上安装和配置 - Cinder CSI 插件。该特性标志已被弃用,取而代之的是能防止注册内嵌 OpenStack Cinder 插件的 - `InTreePluginOpenStackUnregister` 特性标志。 - `CSIMigrationvSphere`:允许封装和转换逻辑将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。如果节点禁用了此特性门控或者未安装和配置 vSphere CSI 插件, 则支持回退到 vSphere 内嵌插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 这需要启用 CSIMigration 特性标志。 -- `CSIMigrationvSphereComplete`:停止在 kubelet 和卷控制器中注册 vSphere 内嵌插件, - 并启用填充和转换逻辑以将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。 - 这需要启用 CSIMigration 和 CSIMigrationvSphere 特性标志,并在集群中的所有节点上安装和配置 - vSphere CSI 插件。该特性标志已被废弃,取而代之的是能防止注册内嵌 vSphere 插件的 - `InTreePluginvSphereUnregister` 特性标志。 -- `CSINodeInfo`:在 `csi.storage.k8s.io` 中启用与 CSINodeInfo API 对象有关的所有逻辑。 - `CSINodeExpandSecret`:允许在 `NodeExpandVolume` CSI 操作期间将 Secret 身份验证数据传递到 CSI 驱动以供后者使用。 -- `CSIPersistentVolume`:启用发现和挂载通过 - [CSI(容器存储接口)](https://git.k8s.io/design-proposals-archive/storage/container-storage-interface.md) - 兼容卷插件配置的卷。 -- `CSIServiceAccountToken`:允许 CSI 驱动接收挂载卷目标 Pods 的服务账户令牌。 - 参阅[令牌请求(Token Requests)](https://kubernetes-csi.github.io/docs/token-requests.html)。 - `CSIStorageCapacity`:使 CSI 驱动程序可以发布存储容量信息,并使 Kubernetes 调度程序在调度 Pod 时使用该信息。参见[存储容量](/zh-cn/docs/concepts/storage/storage-capacity/)。 详情请参见 [`csi` 卷类型](/zh-cn/docs/concepts/storage/volumes/#csi)。 -- `CSIVolumeFSGroupPolicy`:允许 CSIDrivers 使用 `fsGroupPolicy` 字段。 - 该字段能控制由 CSIDriver 创建的卷在挂载这些卷时是否支持卷所有权和权限修改。 - `CSIVolumeHealth`:启用对节点上的 CSI volume 运行状况监控的支持 - `CSRDuration`:允许客户端来通过请求 Kubernetes CSR API 签署的证书的持续时间。 -- `ConfigurableFSGroupPolicy`:在 Pod 中挂载卷时,允许用户为 fsGroup - 配置卷访问权限和属主变更策略。请参见 - [为 Pod 配置卷访问权限和属主变更策略](/zh-cn/docs/tasks/configure-pod-container/security-context/#configure-volume-permission-and-ownership-change-policy-for-pods)。 - `ContextualLogging`:当你启用这个特性门控,支持日志上下文记录的 Kubernetes 组件会为日志输出添加额外的详细内容。 - `ControllerManagerLeaderMigration`:为 `kube-controller-manager` 和 `cloud-controller-manager` 开启领导者迁移功能。 -- `CronJobControllerV2`:使用 {{< glossary_tooltip text="CronJob" term_id="cronjob" >}} - 控制器的一种替代实现。否则,系统会选择同一控制器的 v1 版本。 - `CronJobTimeZone`:允许在 [CronJobs](/zh-cn/docs/concepts/workloads/controllers/cron-jobs/) 中使用 `timeZone` 可选字段。 - `CustomCPUCFSQuotaPeriod`:使节点能够更改 [kubelet 配置](/zh-cn/docs/tasks/administer-cluster/kubelet-config-file/)中的 `cpuCFSQuotaPeriod`。 - `CustomResourceValidationExpressions`:启用 CRD 中的表达式语言合法性检查, 基于 `x-kubernetes-validations` 扩展中所书写的合法性检查规则来验证定制资源。 -- `CustomPodDNS`:允许使用 Pod 的 `dnsConfig` 属性自定义其 DNS 设置。 - 更多详细信息,请参见 - [Pod 的 DNS 配置](/zh-cn/docs/concepts/services-networking/dns-pod-service/#pods-dns-config)。 - -- `CustomResourceDefaulting`:为 CRD 启用在其 OpenAPI v3 验证模式中提供默认值的支持。 -- `CustomResourcePublishOpenAPI`:启用 CRD OpenAPI 规范的发布。 -- `CustomResourceSubresources`:对于用 - [CustomResourceDefinition](/zh-cn/docs/concepts/extend-kubernetes/api-extension/custom-resources/) - 创建的资源启用其 `/status` 和 `/scale` 子资源。 -- `CustomResourceValidation`:对于用 - [CustomResourceDefinition](/zh-cn/docs/concepts/extend-kubernetes/api-extension/custom-resources/) - 创建的资源启用基于模式的验证。 -- `CustomResourceWebhookConversion`:对于用 - [CustomResourceDefinition](/zh-cn/docs/concepts/extend-kubernetes/api-extension/custom-resources/) - 创建的资源启用基于 Webhook 的转换。 - `DaemonSetUpdateSurge`:使 DaemonSet 工作负载在每个节点的更新期间保持可用性。 参阅[对 DaemonSet 执行滚动更新](/zh-cn/docs/tasks/manage-daemon/update-daemon-set/)。 - `DisableCloudProviders`:禁用 `kube-apiserver`,`kube-controller-manager` 和 `kubelet` 组件的 `--cloud-provider` 标志相关的所有功能。 @@ -1180,60 +737,28 @@ Each feature gate is designed for enabling/disabling a specific feature: 中使用巨页信息。 - `DryRun`:启用在服务器端对请求进行[试运行(Dry Run)](/zh-cn/docs/reference/using-api/api-concepts/#dry-run), 以便测试验证、合并和修改,同时避免提交更改。 -- `DynamicAuditing`:在 v1.19 版本前用于启用动态审计。 - `DynamicKubeletConfig`:启用 kubelet 的动态配置。 除偏差策略场景外,不再支持该功能。该特性门控在 kubelet 1.24 版本中已被移除。 请参阅[重新配置 kubelet](/zh-cn/docs/tasks/administer-cluster/reconfigure-kubelet/)。 -- `DynamicProvisioningScheduling`:扩展默认调度器以了解卷拓扑并处理 PV 配置。 - 此特性已在 v1.12 中完全被 `VolumeScheduling` 特性取代。 -- `DynamicVolumeProvisioning`:启用持久化卷到 Pod - 的[动态预配置](/zh-cn/docs/concepts/storage/dynamic-provisioning/)。 -- `EfficientWatchResumption`:允许从存储发起的 bookmark(进度通知)事件被通知到用户。 - 此特性仅适用于 watch 操作。 -- `EnableAggregatedDiscoveryTimeout`:对聚集的发现调用启用五秒钟超时设置。 - -- `EnableEquivalenceClassCache`:调度 Pod 时,使 scheduler 缓存节点的等效项。 -- `EndpointSlice`:启用 EndpointSlice 以实现可扩缩性和可扩展性更好的网络端点。 - 参阅[启用 EndpointSlice](/zh-cn/docs/concepts/services-networking/endpoint-slices/)。 -- `EndpointSliceNodeName`:允许使用 EndpointSlice 的 `nodeName` 字段。 -- `EndpointSliceProxying`:启用此特性门控时,Linux 上运行的 kube-proxy 会使用 - EndpointSlices 而不是 Endpoints 作为其主要数据源,从而使得可扩缩性和性能提升成为可能。 - 参阅[启用 EndpointSlice](/zh-cn/docs/concepts/services-networking/endpoint-slices/)。 - `EndpointSliceTerminatingCondition`:允许使用 EndpointSlice 的 `terminating` 和 `serving` 状况字段。 +- `EfficientWatchResumption`:允许将存储发起的书签(进度通知)事件传递给用户。 + 这仅适用于监视操作。 - `ExpandCSIVolumes`:启用扩展 CSI 卷。 - `ExpandedDNSConfig`:在 kubelet 和 kube-apiserver 上启用后, @@ -1271,22 +791,12 @@ Each feature gate is designed for enabling/disabling a specific feature: 请查阅[调整使用中的 PersistentVolumeClaim 的大小](/zh-cn/docs/concepts/storage/persistent-volumes/#resizing-an-in-use-persistentvolumeclaim)。 - `ExpandPersistentVolumes`:允许扩充持久卷。 请查阅[扩展持久卷申领](/zh-cn/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims)。 -- `ExperimentalCriticalPodAnnotation`:启用将特定 Pod 注解为 **critical** 的方式, - 用于[确保其被调度](/zh-cn/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/)。 - 从 v1.13 开始已弃用此特性,转而使用 Pod 优先级和抢占功能。 - `HPAContainerMetrics`:允许 `HorizontalPodAutoscaler` 基于目标 Pods 中各容器的度量值来执行扩缩操作。 - `HPAScaleToZero`:使用自定义指标或外部指标时,可将 `HorizontalPodAutoscaler` 资源的 `minReplicas` 设置为 0。 -- `HugePages`: - 启用分配和使用预分配的[巨页资源](/zh-cn/docs/tasks/manage-hugepages/scheduling-hugepages/)。 -- `HugePageStorageMediumSize`: - 启用支持多种大小的预分配[巨页资源](/zh-cn/docs/tasks/manage-hugepages/scheduling-hugepages/)。 -- `HyperVContainer`:为 Windows 容器启用 - [Hyper-V 隔离](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container)。 - -- `IPv6DualStack`:启用[双协议栈](/zh-cn/docs/concepts/services-networking/dual-stack/) - 以支持 IPv6。 - `IPTablesOwnershipCleanup`:这使得 kubelet 不再创建传统的 IPTables 规则。 - `JobTrackingWithFinalizers`:启用跟踪 [Job](/zh-cn/docs/concepts/workloads/controllers/job) 完成情况,而不是永远从集群剩余 Pod 来获取信息判断完成情况。Job 控制器使用 Pod finalizers 和 Job 状态中的一个字段来跟踪已完成的 Pod 以计算完成。 -- `KubeletConfigFile`:启用从使用配置文件指定的文件中加载 kubelet 配置。 - 有关更多详细信息, - 请参见[通过配置文件设置 kubelet 参数](/zh-cn/docs/tasks/administer-cluster/kubelet-config-file/)。 - `KubeletCredentialProviders`:允许使用 kubelet exec 凭据提供程序来设置镜像拉取凭据。 - `KubeletInUserNamespace`:支持在{{}}里运行 kubelet。 请参见[使用非 Root 用户来运行 Kubernetes 节点组件](/zh-cn/docs/tasks/administer-cluster/kubelet-in-userns/)。 -- `KubeletPluginsWatcher`:启用基于探针的插件监视应用程序,使 kubelet 能够发现类似 - [CSI 卷驱动程序](/zh-cn/docs/concepts/storage/volumes/#csi)这类插件。 - `LogarithmicScaleDown`:启用 Pod 的半随机(semi-random)选择,控制器将根据 Pod 时间戳的对数桶按比例缩小去驱逐 Pod。 @@ -1554,38 +1016,21 @@ Each feature gate is designed for enabling/disabling a specific feature: - `MinDomainsInPodTopologySpread`:在 [Pod 拓扑分布约束](/zh-cn/docs/concepts/scheduling-eviction/topology-spread-constraints/)中启用 `minDomains`。 - `MixedProtocolLBService`:允许在同一 `LoadBalancer` 类型的 Service 实例中使用不同的协议。 -- `MountContainers`:允许使用主机上的工具容器作为卷挂载程序。 -- `MountPropagation`:启用将一个容器安装的共享卷共享到其他容器或 Pod。 - 更多详细信息,请参见[挂载传播](/zh-cn/docs/concepts/storage/volumes/#mount-propagation)。 - `MultiCIDRRangeAllocator`:启用 MultiCIDR 范围分配器。 -- `NamespaceDefaultLabelName`:配置 API 服务器以在所有名字空间上设置一个不可变的 - {{< glossary_tooltip text="标签" term_id="label" >}} `kubernetes.io/metadata.name`, - 也包括名字空间。 - `NetworkPolicyEndPort`:在 NetworkPolicy 对象中启用 `endPort` 以允许选择端口范围而不是单个端口。 - `NetworkPolicyStatus`:为 NetworkPolicy 对象启用 `status` 子资源。 - `NodeInclusionPolicyInPodTopologySpread`:在计算 Pod 拓扑分布偏差时启用在 [Pod 拓扑分布约束](/zh-cn/docs/concepts/scheduling-eviction/topology-spread-constraints/)中使用 `nodeAffinityPolicy` and `nodeTaintsPolicy`。 -- `NodeDisruptionExclusion`:启用节点标签 `node.kubernetes.io/exclude-disruption`, - 以防止在可用区发生故障期间驱逐节点。 -- `NodeLease`:启用新的 Lease(租期)API 以报告节点心跳,可用作节点运行状况信号。 - `PodDeletionCost`:启用 [Pod 删除成本](/zh-cn/docs/concepts/workloads/controllers/replicaset/#pod-deletion-cost)功能。 该功能使用户可以影响 ReplicaSet 的降序顺序。 -- `PersistentLocalVolumes`:允许在 Pod 中使用 `local(本地)` 卷类型。 - 如果请求 `local` 卷,则必须指定 Pod 亲和性属性。 - `PodAffinityNamespaceSelector`:启用 [Pod 亲和性名字空间选择算符](/zh-cn/docs/concepts/scheduling-eviction/assign-pod-node/#namespace-selector)和 [CrossNamespacePodAffinity](/zh-cn/docs/concepts/policy/resource-quotas/#cross-namespace-pod-affinity-quota) 资源配额功能。 - `PodAndContainerStatsFromCRI`:配置 kubelet 从 CRI 容器运行时中而不是从 cAdvisor 中采集容器和 Pod 统计信息。 -- `PodDisruptionBudget`:启用 [PodDisruptionBudget](/zh-cn/docs/tasks/run-application/configure-pdb/) 功能特性。 - `PodDisruptionConditions`:启用支持追加一个专用的 Pod 状况,以表示 Pod 由于某个干扰正在被删除。 - `PodHasNetworkCondition`:使得 kubelet 能够对 Pod 标记 [PodHasNetwork](/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/#pod-has-network) 状况。 - `PodOverhead`:启用 [PodOverhead](/zh-cn/docs/concepts/scheduling-eviction/pod-overhead/) 特性以考虑 Pod 开销。 -- `PodPriority`:启用根据[优先级](/zh-cn/docs/concepts/scheduling-eviction/pod-priority-preemption/) - 的 Pod 调度和抢占。 -- `PodReadinessGates`:启用 `podReadinessGate` 字段的设置以扩展 Pod 准备状态评估。 - 有关更多详细信息,请参见 - [Pod 就绪状态判别](/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate)。 - `PodSecurity`: 开启 `PodSecurity` 准入控制插件。 -- `PodShareProcessNamespace`:在 Pod 中启用 `shareProcessNamespace` 的设置, - 以便在 Pod 中运行的容器之间共享同一进程名字空间。更多详细信息,请参见 - [在 Pod 中的容器间共享同一进程名字空间](/zh-cn/docs/tasks/configure-pod-container/share-process-namespace/)。 - `PreferNominatedNode`: 这个标志告诉调度器在循环遍历集群中的所有其他节点之前, 是否首先检查指定的节点。 - `RecoverVolumeExpansionFailure`:允许用户编辑其 PVC 来缩小其尺寸, 从而从之前卷扩容发生的失败中恢复。更多细节可参见 @@ -1716,79 +1134,33 @@ Each feature gate is designed for enabling/disabling a specific feature: - `RemoveSelfLink`:将所有对象和集合的 `.metadata.selfLink` 字段设置为空(空字符串)。 该字段自 Kubernetes v1.16 版本以来已被弃用。 启用此功能后,`.metadata.selfLink` 字段仍然是 Kubernetes API 的一部分,但始终未设置。 -- `RequestManagement`:允许在每个 API 服务器上通过优先级和公平性管理请求并发性。 - 自 1.17 以来已被 `APIPriorityAndFairness` 替代。 - -- `ResourceLimitsPriorityFunction`:启用某调度器优先级函数, - 该函数将最低得分 1 指派给至少满足输入 Pod 的 CPU 和内存限制之一的节点, - 目的是打破得分相同的节点之间的关联。 -- `ResourceQuotaScopeSelectors`:启用资源配额范围选择算符。 - `RetroactiveDefaultStorageClass`:允许以追溯方式分配 StorageClass 给未绑定的 PVC。 -- `RootCAConfigMap`:配置 `kube-controller-manager`,使之发布一个名为 `kube-root-ca.crt` - 的 {{< glossary_tooltip text="ConfigMap" term_id="configmap" >}}, - 到所有名字空间中。该 ConfigMap 包含用来验证与 kube-apiserver 之间连接的 CA 证书包。 - 参阅[绑定服务账户令牌](https://github.com/kubernetes/enhancements/blob/master/keps/sig-auth/1205-bound-service-account-tokens/README.md) - 以了解更多细节。 -- `RotateKubeletClientCertificate`:在 kubelet 上启用客户端 TLS 证书的轮换。 - 更多详细信息,请参见 - [kubelet 配置](/zh-cn/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#kubelet-configuration)。 - `RotateKubeletServerCertificate`:在 kubelet 上启用服务器 TLS 证书的轮换。 更多详细信息,请参见 [kubelet 配置](/zh-cn/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#kubelet-configuration)。 -- `RunAsGroup`:启用对容器初始化过程中设置的主要组 ID 的控制。 -- `RuntimeClass`:启用 [RuntimeClass](/zh-cn/docs/concepts/containers/runtime-class/) - 特性用于选择容器运行时配置。 -- `SCTPSupport`:在 Pod、Service、Endpoints、NetworkPolicy 定义中允许将 'SCTP' - 用作 `protocol` 值。 - `SELinuxMountReadWriteOncePod`:通过使用正确的 SELinux 标签挂载卷而不是以递归方式更改这些卷上的每个文件来加速容器启动。最初的实现侧重 ReadWriteOncePod 卷。 -- `ScheduleDaemonSetPods`:启用 DaemonSet Pod 由默认调度程序而不是 - DaemonSet 控制器进行调度。 - `SeccompDefault`: 允许将所有工作负载的默认 seccomp 配置文件为 `RuntimeDefault`。 seccomp 配置在 Pod 或者容器的 `securityContext` 字段中指定。 -- `SelectorIndex`: 允许使用 API 服务器的 watch 缓存中基于标签和字段的索引来加速 list 操作。 - `SELinuxMountReadWriteOncePod`:允许 kubelet 直接用合适的 SELinux 标签为 Pod 挂载卷, 而不是将 SELinux 标签以递归方式应用到卷上的每个文件。 @@ -1809,24 +1176,12 @@ Each feature gate is designed for enabling/disabling a specific feature: - `ServerSideFieldValidation`:启用服务器端字段验证。 这意味着验证资源模式在 API 服务器端而不是客户端执行 (例如,`kubectl create` 或 `kubectl apply` 命令行)。 -- `ServiceAccountIssuerDiscovery`:在 API 服务器中为服务帐户颁发者启用 OIDC 发现端点 - (颁发者和 JWKS URL)。详情参见 - [为 Pod 配置服务账户](/zh-cn/docs/tasks/configure-pod-container/configure-service-account/#service-account-issuer-discovery)。 -- `ServiceAppProtocol`:为 Service 和 Endpoints 启用 `appProtocol` 字段。 - `ServiceInternalTrafficPolicy`:为服务启用 `internalTrafficPolicy` 字段。 - `ServiceLBNodePortControl`:为服务启用 `allocateLoadBalancerNodePorts` 字段。 - `ServiceLoadBalancerClass`: 为服务启用 `loadBalancerClass` 字段。 有关更多信息,请参见[指定负载均衡器实现类](/zh-cn/docs/concepts/services-networking/service/#load-balancer-class)。 -- `ServiceLoadBalancerFinalizer`:为服务负载均衡启用终结器(finalizers)保护。 -- `ServiceNodeExclusion`:启用从云提供商创建的负载均衡中排除节点。 - 如果节点标记有 `node.kubernetes.io/exclude-from-external-load-balancers` 标签,则可以排除该节点。 -- `ServiceTopology`:启用服务拓扑可以让一个服务基于集群的节点拓扑进行流量路由。 - 有关更多详细信息,请参见[服务拓扑](/zh-cn/docs/concepts/services-networking/service-topology/)。 - `ServiceIPStaticSubrange`:启用服务 ClusterIP 分配策略,从而细分 ClusterIP 范围。 动态分配的 ClusterIP 地址将优先从较高范围分配,以低冲突风险允许用户从较低范围分配静态 ClusterIP。 更多详细信息请参阅[避免冲突](/zh-cn/docs/concepts/services-networking/service/#avoiding-collisions) -- `SetHostnameAsFQDN`:启用将全限定域名(FQDN)设置为 Pod 主机名的功能。 - 请参见[为 Pod 设置 `setHostnameAsFQDN` 字段](/zh-cn/docs/concepts/services-networking/dns-pod-service/#pod-sethostnameasfqdn-field)。 - `SizeMemoryBackedVolumes`:允许 kubelet 检查基于内存制备的卷的尺寸约束(目前主要针对 `emptyDir` 卷)。 -- `StartupProbe`:在 kubelet - 中启用[启动探针](/zh-cn/docs/concepts/workloads/pods/pod-lifecycle/#when-should-you-use-a-startup-probe)。 - `StatefulSetMinReadySeconds`: 允许 StatefulSet 控制器采纳 `minReadySeconds` 设置。 -- `StorageObjectInUseProtection`:如果仍在使用 PersistentVolume 或 - PersistentVolumeClaim 对象,则将其删除操作推迟。 - `StorageVersionAPI`: 启用[存储版本 API](/docs/reference/generated/kubernetes-api/{{< param "version" >}}/#storageversion-v1alpha1-internal-apiserver-k8s-io)。 - `StorageVersionHash`:允许 API 服务器在版本发现中公开存储版本的哈希值。 -- `StreamingProxyRedirects`:指示 API 服务器拦截(并跟踪)后端(kubelet)的重定向以处理流请求。 - 流请求的例子包括 `exec`、`attach` 和 `port-forward` 请求。 - -- `SupportIPVSProxyMode`:启用使用 IPVS 提供集群内服务负载平衡。更多详细信息, - 请参见[服务代理](/zh-cn/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies)。 -- `SupportNodePidsLimit`:启用支持,限制节点上的 PID 用量。 - `--system-reserved` 和 `--kube-reserved` 中的参数 `pid=<数值>` - 可以分别用来设定为整个系统所预留的进程 ID 个数和为 Kubernetes 系统守护进程预留的进程 ID 个数。 -- `SupportPodPidsLimit`:启用支持限制 Pod 中的进程 PID。 - -- `SuspendJob`: 启用支持以暂停和恢复作业。 更多详细信息,请参见 - [Job 文档](/zh-cn/docs/concepts/workloads/controllers/job/)。 -- `Sysctls`:允许为每个 Pod 设置的名字空间内核参数(sysctls)。 - 更多详细信息,请参见 [sysctls](/zh-cn/docs/tasks/administer-cluster/sysctl-cluster/)。 -- `TTLAfterFinished`:资源完成执行后,允许 - [TTL 控制器](/zh-cn/docs/concepts/workloads/controllers/ttlafterfinished/)清理资源。 - -- `TaintBasedEvictions`:根据节点上的污点和 Pod 上的容忍度启用从节点驱逐 Pod 的特性。 - 更多详细信息可参见[污点和容忍度](/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/)。 -- `TaintNodesByCondition`: - 根据[节点状况](/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/)启用自动为节点标记污点。 -- `TokenRequest`:在服务帐户资源上启用 `TokenRequest` 端点。 -- `TokenRequestProjection`:启用通过 - [`projected` 卷](/zh-cn/docs/concepts/storage/volumes/#projected)将服务帐户令牌注入到 Pod 中的特性。 +- `SuspendJob`:启用对追加和恢复 Job 的支持。更多细节请参阅 + [Job 文档](/docs/concepts/workloads/controllers/job/)。 - `TopologyAwareHints`: 在 EndpointSlices 中启用基于拓扑提示的拓扑感知路由。 更多详细信息可参见[拓扑感知提示](/zh-cn/docs/concepts/services-networking/topology-aware-hints/)。 - `TopologyManager`:启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 详见[控制节点上的拓扑管理策略](/zh-cn/docs/tasks/administer-cluster/topology-manager/)。 - `UserNamespacesStatelessPodsSupport`:为无状态 Pod 启用用户名字空间的支持。 -- `ValidateProxyRedirects`: 这个标志控制 API 服务器是否应该验证只跟随到相同的主机的重定向。 - 仅在启用 `StreamingProxyRedirects` 标志时被使用。 - `VolumeCapacityPriority`: 基于可用 PV 容量的拓扑,启用对不同节点的优先级支持。 -- `VolumePVCDataSource`:启用对将现有 PVC 指定数据源的支持。 -- `VolumeScheduling`:启用卷拓扑感知调度,并使 PersistentVolumeClaim(PVC) - 绑定能够了解调度决策;当与 PersistentLocalVolumes 特性门控一起使用时, - 还允许使用 [`local`](/zh-cn/docs/concepts/storage/volumes/#local) 卷类型。 -- `VolumeSnapshotDataSource`:启用卷快照数据源支持。 -- `VolumeSubpath`: 允许在容器中挂载卷的子路径。 - -- `VolumeSubpathEnvExpansion`:启用 `subPathExpr` 字段用于在 `subPath` 中展开环境变量。 -- `WarningHeaders`:允许在 API 响应中发送警告头部。 - `WatchBookmark`:启用对 watch 操作中 bookmark 事件的支持。 - `WinDSR`:允许 kube-proxy 为 Windows 创建 DSR 负载均衡。 - `WinOverlay`:允许在 Windows 的覆盖网络模式下运行 kube-proxy。 -- `WindowsEndpointSliceProxying`:当启用时,运行在 Windows 上的 kube-proxy - 将使用 EndpointSlices 而不是 Endpoints 作为主要数据源,从而实现可伸缩性和并改进性能。 - 详情请参见[启用端点切片](/zh-cn/docs/concepts/services-networking/endpoint-slices/)。 -- `WindowsGMSA`:允许将 GMSA 凭据规范从 Pod 传递到容器运行时。 - `WindowsHostProcessContainers`:启用对 Windows HostProcess 容器的支持。 -- `WindowsRunAsUserName`:提供使用非默认用户在 Windows 容器中运行应用程序的支持。 - 详情请参见[配置 RunAsUserName](/zh-cn/docs/tasks/configure-pod-container/configure-runasusername)。 ## {{% heading "whatsnext" %}} @@ -2014,7 +1260,7 @@ Each feature gate is designed for enabling/disabling a specific feature: See [API Versioning](/docs/reference/using-api/#api-versioning) for more details on the command line flags. --> * Kubernetes 的[弃用策略](/zh-cn/docs/reference/using-api/deprecation-policy/)介绍了项目针对已移除特性和组件的处理方法。 -* 从 Kubernetes 1.24 开始,默认不启用新的 beta API。 +* 从 Kubernetes 1.24 开始,默认不启用新的 Beta API。 启用 Beta 功能时,还需要启用所有关联的 API 资源。 例如:要启用一个特定资源,如 `storage.k8s.io/v1beta1/csistoragecapacities`, 请设置 `--runtime-config=storage.k8s.io/v1beta1/csistoragecapacities`。