diff --git a/content/en/docs/reference/command-line-tools-reference/feature-gates.md b/content/en/docs/reference/command-line-tools-reference/feature-gates.md index daf525c781..582ed9da94 100644 --- a/content/en/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/en/docs/reference/command-line-tools-reference/feature-gates.md @@ -546,10 +546,9 @@ Each feature gate is designed for enabling/disabling a specific feature: [CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/). - `CustomResourceWebhookConversion`: Enable webhook-based conversion on resources created from [CustomResourceDefinition](/docs/concepts/extend-kubernetes/api-extension/custom-resources/). - troubleshoot a running Pod. - `DefaultPodTopologySpread`: Enables the use of `PodTopologySpread` scheduling plugin to do [default spreading](/docs/concepts/workloads/pods/pod-topology-spread-constraints/#internal-default-constraints). -- `DevicePlugins`: Enable the [device-plugins](/docs/concepts/cluster-administration/device-plugins/) +- `DevicePlugins`: Enable the [device-plugins](/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) based resource provisioning on nodes. - `DisableAcceleratorUsageMetrics`: [Disable accelerator metrics collected by the kubelet](/docs/concepts/cluster-administration/system-metrics/#disable-accelerator-metrics). @@ -728,8 +727,6 @@ Each feature gate is designed for enabling/disabling a specific feature: topology of the cluster. See [ServiceTopology](/docs/concepts/services-networking/service-topology/) for more details. -- `SizeMemoryBackedVolumes`: Enables kubelet support to size memory backed volumes. - See [volumes](/docs/concepts/storage/volumes) for more details. - `SetHostnameAsFQDN`: Enable the ability of setting Fully Qualified Domain Name(FQDN) as the hostname of a pod. See [Pod's `setHostnameAsFQDN` field](/docs/concepts/services-networking/dns-pod-service/#pod-sethostnameasfqdn-field). diff --git a/content/zh/docs/reference/command-line-tools-reference/feature-gates.md b/content/zh/docs/reference/command-line-tools-reference/feature-gates.md index 4a302d4793..a8b2c35f9d 100644 --- a/content/zh/docs/reference/command-line-tools-reference/feature-gates.md +++ b/content/zh/docs/reference/command-line-tools-reference/feature-gates.md @@ -1,15 +1,13 @@ --- -weight: 10 title: 特性门控 +weight: 10 content_type: concept --- @@ -19,28 +17,23 @@ can specify on different Kubernetes components. See [feature stages](#feature-stages) for an explanation of the stages for a feature. --> - 本页详述了管理员可以在不同的 Kubernetes 组件上指定的各种特性门控。 关于特性各个阶段的说明,请参见[特性阶段](#feature-stages)。 - - -## 概述 - - +## 概述 -特性门控是描述 Kubernetes 特性的一组键值对。您可以在 Kubernetes 的每一个组件中使用 `--feature-gates` flag 来启用或禁用这些特性。 +特性门控是描述 Kubernetes 特性的一组键值对。你可以在 Kubernetes 的各个组件中使用 +`--feature-gates` flag 来启用或禁用这些特性。 - 每个 Kubernetes 组件都支持启用或禁用与该组件相关的一组特性门控。 使用 `-h` 参数来查看所有组件支持的完整特性门控。 -要为诸如 kubelet 之类的组件设置特性门控,请使用 `--feature-gates` 参数,并向其传递一组特性: +要为诸如 kubelet 之类的组件设置特性门控,请使用 `--feature-gates` 参数,并向其 +传递一个特性设置键值对列表: ```shell --feature-gates="...,DynamicKubeletConfig=true" @@ -61,7 +54,6 @@ To set feature gates for a component, such as kubelet, use the `--feature-gates` The following tables are a summary of the feature gates that you can set on different Kubernetes components. --> - 下表总结了在不同的 Kubernetes 组件上可以设置的特性门控。 - -- 引入特性或更改其发布阶段后,"Since" 列将包含 Kubernetes 版本。 -- "Until" 列(如果不为空)包含最后一个 Kubernetes 版本,您仍可以在其中使用特性门控。 -- 如果某个特性处于 Alpha 或 Beta 状态,您可以在 [Alpha 和 Beta 特性门控表](#feature-gates-for-alpha-or-beta-features)中找到该特性。 -- 如果某个特性处于稳定状态,您可以在[毕业和废弃特性门控表](#feature-gates-for-graduated-or-deprecated-features).中找到该特性的所有阶段。 -- [毕业和废弃特性门控表](#feature-gates-for-graduated-or-deprecated-features) 还列出了废弃的和已被移除的特性。 +- 引入特性或更改其发布阶段后,"开始(Since)" 列将包含 Kubernetes 版本。 +- "结束(Until)" 列(如果不为空)包含最后一个 Kubernetes 版本,你仍可以在其中使用特性门控。 +- 如果某个特性处于 Alpha 或 Beta 状态,你可以在 + [Alpha 和 Beta 特性门控表](#feature-gates-for-alpha-or-beta-features)中找到该特性。 +- 如果某个特性处于稳定状态,你可以在 + [已毕业和废弃特性门控表](#feature-gates-for-graduated-or-deprecated-features) + 中找到该特性的所有阶段。 +- [已毕业和废弃特性门控表](#feature-gates-for-graduated-or-deprecated-features) + 还列出了废弃的和已被移除的特性。 - -### Alpha 和 Beta 的特性门控 {#feature-gates-for-alpha-or-beta-features} +### Alpha 和 Beta 状态的特性门控 {#feature-gates-for-alpha-or-beta-features} {{< table caption="处于 Alpha 或 Beta 状态的特性门控" >}} -| 特性 | 默认值 | 状态 | 开始(Since) | 结束(Until) | -|---------|---------|-------|-------|-------| -| `AnyVolumeDataSource` | `false` | Alpha | 1.18 | | +| 特性 | 默认值 | 状态 | 开始(Since) | 结束(Until) | +|---------|---------|-------|---------------|---------------| | `APIListChunking` | `false` | Alpha | 1.8 | 1.8 | | `APIListChunking` | `true` | Beta | 1.9 | | -| `APIPriorityAndFairness` | `false` | Alpha | 1.17 | | -| `APIResponseCompression` | `false` | Alpha | 1.7 | | +| `APIPriorityAndFairness` | `false` | Alpha | 1.17 | 1.19 | +| `APIPriorityAndFairness` | `true` | Beta | 1.20 | | +| `APIResponseCompression` | `false` | Alpha | 1.7 | 1.15 | +| `APIResponseCompression` | `false` | Beta | 1.16 | | +| `APIServerIdentity` | `false` | Alpha | 1.20 | | +| `AllowInsecureBackendProxy` | `true` | Beta | 1.17 | | +| `AnyVolumeDataSource` | `false` | Alpha | 1.18 | | | `AppArmor` | `true` | Beta | 1.4 | | | `BalanceAttachedNodeVolumes` | `false` | Alpha | 1.11 | | | `BoundServiceAccountTokenVolume` | `false` | Alpha | 1.13 | | @@ -126,27 +124,36 @@ different Kubernetes components. | `CSIMigrationGCE` | `false` | Alpha | 1.14 | 1.16 | | `CSIMigrationGCE` | `false` | Beta | 1.17 | | | `CSIMigrationGCEComplete` | `false` | Alpha | 1.17 | | -| `CSIMigrationOpenStack` | `false` | Alpha | 1.14 | | +| `CSIMigrationOpenStack` | `false` | Alpha | 1.14 | 1.17 | +| `CSIMigrationOpenStack` | `true` | Beta | 1.18 | | | `CSIMigrationOpenStackComplete` | `false` | Alpha | 1.17 | | | `CSIMigrationvSphere` | `false` | Beta | 1.19 | | | `CSIMigrationvSphereComplete` | `false` | Beta | 1.19 | | +| `CSIServiceAccountToken` | `false` | Alpha | 1.20 | | | `CSIStorageCapacity` | `false` | Alpha | 1.19 | | -| `CSIVolumeFSGroupPolicy` | `false` | Alpha | 1.19 | | -| `ConfigurableFSGroupPolicy` | `false` | Alpha | 1.18 | | +| `CSIVolumeFSGroupPolicy` | `false` | Alpha | 1.19 | 1.19 | +| `CSIVolumeFSGroupPolicy` | `true` | Beta | 1.20 | | +| `ConfigurableFSGroupPolicy` | `false` | Alpha | 1.18 | 1.19 | +| `ConfigurableFSGroupPolicy` | `true` | Beta | 1.20 | | +| `CronJobControllerV2` | `false` | Alpha | 1.20 | | | `CustomCPUCFSQuotaPeriod` | `false` | Alpha | 1.12 | | -| `DefaultPodTopologySpread` | `false` | Alpha | 1.19 | | +| `DefaultPodTopologySpread` | `false` | Alpha | 1.19 | 1.19 | +| `DefaultPodTopologySpread` | `true` | Beta | 1.20 | | | `DevicePlugins` | `false` | Alpha | 1.8 | 1.9 | | `DevicePlugins` | `true` | Beta | 1.10 | | -| `DisableAcceleratorUsageMetrics` | `false` | Alpha | 1.19 | 1.20 | -| `DryRun` | `false` | Alpha | 1.12 | 1.12 | -| `DryRun` | `true` | Beta | 1.13 | | +| `DisableAcceleratorUsageMetrics` | `false` | Alpha | 1.19 | 1.19 | +| `DisableAcceleratorUsageMetrics` | `true` | Beta | 1.20 | | +| `DownwardAPIHugePages` | `false` | Alpha | 1.20 | | | `DynamicKubeletConfig` | `false` | Alpha | 1.4 | 1.10 | | `DynamicKubeletConfig` | `true` | Beta | 1.11 | | +| `EfficientWatchResumption` | `false` | Alpha | 1.20 | | | `EndpointSlice` | `false` | Alpha | 1.16 | 1.16 | | `EndpointSlice` | `false` | Beta | 1.17 | | | `EndpointSlice` | `true` | Beta | 1.18 | | +| `EndpointSliceNodeName` | `false` | Alpha | 1.20 | | | `EndpointSliceProxying` | `false` | Alpha | 1.18 | 1.18 | | `EndpointSliceProxying` | `true` | Beta | 1.19 | | +| `EndpointSliceTerminatingCondition` | `false` | Alpha | 1.20 | | | `EphemeralContainers` | `false` | Alpha | 1.16 | | | `ExpandCSIVolumes` | `false` | Alpha | 1.14 | 1.15 | | `ExpandCSIVolumes` | `true` | Beta | 1.16 | | @@ -156,71 +163,68 @@ different Kubernetes components. | `ExpandPersistentVolumes` | `true` | Beta | 1.11 | | | `ExperimentalHostUserNamespaceDefaulting` | `false` | Beta | 1.5 | | | `GenericEphemeralVolume` | `false` | Alpha | 1.19 | | +| `GracefulNodeShutdown` | `false` | Alpha | 1.20 | | +| `HPAContainerMetrics` | `false` | Alpha | 1.20 | | | `HPAScaleToZero` | `false` | Alpha | 1.16 | | | `HugePageStorageMediumSize` | `false` | Alpha | 1.18 | 1.18 | | `HugePageStorageMediumSize` | `true` | Beta | 1.19 | | -| `HyperVContainer` | `false` | Alpha | 1.10 | | +| `IPv6DualStack` | `false` | Alpha | 1.15 | | | `ImmutableEphemeralVolumes` | `false` | Alpha | 1.18 | 1.18 | | `ImmutableEphemeralVolumes` | `true` | Beta | 1.19 | | -| `IPv6DualStack` | `false` | Alpha | 1.16 | | -| `KubeletPodResources` | `false` | Alpha | 1.13 | 1.14 | +| `KubeletCredentialProviders` | `false` | Alpha | 1.20 | | +| `KubeletPodResources` | `true` | Alpha | 1.13 | 1.14 | | `KubeletPodResources` | `true` | Beta | 1.15 | | -| `LegacyNodeRoleBehavior` | `true` | Alpha | 1.16 | | +| `LegacyNodeRoleBehavior` | `false` | Alpha | 1.16 | 1.18 | +| `LegacyNodeRoleBehavior` | `true` | True | 1.19 | | | `LocalStorageCapacityIsolation` | `false` | Alpha | 1.7 | 1.9 | | `LocalStorageCapacityIsolation` | `true` | Beta | 1.10 | | | `LocalStorageCapacityIsolationFSQuotaMonitoring` | `false` | Alpha | 1.15 | | -| `MountContainers` | `false` | Alpha | 1.9 | | +| `MixedProtocolLBService` | `false` | Alpha | 1.20 | | | `NodeDisruptionExclusion` | `false` | Alpha | 1.16 | 1.18 | | `NodeDisruptionExclusion` | `true` | Beta | 1.19 | | | `NonPreemptingPriority` | `false` | Alpha | 1.15 | 1.18 | | `NonPreemptingPriority` | `true` | Beta | 1.19 | | | `PodDisruptionBudget` | `false` | Alpha | 1.3 | 1.4 | | `PodDisruptionBudget` | `true` | Beta | 1.5 | | -| `PodOverhead` | `false` | Alpha | 1.16 | - | +| `PodOverhead` | `false` | Alpha | 1.16 | 1.17 | +| `PodOverhead` | `true` | Beta | 1.18 | | | `ProcMountType` | `false` | Alpha | 1.12 | | | `QOSReserved` | `false` | Alpha | 1.11 | | | `RemainingItemCount` | `false` | Alpha | 1.15 | | +| `RemoveSelfLink` | `false` | Alpha | 1.16 | 1.19 | +| `RemoveSelfLink` | `true` | Beta | 1.20 | | +| `RootCAConfigMap` | `false` | Alpha | 1.13 | 1.19 | +| `RootCAConfigMap` | `true` | Beta | 1.20 | | | `RotateKubeletServerCertificate` | `false` | Alpha | 1.7 | 1.11 | | `RotateKubeletServerCertificate` | `true` | Beta | 1.12 | | | `RunAsGroup` | `true` | Beta | 1.14 | | -| `RuntimeClass` | `false` | Alpha | 1.12 | 1.13 | -| `RuntimeClass` | `true` | Beta | 1.14 | | | `SCTPSupport` | `false` | Alpha | 1.12 | 1.18 | | `SCTPSupport` | `true` | Beta | 1.19 | | | `ServerSideApply` | `false` | Alpha | 1.14 | 1.15 | | `ServerSideApply` | `true` | Beta | 1.16 | | -| `ServiceAccountIssuerDiscovery` | `false` | Alpha | 1.18 | | -| `ServiceAppProtocol` | `false` | Alpha | 1.18 | 1.18 | -| `ServiceAppProtocol` | `true` | Beta | 1.19 | | +| `ServiceAccountIssuerDiscovery` | `false` | Alpha | 1.18 | 1.19 | +| `ServiceAccountIssuerDiscovery` | `true` | Beta | 1.20 | | +| `ServiceLBNodePortControl` | `false` | Alpha | 1.20 | | | `ServiceNodeExclusion` | `false` | Alpha | 1.8 | 1.18 | | `ServiceNodeExclusion` | `true` | Beta | 1.19 | | | `ServiceTopology` | `false` | Alpha | 1.17 | | -| `SetHostnameAsFQDN` | `false` | Alpha | 1.19 | | -| `StartupProbe` | `false` | Alpha | 1.16 | 1.17 | -| `StartupProbe` | `true` | Beta | 1.18 | | +| `SetHostnameAsFQDN` | `false` | Alpha | 1.19 | 1.19 | +| `SetHostnameAsFQDN` | `true` | Beta | 1.20 | | +| `SizeMemoryBackedVolumes` | `false` | Alpha | 1.20 | | +| `StorageVersionAPI` | `false` | Alpha | 1.20 | | | `StorageVersionHash` | `false` | Alpha | 1.14 | 1.14 | | `StorageVersionHash` | `true` | Beta | 1.15 | | -| `SupportNodePidsLimit` | `false` | Alpha | 1.14 | 1.14 | -| `SupportNodePidsLimit` | `true` | Beta | 1.15 | | -| `SupportPodPidsLimit` | `false` | Alpha | 1.10 | 1.13 | -| `SupportPodPidsLimit` | `true` | Beta | 1.14 | | | `Sysctls` | `true` | Beta | 1.11 | | -| `TokenRequest` | `false` | Alpha | 1.10 | 1.11 | -| `TokenRequest` | `true` | Beta | 1.12 | | -| `TokenRequestProjection` | `false` | Alpha | 1.11 | 1.11 | -| `TokenRequestProjection` | `true` | Beta | 1.12 | | | `TTLAfterFinished` | `false` | Alpha | 1.12 | | | `TopologyManager` | `false` | Alpha | 1.16 | 1.17 | | `TopologyManager` | `true` | Beta | 1.18 | | | `ValidateProxyRedirects` | `false` | Alpha | 1.12 | 1.13 | | `ValidateProxyRedirects` | `true` | Beta | 1.14 | | -| `VolumeSnapshotDataSource` | `false` | Alpha | 1.12 | 1.16 | -| `VolumeSnapshotDataSource` | `true` | Beta | 1.17 | - | -| `WindowsEndpointSliceProxying` | `false` | Alpha | 1.19 | | -| `WindowsGMSA` | `false` | Alpha | 1.14 | | -| `WindowsGMSA` | `true` | Beta | 1.16 | | +| `WarningHeaders` | `true` | Beta | 1.19 | | | `WinDSR` | `false` | Alpha | 1.14 | | -| `WinOverlay` | `false` | Alpha | 1.14 | | +| `WinOverlay` | `false` | Alpha | 1.14 | 1.19 | +| `WinOverlay` | `true` | Beta | 1.20 | | +| `WindowsEndpointSliceProxying` | `false` | Alpha | 1.19 | | {{< /table >}} @@ -233,13 +237,12 @@ different Kubernetes components. {{< /table >}} --> - -### 已毕业和不推荐使用的特性门控 {#feature-gates-for-graduated-or-deprecated-features} +### 已毕业和已废弃的特性门控 {#feature-gates-for-graduated-or-deprecated-features} {{< table caption="已毕业或不推荐使用的特性门控" >}} -| 特性 | 默认值 | 状态 | 开始(Since) | 结束(Until) | -|---------|---------|-------|-------|-------| +| 特性 | 默认值 | 状态 | 开始(Since) | 结束(Until) | +|---------|---------|-------|---------------|---------------| | `Accelerators` | `false` | Alpha | 1.6 | 1.10 | | `Accelerators` | - | Deprecated | 1.11 | - | | `AdvancedAuditing` | `false` | Alpha | 1.7 | 1.7 | @@ -285,12 +288,16 @@ different Kubernetes components. | `CustomResourceWebhookConversion` | `false` | Alpha | 1.13 | 1.14 | | `CustomResourceWebhookConversion` | `true` | Beta | 1.15 | 1.15 | | `CustomResourceWebhookConversion` | `true` | GA | 1.16 | - | +| `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 | - | | `DynamicProvisioningScheduling` | `false` | Alpha | 1.11 | 1.11 | | `DynamicProvisioningScheduling` | - | Deprecated| 1.12 | - | | `DynamicVolumeProvisioning` | `true` | Alpha | 1.3 | 1.7 | | `DynamicVolumeProvisioning` | `true` | GA | 1.8 | - | +| `EnableAggregatedDiscoveryTimeout` | `true` | Deprecated | 1.16 | - | | `EnableEquivalenceClassCache` | `false` | Alpha | 1.8 | 1.14 | | `EnableEquivalenceClassCache` | - | Deprecated | 1.15 | - | | `ExperimentalCriticalPodAnnotation` | `false` | Alpha | 1.5 | 1.12 | @@ -298,11 +305,14 @@ different Kubernetes components. | `EvenPodsSpread` | `false` | Alpha | 1.16 | 1.17 | | `EvenPodsSpread` | `true` | Beta | 1.18 | 1.18 | | `EvenPodsSpread` | `true` | GA | 1.19 | - | +| `ExecProbeTimeout` | `true` | GA | 1.20 | - | | `GCERegionalPersistentDisk` | `true` | Beta | 1.10 | 1.12 | | `GCERegionalPersistentDisk` | `true` | GA | 1.13 | - | | `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 | - | | `Initializers` | `false` | Alpha | 1.7 | 1.13 | | `Initializers` | - | Deprecated | 1.14 | - | | `KubeletConfigFile` | `false` | Alpha | 1.8 | 1.9 | @@ -310,12 +320,19 @@ different Kubernetes components. | `KubeletPluginsWatcher` | `false` | Alpha | 1.11 | 1.11 | | `KubeletPluginsWatcher` | `true` | Beta | 1.12 | 1.12 | | `KubeletPluginsWatcher` | `true` | GA | 1.13 | - | +| `KubeletPodResources` | `false` | Alpha | 1.13 | 1.14 | +| `KubeletPodResources` | `true` | Beta | 1.15 | | +| `KubeletPodResources` | `true` | GA | 1.20 | | +| `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 | - | | `NodeLease` | `false` | Alpha | 1.12 | 1.13 | | `NodeLease` | `true` | Beta | 1.14 | 1.16 | | `NodeLease` | `true` | GA | 1.17 | - | +| `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 | - | @@ -328,8 +345,6 @@ different Kubernetes components. | `PodShareProcessNamespace` | `false` | Alpha | 1.10 | 1.11 | | `PodShareProcessNamespace` | `true` | Beta | 1.12 | 1.16 | | `PodShareProcessNamespace` | `true` | GA | 1.17 | - | -| `PVCProtection` | `false` | Alpha | 1.9 | 1.9 | -| `PVCProtection` | - | Deprecated | 1.10 | - | | `RequestManagement` | `false` | Alpha | 1.15 | 1.16 | | `ResourceLimitsPriorityFunction` | `false` | Alpha | 1.9 | 1.18 | | `ResourceLimitsPriorityFunction` | - | Deprecated | 1.19 | - | @@ -338,12 +353,24 @@ different Kubernetes components. | `ResourceQuotaScopeSelectors` | `true` | GA | 1.17 | - | | `RotateKubeletClientCertificate` | `true` | Beta | 1.8 | 1.18 | | `RotateKubeletClientCertificate` | `true` | GA | 1.19 | - | +| `RuntimeClass` | `false` | Alpha | 1.12 | 1.13 | +| `RuntimeClass` | `true` | Beta | 1.14 | 1.19 | +| `RuntimeClass` | `true` | GA | 1.20 | - | | `ScheduleDaemonSetPods` | `false` | Alpha | 1.11 | 1.11 | | `ScheduleDaemonSetPods` | `true` | Beta | 1.12 | 1.16 | | `ScheduleDaemonSetPods` | `true` | GA | 1.17 | - | +| `SCTPSupport` | `false` | Alpha | 1.12 | 1.18 | +| `SCTPSupport` | `true` | Beta | 1.19 | 1.19 | +| `SCTPSupport` | `true` | GA | 1.20 | - | +| `ServiceAppProtocol` | `false` | Alpha | 1.18 | 1.18 | +| `ServiceAppProtocol` | `true` | Beta | 1.19 | | +| `ServiceAppProtocol` | `true` | GA | 1.20 | - | | `ServiceLoadBalancerFinalizer` | `false` | Alpha | 1.15 | 1.15 | | `ServiceLoadBalancerFinalizer` | `true` | Beta | 1.16 | 1.16 | | `ServiceLoadBalancerFinalizer` | `true` | GA | 1.17 | - | +| `StartupProbe` | `false` | Alpha | 1.16 | 1.17 | +| `StartupProbe` | `true` | Beta | 1.18 | 1.19 | +| `StartupProbe` | `true` | GA | 1.20 | - | | `StorageObjectInUseProtection` | `true` | Beta | 1.10 | 1.10 | | `StorageObjectInUseProtection` | `true` | GA | 1.11 | - | | `StreamingProxyRedirects` | `false` | Beta | 1.5 | 1.5 | @@ -353,19 +380,34 @@ different Kubernetes components. | `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 | - | | `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 | - | +| `VolumeSnapshotDataSource` | `false` | Alpha | 1.12 | 1.16 | +| `VolumeSnapshotDataSource` | `true` | Beta | 1.17 | 1.19 | +| `VolumeSnapshotDataSource` | `true` | GA | 1.20 | - | | `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 | - | -| `VolumeSubpath` | `true` | GA | 1.13 | - | +| `VolumeSubpath` | `true` | GA | 1.10 | - | | `VolumeSubpathEnvExpansion` | `false` | Alpha | 1.14 | 1.14 | | `VolumeSubpathEnvExpansion` | `true` | Beta | 1.15 | 1.16 | | `VolumeSubpathEnvExpansion` | `true` | GA | 1.17 | - | @@ -386,10 +428,9 @@ different Kubernetes components. ### Feature stages --> +## 使用特性 {#using-a-feature} -## 使用特性 - -### 特性阶段 +### 特性阶段 {#feature-stages} - * 默认禁用。 * 可能有错误,启用此特性可能会导致错误。 * 随时可能删除对此特性的支持,恕不另行通知。 @@ -418,7 +458,6 @@ An *Alpha* feature means: - *Beta* 特性代表: - -* 默认禁用。 +* 默认启用。 * 该特性已经经过良好测试。启用该特性是安全的。 * 尽管详细信息可能会更改,但不会放弃对整体特性的支持。 * 对象的架构或语义可能会在随后的 Beta 或稳定版本中以不兼容的方式更改。当发生这种情况时,我们将提供迁移到下一版本的说明。此特性可能需要删除、编辑和重新创建 API 对象。编辑过程可能需要慎重操作,因为这可能会导致依赖该特性的应用程序停机。 -* 推荐仅用于非关键业务用途,因为在后续版本中可能会发生不兼容的更改。如果您具有多个可以独立升级的,则可以放宽此限制。 +* 推荐仅用于非关键业务用途,因为在后续版本中可能会发生不兼容的更改。如果你具有多个可以独立升级的,则可以放宽此限制。 {{< note >}} - *General Availability* (GA) 特性也称为 *稳定* 特性,*GA* 特性代表着: - * 此特性会一直启用;你不能禁用它。 * 不再需要相应的特性门控。 * 对于许多后续版本,特性的稳定版本将出现在发行的软件中。 @@ -476,89 +512,113 @@ Each feature gate is designed for enabling/disabling a specific feature: 每个特性门控均用于启用或禁用某个特定的特性: + +- `APIListChunking`:启用 API 客户端以块的形式从 API 服务器检索(“LIST” 或 “GET”)资源。 +- `APIPriorityAndFairness`: 在每个服务器上启用优先级和公平性来管理请求并发。(由 `RequestManagement` 重命名而来) +- `APIResponseCompression`:压缩 “LIST” 或 “GET” 请求的 API 响应。 +- `APIServerIdentity`:为集群中的每个 API 服务器赋予一个 ID。 - - `Accelerators`:使用 Docker 时启用 Nvidia GPU 支持。 - `AdvancedAuditing`:启用[高级审计功能](/zh/docs/tasks/debug-application-cluster/audit/#advanced-audit)。 - `AffinityInAnnotations`( *已弃用* ):启用 [Pod 亲和或反亲和](/zh/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity)。 - `AllowExtTrafficLocalEndpoints`:启用服务用于将外部请求路由到节点本地终端。 -- `AnyVolumeDataSource`: 允许使用任何自定义的资源来做作为 {{< glossary_tooltip text="PVC" term_id="persistent-volume-claim" >}} 中的 `DataSource`. -- `APIListChunking`:启用 API 客户端以块的形式从 API 服务器检索(“LIST” 或 “GET”)资源。 -- `APIPriorityAndFairness`: Enable managing request concurrency with prioritization and fairness at each server. (Renamed from `RequestManagement`) -- `APIPriorityAndFairness`: 在每个服务器上启用优先级和公平性来管理请求并发。(由 `RequestManagement` 重命名而来) -- `APIResponseCompression`:压缩 “LIST” 或 “GET” 请求的 API 响应。 -- `AppArmor`:使用 Docker 时,在 Linux 节点上启用基于 AppArmor 机制的强制访问控制。请参见 [AppArmor 教程](/zh/docs/tutorials/clusters/apparmor/) 获取详细信息。 - +- `AllowInsecureBackendProxy`:允许用户在执行 Pod 日志访问请求时跳过 TLS 验证。 +- `AnyVolumeDataSource`: 允许使用任何自定义的资源来做作为 + {{< glossary_tooltip text="PVC" term_id="persistent-volume-claim" >}} 中的 `DataSource`. +- `AppArmor`:使用 Docker 时,在 Linux 节点上启用基于 AppArmor 机制的强制访问控制。 + 请参见 [AppArmor 教程](/zh/docs/tutorials/clusters/apparmor/) 获取详细信息。 - -- `AttachVolumeLimit`:启用卷插件用于报告可连接到节点的卷数限制。有关更多详细信息,请参见 +- `AttachVolumeLimit`:启用卷插件用于报告可连接到节点的卷数限制。有关更多详细信息,请参阅 [动态卷限制](/zh/docs/concepts/storage/storage-limits/#dynamic-volume-limits)。 -- `BalanceAttachedNodeVolumes`:包括要在调度时进行平衡资源分配的节点上的卷数。 +- `BalanceAttachedNodeVolumes`:在进行平衡资源分配的调度时,考虑节点上的卷数。 调度器在决策时会优先考虑 CPU、内存利用率和卷数更近的节点。 - `BlockVolume`:在 Pod 中启用原始块设备的定义和使用。有关更多详细信息,请参见 [原始块卷支持](/zh/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) - 获取更多详细信息。 -- `ConfigurableFSGroupPolicy`:在 Pod 中挂载卷时,允许用户为 fsGroup - 配置卷访问权限和属主变更策略。请参见 - [为 Pod 配置卷访问权限和属主变更策略](/zh/docs/tasks/configure-pod-container/security-context/#configure-volume-permission-and-ownership-change-policy-for-pods)。 + 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) + 获取更多详细信息。 + - `CPUManager`:启用容器级别的 CPU 亲和性支持,有关更多详细信息,请参见 [CPU 管理策略](/zh/docs/tasks/administer-cluster/cpu-management-policies/)。 - - - `CRIContainerLogRotation`:为 cri 容器运行时启用容器日志轮换。 - `CSIBlockVolume`:启用外部 CSI 卷驱动程序用于支持块存储。有关更多详细信息,请参见 [`csi` 原始块卷支持](/zh/docs/concepts/storage/volumes/#csi-raw-block-volume-support)。 - `CSIDriverRegistry`:在 csi.storage.k8s.io 中启用与 CSIDriver API 对象有关的所有逻辑。 - `CSIInlineVolume`:为 Pod 启用 CSI 内联卷支持。 -- `CSIMigration`:确保填充和转换逻辑能够将卷操作从内嵌插件路由到相应的预安装 CSI 插件。 +- `CSIMigration`:确保封装和转换逻辑能够将卷操作从内嵌插件路由到相应的预安装 CSI 插件。 + - `CSIMigrationAWS`:确保填充和转换逻辑能够将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 如果节点未安装和配置 EBS CSI 插件,则支持回退到内嵌 EBS 插件。 这需要启用 CSIMigration 特性标志。 @@ -573,25 +633,36 @@ Each feature gate is designed for enabling/disabling a specific feature: 并启用 shims 和转换逻辑以将卷操作从 Azure 磁盘内嵌插件路由到 AzureDisk CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureDisk 特性标志, 并在集群中的所有节点上安装和配置 AzureDisk CSI 插件。 -- `CSIMigrationAzureFile`:确保填充和转换逻辑能够将卷操作从 Azure 文件内嵌插件路由到 + +- `CSIMigrationAzureFile`:确保封装和转换逻辑能够将卷操作从 Azure 文件内嵌插件路由到 Azure 文件 CSI 插件。如果节点未安装和配置 AzureFile CSI 插件, 支持回退到内嵌 AzureFile 插件。这需要启用 CSIMigration 特性标志。 - `CSIMigrationAzureFileComplete`:停止在 kubelet 和卷控制器中注册 Azure-File 内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 Azure-File 内嵌插件路由到 AzureFile CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureFile 特性标志, 并在集群中的所有节点上安装和配置 AzureFile CSI 插件。 - - `CSIMigrationGCE`:启用 shims 和转换逻辑,将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。如果节点未安装和配置 PD CSI 插件,支持回退到内嵌 GCE 插件。 @@ -600,6 +671,17 @@ Each feature gate is designed for enabling/disabling a specific feature: 并启用 shims 和转换逻辑以将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationGCE 特性标志,并在集群中的所有节点上 安装和配置 PD CSI 插件。 + - `CSIMigrationOpenStack`:确保填充和转换逻辑能够将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。如果节点未安装和配置 Cinder CSI 插件,支持回退到内嵌 Cinder 插件。 这需要启用 CSIMigration 特性标志。 @@ -607,27 +689,71 @@ Each feature gate is designed for enabling/disabling a specific feature: 并启用 shims 和转换逻辑将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationOpenStack 特性标志,并在集群中的所有节点上 安装和配置 Cinder CSI 插件。 -- `CSIMigrationvSphere`: 启用 shims 和转换逻辑,将卷操作从 vSphere 内嵌插件路由到 - vSphere CSI 插件。 - 如果节点未安装和配置 vSphere CSI 插件,则支持回退到 vSphere 内嵌插件。 - 这需要启用 CSIMigration 特性标志。 + +- `CSIMigrationvSphere`: 允许封装和转换逻辑将卷操作从 vSphere 内嵌插件路由到 + vSphere CSI 插件。如果节点未安装和配置 vSphere CSI 插件,则支持回退到 + vSphere 内嵌插件。这需要启用 CSIMigration 特性标志。 - `CSIMigrationvSphereComplete`: 停止在 kubelet 和卷控制器中注册 vSphere 内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationvSphere 特性标志,并在集群中的所有节点上 安装和配置 vSphere CSI 插件。 + - `CSINodeInfo`:在 csi.storage.k8s.io 中启用与 CSINodeInfo API 对象有关的所有逻辑。 - `CSIPersistentVolume`:启用发现和挂载通过 [CSI(容器存储接口)](https://github.com/kubernetes/community/blob/master/contributors/design-proposals/storage/container-storage-interface.md) 兼容卷插件配置的卷。 +- `CSIServiceAccountToken`: 允许 CSI 驱动接收挂载卷目标 Pods 的服务账户令牌。 + 参阅[令牌请求(Token Requests)](https://kubernetes-csi.github.io/docs/token-requests.html)。 - `CSIStorageCapacity`: 使 CSI 驱动程序可以发布存储容量信息,并使 Kubernetes 调度程序在调度 Pod 时使用该信息。参见 [存储容量](/zh/docs/concepts/storage/storage-capacity/)。 详情请参见 [`csi` 卷类型](/zh/docs/concepts/storage/volumes/#csi)。 + - `CSIVolumeFSGroupPolicy`: 允许 CSIDrivers 使用 `fsGroupPolicy` 字段. 该字段能控制由 CSIDriver 创建的卷在挂载这些卷时是否支持卷所有权和权限修改。 - +- `ConfigurableFSGroupPolicy`:在 Pod 中挂载卷时,允许用户为 fsGroup + 配置卷访问权限和属主变更策略。请参见 + [为 Pod 配置卷访问权限和属主变更策略](/zh/docs/tasks/configure-pod-container/security-context/#configure-volume-permission-and-ownership-change-policy-for-pods)。 +- `CronJobControllerV2`:使用 {{< glossary_tooltip text="CronJob" term_id="cronjob" >}} + 控制器的一种替代实现。否则,系统会选择同一控制器的 v1 版本。 + 控制器的 v2 版本提供试验性的性能改进。 -- `CustomCPUCFSQuotaPeriod`:使节点能够更改 CPUCFSQuotaPeriod。 -- `CustomPodDNS`:使用其 `dnsConfig` 属性启用 Pod 的自定义 DNS 设置。 +- `CustomCPUCFSQuotaPeriod`:使节点能够更改 + [kubelet 配置](/zh/docs/tasks/administer-cluster/kubelet-config-file/). + 中的 `cpuCFSQuotaPeriod`。 +- `CustomPodDNS`:允许使用 Pod 的 `dnsConfig` 属性自定义其 DNS 设置。 更多详细信息,请参见 [Pod 的 DNS 配置](/zh/docs/concepts/services-networking/dns-pod-service/#pods-dns-config)。 -- `CustomResourceDefaulting`:为 OpenAPI v3 验证架构中的默认值启用 CRD 支持。 +- `CustomResourceDefaulting`:为 CRD 启用在其 OpenAPI v3 验证模式中提供默认值的支持。 - `CustomResourcePublishOpenAPI`:启用 CRD OpenAPI 规范的发布。 - `CustomResourceSubresources`:对于用 [CustomResourceDefinition](/zh/docs/concepts/extend-kubernetes/api-extension/custom-resources/) - 创建的资源启用 `/status` 和 `/scale` 子资源。 + 创建的资源启用其 `/status` 和 `/scale` 子资源。 - `CustomResourceValidation`:对于用 [CustomResourceDefinition](/zh/docs/concepts/extend-kubernetes/api-extension/custom-resources/) 创建的资源启用基于模式的验证。 - `CustomResourceWebhookConversion`:对于用 [CustomResourceDefinition](/zh/docs/concepts/extend-kubernetes/api-extension/custom-resources/) 创建的资源启用基于 Webhook 的转换。 - 对正在运行的 Pod 进行故障排除。 - -- `DisableAcceleratorUsageMetrics`: - [禁用 kubelet 收集加速器指标](/zh/docs/concepts/cluster-administration/system-metrics/). -- `DevicePlugins`:在节点上启用基于 - [设备插件](/zh/docs/concepts/cluster-administration/device-plugins/) 资源供应。 -- `DefaultPodTopologySpread`: 启用 `PodTopologySpread` 调度插件来做 +- `DefaultPodTopologySpread`: 启用 `PodTopologySpread` 调度插件来完成 [默认的调度传播](/zh/docs/concepts/workloads/pods/pod-topology-spread-constraints/#internal-default-constraints). -- `DryRun`:启用服务器端 - [dry run](/zh/docs/reference/using-api/api-concepts/#dry-run) 请求, - 以便无需提交即可测试验证、合并和差异化。 +- `DevicePlugins`:在节点上启用基于 + [设备插件](/zh/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)的 + 资源制备。 +- `DisableAcceleratorUsageMetrics`: + [禁用 kubelet 收集加速器指标](/zh/docs/concepts/cluster-administration/system-metrics/). +- `DownwardAPIHugePages`:允许在 + [下行(Downward)API](/zh/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information) + 中使用巨页信息。 +- `DryRun`:启用在服务器端对请求进行 + [彩排(Dry Run)](/zh/docs/reference/using-api/api-concepts/#dry-run), + 以便测试验证、合并和修改,同时避免提交更改。 - `DynamicAuditing`( *已弃用* ):在 v1.19 版本前用于启用动态审计。 + - `DynamicKubeletConfig`:启用 kubelet 的动态配置。请参阅 [重新配置 kubelet](/zh/docs/tasks/administer-cluster/reconfigure-kubelet/)。 - `DynamicProvisioningScheduling`:扩展默认调度器以了解卷拓扑并处理 PV 配置。 此特性已在 v1.12 中完全被 `VolumeScheduling` 特性取代。 - `DynamicVolumeProvisioning`( *已弃用* ):启用持久化卷到 Pod 的 [动态预配置](/zh/docs/concepts/storage/dynamic-provisioning/)。 - - +- `EfficientWatchResumption`:允许从存储发起的 bookmark(进度通知)事件被 + 通知到用户。此特性仅适用于 watch 操作。 - `EnableAggregatedDiscoveryTimeout`( *已弃用* ):对聚集的发现调用启用五秒钟超时设置。 + - `EnableEquivalenceClassCache`:调度 Pod 时,使 scheduler 缓存节点的等效项。 +- `EndpointSlice`:启用 EndpointSlice 以实现可扩缩性和可扩展性更好的网络端点。 + 参阅[启用 EndpointSlice](/zh/docs/tasks/administer-cluster/enabling-endpointslices/)。 +- `EndpointSliceNodeName`:允许使用 EndpointSlice 的 `nodeName` 字段。 +- `EndpointSliceProxying`:启用此特性门控时,Linux 上运行的 kube-proxy 会使用 + EndpointSlices 而不是 Endpoints 作为其主要数据源,从而使得可扩缩性和性能 + 提升成为可能。参阅 + [启用 EndpointSlice](/zh/docs/tasks/administer-cluster/enabling-endpointslices/)。 +- `EndpointSliceTerminatingCondition`:允许使用 EndpointSlice 的 `terminating` 和 + `serving` 状况字段。 + - `EphemeralContainers`:启用添加 {{< glossary_tooltip text="临时容器" term_id="ephemeral-container" >}} 到正在运行的 Pod 的特性。 - `EvenPodsSpread`:使 Pod 能够在拓扑域之间平衡调度。请参阅 [Pod 拓扑扩展约束](/zh/docs/concepts/workloads/pods/pod-topology-spread-constraints/)。 -- `ExpandInUsePersistentVolumes`:启用扩展使用中的 PVC。请查阅 +- `ExecProbeTimeout`:确保 kubelet 会遵从 exec 探针的超时值设置。 + 此特性门控的主要目的是方便你处理现有的、依赖于已被修复的缺陷的工作负载; + 该缺陷导致 Kubernetes 会忽略 exec 探针的超时值设置。 + 参阅[就绪态探针](/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#configure-probes). + +- `ExpandInUsePersistentVolumes`:启用扩充使用中的 PVC 的尺寸。请查阅 [调整使用中的 PersistentVolumeClaim 的大小](/zh/docs/concepts/storage/persistent-volumes/#resizing-an-in-use-persistentvolumeclaim)。 -- `ExpandPersistentVolumes`:启用持久卷的扩展。请查阅 - [扩展永久卷声明](/zh/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims)。 +- `ExpandPersistentVolumes`:允许扩充持久卷。请查阅 + [扩展持久卷申领](/zh/docs/concepts/storage/persistent-volumes/#expanding-persistent-volumes-claims)。 - `ExperimentalCriticalPodAnnotation`:启用将特定 Pod 注解为 *critical* 的方式,用于 - [确保其调度](/zh/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/)。 - 从 v1.13 开始,Pod 优先级和抢占功能已弃用此特性。 - + [确保其被调度](/zh/docs/tasks/administer-cluster/guaranteed-scheduling-critical-addon-pods/)。 + 从 v1.13 开始已弃用此特性,转而使用 Pod 优先级和抢占功能。 - `ExperimentalHostUserNamespaceDefaultingGate`:启用主机默认的用户名字空间。 这适用于使用其他主机名字空间、主机安装的容器,或具有特权或使用特定的非名字空间功能 (例如 MKNODE、SYS_MODULE 等)的容器。 如果在 Docker 守护程序中启用了用户名字空间重新映射,则启用此选项。 -- `EndpointSlice`:启用 EndpointSlice 以实现更多可扩展的网络端点。 - 需要启用相应的 API 和控制器,请参阅 - [启用 EndpointSlice](/zh/docs/tasks/administer-cluster/enabling-endpointslices/)。 -- `EndpointSliceProxying`:启用此特性门控后,Linux 上运行的 kube-proxy 将使用 - EndpointSlices 取代 Endpoints 作为主要数据源,可以提高扩展性和性能。 请参见 - [启用 EndpointSlice](/zh/docs/tasks/administer-cluster/enabling-endpointslices/)。 -- `WindowsEndpointSliceProxying`:启用此特性门控后,Windows 上运行的 kube-proxy - 将使用 EndpointSlices 取代 Endpoints 作为主要数据源,可以提高扩展性和性能。 请参见 - [启用 EndpointSlice](/zh/docs/tasks/administer-cluster/enabling-endpointslices/)。 -- `GCERegionalPersistentDisk`:在 GCE 上启用区域 PD 特性。 -- `GenericEphemeralVolume`:启用支持临时卷和内联卷的 - (可以由第三方存储供应商提供、存储容量跟踪、从快照还原等等)所有功能。请参见 +- `GCERegionalPersistentDisk`:在 GCE 上启用带地理区域信息的 PD 特性。 +- `GenericEphemeralVolume`:启用支持临时的内联卷,这些卷支持普通卷 + (可以由第三方存储供应商提供、存储容量跟踪、从快照还原等等)的所有功能。请参见 [临时卷](/zh/docs/concepts/storage/ephemeral-volumes/)。 +- `GracefulNodeShutdown`:在 kubelet 中启用体面地关闭节点的支持。 + 在系统关闭时,kubelet 会尝试监测该事件并体面地终止节点上运行的 Pods。参阅 + [体面地关闭节点](/zh/docs/concepts/architecture/nodes/#graceful-node-shutdown) + 以了解更多细节。 + +- `HPAContainerMetrics`:允许 `HorizontalPodAutoscaler` 基于目标 Pods 中各容器 + 的度量值来执行扩缩操作。 +- `HPAScaleToZero`:使用自定义指标或外部指标时,可将 `HorizontalPodAutoscaler` + 资源的 `minReplicas` 设置为 0。 - `HugePages`:启用分配和使用预分配的 [巨页资源](/zh/docs/tasks/manage-hugepages/scheduling-hugepages/)。 - `HugePageStorageMediumSize`:启用支持多种大小的预分配 [巨页资源](/zh/docs/tasks/manage-hugepages/scheduling-hugepages/)。 - `HyperVContainer`:为 Windows 容器启用 [Hyper-V 隔离](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container)。 -- `HPAScaleToZero`:使用自定义指标或外部指标时,可将 `HorizontalPodAutoscaler` - 资源的 `minReplicas` 设置为 0。 +- `IPv6DualStack`:启用[双协议栈](/zh/docs/concepts/services-networking/dual-stack/) + 以支持 IPv6。 - `ImmutableEphemeralVolumes`:允许将各个 Secret 和 ConfigMap 标记为不可变更的, 以提高安全性和性能。 -- `KubeletConfigFile`:启用从使用配置文件指定的文件中加载 kubelet 配置。 +- `KubeletConfigFile`(*已弃用*):启用从使用配置文件指定的文件中加载 kubelet 配置。 有关更多详细信息,请参见 [通过配置文件设置 kubelet 参数](/zh/docs/tasks/administer-cluster/kubelet-config-file/)。 -- `KubeletPluginsWatcher`:启用基于探针的插件监视应用程序,使 kubelet 能够发现插件, - 例如 [CSI 卷驱动程序](/zh/docs/concepts/storage/volumes/#csi)。 -- `KubeletPodResources`:启用 kubelet 的 pod 资源 grpc 端点。更多详细信息,请参见 - [支持设备监控](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/compute-device-assignment.md)。 -- `LegacyNodeRoleBehavior`:禁用此选项后,服务负载均衡中的传统行为和节点中断将忽略 - `node-role.kubernetes.io/master` 标签,而使用 `NodeDisruptionExclusion` 和 - `ServiceNodeExclusion` 提供的特性指定的标签。 - +- `KubeletCredentialProviders`:允许使用 kubelet exec 凭据提供程序来设置 + 镜像拉取凭据。 +- `KubeletPluginsWatcher`:启用基于探针的插件监视应用程序,使 kubelet 能够发现 + 类似 [CSI 卷驱动程序](/zh/docs/concepts/storage/volumes/#csi)这类插件。 +- `KubeletPodResources`:启用 kubelet 的 Pod 资源 GRPC 端点。更多详细信息,请参见 + [支持设备监控](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/compute-device-assignment.md)。 +- `LegacyNodeRoleBehavior`:禁用此门控时,服务负载均衡器中和节点干扰中的原先行为 + 会忽略 `node-role.kubernetes.io/master` 标签,使用 `NodeDisruptionExclusion` 和 + `ServiceNodeExclusion` 对应特性所提供的标签。 + - `LocalStorageCapacityIsolation`:允许使用 - [本地临时存储](/zh/docs/concepts/configuration/manage-resources-containers/)以及 - [emptyDir 卷](/zh/docs/concepts/storage/volumes/#emptydir) 的 `sizeLimit` 属性。 + [本地临时存储](/zh/docs/concepts/configuration/manage-resources-containers/) + 以及 [emptyDir 卷](/zh/docs/concepts/storage/volumes/#emptydir) 的 `sizeLimit` 属性。 - `LocalStorageCapacityIsolationFSQuotaMonitoring`:如果 [本地临时存储](/zh/docs/concepts/configuration/manage-resources-containers/) 启用了 `LocalStorageCapacityIsolation`,并且 [emptyDir 卷](/zh/docs/concepts/storage/volumes/#emptydir) - 的后备文件系统支持项目配额,并且启用了这些配额,请使用项目配额来监视 + 的后备文件系统支持项目配额,并且启用了这些配额,将使用项目配额来监视 [emptyDir 卷](/zh/docs/concepts/storage/volumes/#emptydir)的存储消耗 而不是遍历文件系统,以此获得更好的性能和准确性。 -- `MountContainers`:在主机上启用将应用程序容器用作卷安装程序。 -- `MountPropagation`:启用将一个容器安装的共享卷共享到其他容器或 Pod。 - 更多详细信息,请参见 - [挂载传播](/zh/docs/concepts/storage/volumes/#mount-propagation)。 -- `NodeDisruptionExclusion`:启用节点标签 `node.kubernetes.io/exclude-disruption`, - 以防止在区域故障期间驱逐节点。 - +- `MixedProtocolLBService`:允许在同一 `LoadBalancer` 类型的 Service 实例中使用不同 + 的协议。 +- `MountContainers`:允许使用主机上的工具容器作为卷挂载程序。 -- `NodeLease`:启用新的租赁 API 以报告节点心跳,可用作节点运行状况信号。 +- `MountPropagation`:启用将一个容器安装的共享卷共享到其他容器或 Pod。 + 更多详细信息,请参见[挂载传播](/zh/docs/concepts/storage/volumes/#mount-propagation)。 +- `NodeDisruptionExclusion`:启用节点标签 `node.kubernetes.io/exclude-disruption`, + 以防止在可用区发生故障期间驱逐节点。 +- `NodeLease`:启用新的 Lease(租期)API 以报告节点心跳,可用作节点运行状况信号。 - `NonPreemptingPriority`:为 PriorityClass 和 Pod 启用 NonPreempting 选项。 -- `PersistentLocalVolumes`:在 Pod 中启用 “本地” 卷类型的使用。 - 如果请求 “本地” 卷,则必须指定 Pod 亲和力。 +- `PVCProtection`:启用防止仍被某 Pod 使用的 PVC 被删除的特性。 +- `PersistentLocalVolumes`:允许在 Pod 中使用 `local(本地)`卷类型。 + 如果请求 `local` 卷,则必须指定 Pod 亲和性属性。 - `PodDisruptionBudget`:启用 [PodDisruptionBudget](/zh/docs/tasks/run-application/configure-pdb/) 特性。 - `PodOverhead`:启用 [PodOverhead](/zh/docs/concepts/scheduling-eviction/pod-overhead/) 特性以考虑 Pod 开销。 -- `PodPriority`:根据[优先级](/zh/docs/concepts/configuration/pod-priority-preemption/) - 启用 Pod 的调度和抢占。 -- `PodReadinessGates`:启用 `PodReadinessGate` 字段的设置以扩展 Pod 准备状态评估。 - 有关更多详细信息,请参见 - [Pod 就绪状态判别](/zh/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate)。 - +- `PodPriority`:根据[优先级](/zh/docs/concepts/configuration/pod-priority-preemption/) + 启用 Pod 的调度和抢占。 +- `PodReadinessGates`:启用 `podReadinessGate` 字段的设置以扩展 Pod 准备状态评估。 + 有关更多详细信息,请参见 + [Pod 就绪状态判别](/zh/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate)。 +- `PodShareProcessNamespace`:在 Pod 中启用 `shareProcessNamespace` 的设置, + 以便在 Pod 中运行的容器之间共享同一进程名字空间。更多详细信息,请参见 + [在 Pod 中的容器间共享同一进程名字空间](/zh/docs/tasks/configure-pod-container/share-process-namespace/)。 +- `ProcMountType`:允许容器通过设置 SecurityContext 的 `procMount` 字段来控制 + 对 proc 文件系统的挂载方式。 +- `QOSReserved`:允许在 QoS 级别进行资源预留,以防止处于较低 QoS 级别的 Pod + 突发进入处于较高 QoS 级别的请求资源(目前仅适用于内存)。 +- `RemainingItemCount`:允许 API 服务器在 + [分块列表请求](/zh/docs/reference/using-api/api-concepts/#retrieving-large-results-sets-in-chunks) + 的响应中显示剩余条目的个数。 + - -- `PodShareProcessNamespace`:在 Pod 中启用 `shareProcessNamespace` 的设置, - 以便在 Pod 中运行的容器之间共享同一进程名字空间。更多详细信息,请参见 - [在 Pod 中的容器间共享同一进程名字空间](/zh/docs/tasks/configure-pod-container/share-process-namespace/)。 -- `ProcMountType`:启用对容器的 ProcMountType 的控制。 -- `PVCProtection`:启用防止任何 Pod 仍使用 PersistentVolumeClaim(PVC) 删除的特性。 -- `QOSReserved`:允许在 QoS 级别进行资源预留,以防止处于较低 QoS 级别的 Pod - 突发进入处于较高 QoS 级别的请求资源(仅适用于内存)。 +- `RemoveSelfLink`:将 ObjectMeta 和 ListMeta 中的 `selfLink` 字段废弃并删除。 - `ResourceLimitsPriorityFunction` ( *已弃用* ):启用某调度器优先级函数, 该函数将最低得分 1 指派给至少满足输入 Pod 的 CPU 和内存限制之一的节点, 目的是打破得分相同的节点之间的关联。 - +- `ResourceQuotaScopeSelectors`:启用资源配额范围选择器。 +- `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) + 以了解更多细节。 -- `ResourceQuotaScopeSelectors`:启用资源配额范围选择器。 - `RotateKubeletClientCertificate`:在 kubelet 上启用客户端 TLS 证书的轮换。 更多详细信息,请参见 [kubelet 配置](/zh/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/#kubelet-configuration)。 @@ -886,88 +1123,129 @@ Each feature gate is designed for enabling/disabling a specific feature: 特性用于选择容器运行时配置。 - `ScheduleDaemonSetPods`:启用 DaemonSet Pods 由默认调度程序而不是 DaemonSet 控制器进行调度。 - -- `SCTPSupport`:在 Service、Endpoints、NetworkPolicy 和 Pod 定义中, +- `SCTPSupport`:在 Pod、Service、Endpoints、NetworkPolicy 定义中 允许将 _SCTP_ 用作 `protocol` 值。 - `ServerSideApply`:在 API 服务器上启用 - [服务器端应用(SSA)](/zh/docs/reference/using-api/server-side-apply/) 路径。 -- `ServiceAccountIssuerDiscovery`:在 API 服务器中为服务帐户颁发者启用 OIDC 发现端点。 - 颁发者和 JWKS URL)。详情请参见 + [服务器端应用(SSA)](/zh/docs/reference/using-api/server-side-apply/) 。 +- `ServiceAccountIssuerDiscovery`:在 API 服务器中为服务帐户颁发者启用 OIDC 发现端点 + (颁发者和 JWKS URL)。详情参见 [为 Pod 配置服务账户](/zh/docs/tasks/configure-pod-container/configure-service-account/#service-account-issuer-discovery) 。 -- `ServiceAppProtocol`:为 Service 和 Endpoints 启用 `AppProtocol` 字段。 -- `ServiceLoadBalancerFinalizer`:为服务负载均衡启用终结器保护。 +- `ServiceAppProtocol`:为 Service 和 Endpoints 启用 `appProtocol` 字段。 +- `ServiceLBNodePortControl`:为服务启用 `spec.allocateLoadBalancerNodePorts` 字段。 +- `ServiceLoadBalancerFinalizer`:为服务负载均衡启用终结器(finalizers)保护。 + - `ServiceNodeExclusion`:启用从云提供商创建的负载均衡中排除节点。 - 如果节点标记有 `alpha.service-controller.kubernetes.io/exclude-balancer` - 键或 `node.kubernetes.io/exclude-from-external-load-balancers`, - 则可以排除节点。 + 如果节点标记有 `node.kubernetes.io/exclude-from-external-load-balancers`, + 标签,则可以排除该节点。 - `ServiceTopology`:启用服务拓扑可以让一个服务基于集群的节点拓扑进行流量路由。 有关更多详细信息,请参见 [服务拓扑](/zh/docs/concepts/services-networking/service-topology/)。 - `SetHostnameAsFQDN`:启用将全限定域名(FQDN)设置为 Pod 主机名的功能。 - 请参见[给 Pod 设置 `setHostnameAsFQDN` 字段](/zh/docs/concepts/services-networking/dns-pod-service/#pod-sethostnameasfqdn-field)。 -- `StartupProbe`:在 kubelet 中启用 - [启动探针](/zh/docs/concepts/workloads/pods/pod-lifecycle/#when-should-you-use-a-startup-probe)。 -- `StorageObjectInUseProtection`:如果仍在使用 PersistentVolume 或 - PersistentVolumeClaim 对象,则将其推迟。 - + 请参见[为 Pod 设置 `setHostnameAsFQDN` 字段](/zh/docs/concepts/services-networking/dns-pod-service/#pod-sethostnameasfqdn-field)。 +- `SizeMemoryBackedVolumes`:允许 kubelet 检查基于内存制备的卷的尺寸约束 + (目前主要针对 `emptyDir` 卷)。 +- `StartupProbe`:在 kubelet 中启用 + [启动探针](/zh/docs/concepts/workloads/pods/pod-lifecycle/#when-should-you-use-a-startup-probe)。 +- `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` 请求。 + -- `StorageVersionHash`:允许 apiserver 在发现中公开存储版本的哈希值。 -- `StreamingProxyRedirects`:指示 API 服务器拦截(并遵循)从后端(kubelet) - 进行重定向以处理流请求。 - 流请求的例子包括 `exec`、`attach` 和 `port-forward` 请求。 - `SupportIPVSProxyMode`:启用使用 IPVS 提供内服务负载平衡。更多详细信息,请参见 [服务代理](/zh/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies)。 - `SupportPodPidsLimit`:启用支持限制 Pod 中的进程 PID。 -- `Sysctls`:启用对可以为每个 Pod 设置的名字空间内核参数(sysctls)的支持。 +- `SupportNodePidsLimit`:启用支持,限制节点上的 PID 用量。 + `--system-reserved` 和 `--kube-reserved` 中的参数 `pid=<数值>` 可以分别用来 + 设定为整个系统所预留的进程 ID 个数和为 Kubernetes 系统守护进程预留的进程 + ID 个数。 +- `Sysctls`:允许为每个 Pod 设置的名字空间内核参数(sysctls)。 更多详细信息,请参见 [sysctls](/zh/docs/tasks/administer-cluster/sysctl-cluster/)。 - +- `TTLAfterFinished`:资源完成执行后,允许 + [TTL 控制器](/zh/docs/concepts/workloads/controllers/ttlafterfinished/)清理资源。 - `TaintBasedEvictions`:根据节点上的污点和 Pod 上的容忍度启用从节点驱逐 Pod 的特性。 - 有关更多详细信息,请参见[污点和容忍度](/zh/docs/concepts/scheduling-eviction/taint-and-toleration/)。 + 更多详细信息可参见[污点和容忍度](/zh/docs/concepts/scheduling-eviction/taint-and-toleration/)。 - `TaintNodesByCondition`:根据[节点状况](/zh/docs/concepts/scheduling-eviction/taint-and-toleration/) - 启用自动在节点标记污点。 + 启用自动为节点标记污点。 - `TokenRequest`:在服务帐户资源上启用 `TokenRequest` 端点。 - `TokenRequestProjection`:启用通过 [`projected` 卷](/zh/docs/concepts/storage/volumes/#projected) - 将服务帐号令牌注入到 Pod 中的特性。 + 将服务帐户令牌注入到 Pod 中的特性。 - `TopologyManager`:启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 详见[控制节点上的拓扑管理策略](/zh/docs/tasks/administer-cluster/topology-manager/)。 -- `TTLAfterFinished`:完成执行后,允许 - [TTL 控制器](/zh/docs/concepts/workloads/controllers/ttlafterfinished/)清理资源。 - - `VolumePVCDataSource`:启用对将现有 PVC 指定数据源的支持。 - `VolumeScheduling`:启用卷拓扑感知调度,并使 PersistentVolumeClaim(PVC) - 绑定调度决策;当与 PersistentLocalVolumes 特性门控一起使用时, - 还可以使用 `PersistentLocalVolumes` 卷类型。 + 绑定能够了解调度决策;当与 PersistentLocalVolumes 特性门控一起使用时, + 还允许使用 [`local`](/docs/concepts/storage/volumes/#local) 卷类型。 - `VolumeSnapshotDataSource`:启用卷快照数据源支持。 - -- `VolumeSubpathEnvExpansion`:启用 `subPathExpr` 字段用于将环境变量扩展为 `subPath`。 -- `WatchBookmark`:启用对监测 bookmark 事件的支持。 +- `VolumeSubpathEnvExpansion`:启用 `subPathExpr` 字段用于将环境变量在 `subPath` + 中展开。 +- `WarningHeaders`:允许在 API 响应中发送警告头部。 +- `WatchBookmark`:启用对 watch 操作中 bookmark 事件的支持。 +- `WinDSR`:允许 kube-proxy 为 Windows 创建 DSR 负载均衡。 +- `WinOverlay`:允许 kube-proxy 在 Windows 的覆盖网络模式下运行。 - `WindowsGMSA`:允许将 GMSA 凭据规范从 Pod 传递到容器运行时。 - `WindowsRunAsUserName`:提供使用非默认用户在 Windows 容器中运行应用程序的支持。 - 详情请参见[配置 RunAsUserName](/zh/docs/tasks/configure-pod-container/configure-runasusername)。 -- `WinDSR`:允许 kube-proxy 为 Windows 创建 DSR 负载均衡。 -- `WinOverlay`:允许 kube-proxy 在 Windows 的 overlay 模式下运行。 + 详情请参见 + [配置 RunAsUserName](/zh/docs/tasks/configure-pod-container/configure-runasusername)。 +- `WindowsEndpointSliceProxying`:启用此特性门控后,Windows 上运行的 kube-proxy + 将使用 EndpointSlices 取代 Endpoints 作为主要数据源,进而提高扩展性和性能。参见 + [启用 EndpointSlice](/zh/docs/tasks/administer-cluster/enabling-endpointslices/)。 ## {{% heading "whatsnext" %}} @@ -1005,7 +1296,6 @@ Each feature gate is designed for enabling/disabling a specific feature: * The [deprecation policy](/docs/reference/using-api/deprecation-policy/) for Kubernetes explains the project's approach to removing features and components. --> - * Kubernetes 的[弃用策略](/zh/docs/reference/using-api/deprecation-policy/) - 介绍了项目已移除的特性部件和组件的方法。 + 介绍了项目针对已移除特性和组件的处理方法。