From 479a59943886a08ea8a1809d4838de73480604a6 Mon Sep 17 00:00:00 2001 From: Qiming Teng Date: Wed, 9 Mar 2022 20:42:22 +0800 Subject: [PATCH] [zh] Resync feature gates --- .../feature-gates.md | 783 +++++++++++------- 1 file changed, 488 insertions(+), 295 deletions(-) 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 9cee580e00..fdd88a3ad6 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 @@ -45,7 +45,8 @@ on each Kubernetes component. Each Kubernetes component lets you enable or disable a set of feature gates that are relevant to that component. Use `-h` flag to see a full set of feature gates for all components. -To set feature gates for a component, such as kubelet, use the `--feature-gates` flag assigned to a list of feature pairs: +To set feature gates for a component, such as kubelet, use the `--feature-gates` +flag assigned to a list of feature pairs: --> 每个 Kubernetes 组件都支持启用或禁用与该组件相关的一组特性门控。 使用 `-h` 参数来查看所有组件支持的完整特性门控。 @@ -101,7 +102,7 @@ different Kubernetes components. |---------|---------|-------|---------------|---------------| | `APIListChunking` | `false` | Alpha | 1.8 | 1.8 | | `APIListChunking` | `true` | Beta | 1.9 | | -| `APIPriorityAndFairness` | `false` | Alpha | 1.17 | 1.19 | +| `APIPriorityAndFairness` | `false` | Alpha | 1.18 | 1.19 | | `APIPriorityAndFairness` | `true` | Beta | 1.20 | | | `APIResponseCompression` | `false` | Alpha | 1.7 | 1.15 | | `APIResponseCompression` | `true` | Beta | 1.16 | | @@ -113,50 +114,58 @@ different Kubernetes components. | `ControllerManagerLeaderMigration` | `false` | Alpha | 1.21 | | | `CPUManager` | `false` | Alpha | 1.8 | 1.9 | | `CPUManager` | `true` | Beta | 1.10 | | -| `CPUManagerPolicyOptions` | `false` | Alpha | 1.22 | | +| `CPUManagerPolicyAlphaOptions` | `false` | Alpha | 1.23 | | +| `CPUManagerPolicyBetaOptions` | `true` | Beta | 1.23 | | +| `CPUManagerPolicyOptions` | `false` | Alpha | 1.22 | 1.22 | +| `CPUManagerPolicyOptions` | `true` | Beta | 1.23 | | | `CSIInlineVolume` | `false` | Alpha | 1.15 | 1.15 | | `CSIInlineVolume` | `true` | Beta | 1.16 | - | | `CSIMigration` | `false` | Alpha | 1.14 | 1.16 | | `CSIMigration` | `true` | Beta | 1.17 | | -| `CSIMigrationAWS` | `false` | Alpha | 1.14 | | -| `CSIMigrationAWS` | `false` | Beta | 1.17 | | +| `CSIMigrationAWS` | `false` | Alpha | 1.14 | 1.16 | +| `CSIMigrationAWS` | `false` | Beta | 1.17 | 1.22 | +| `CSIMigrationAWS` | `true` | Beta | 1.23 | | | `CSIMigrationAzureDisk` | `false` | Alpha | 1.15 | 1.18 | -| `CSIMigrationAzureDisk` | `false` | Beta | 1.19 | | +| `CSIMigrationAzureDisk` | `false` | Beta | 1.19 | 1.22 | +| `CSIMigrationAzureDisk` | `true` | Beta | 1.23 | | | `CSIMigrationAzureFile` | `false` | Alpha | 1.15 | 1.19 | | `CSIMigrationAzureFile` | `false` | Beta | 1.21 | | | `CSIMigrationGCE` | `false` | Alpha | 1.14 | 1.16 | -| `CSIMigrationGCE` | `false` | Beta | 1.17 | | +| `CSIMigrationGCE` | `false` | Beta | 1.17 | 1.22 | +| `CSIMigrationGCE` | `true` | Beta | 1.23 | | | `CSIMigrationOpenStack` | `false` | Alpha | 1.14 | 1.17 | | `CSIMigrationOpenStack` | `true` | Beta | 1.18 | | | `CSIMigrationvSphere` | `false` | Beta | 1.19 | | +| `CSIMigrationPortworx` | `false` | Alpha | 1.23 | | +| `csiMigrationRBD` | `false` | Alpha | 1.23 | | | `CSIStorageCapacity` | `false` | Alpha | 1.19 | 1.20 | | `CSIStorageCapacity` | `true` | Beta | 1.21 | | -| `CSIVolumeFSGroupPolicy` | `false` | Alpha | 1.19 | 1.19 | -| `CSIVolumeFSGroupPolicy` | `true` | Beta | 1.20 | | | `CSIVolumeHealth` | `false` | Alpha | 1.21 | | | `CSRDuration` | `true` | Beta | 1.22 | | -| `ConfigurableFSGroupPolicy` | `false` | Alpha | 1.18 | 1.19 | -| `ConfigurableFSGroupPolicy` | `true` | Beta | 1.20 | | | `ControllerManagerLeaderMigration` | `false` | Alpha | 1.21 | 1.21 | | `ControllerManagerLeaderMigration` | `true` | Beta | 1.22 | | | `CustomCPUCFSQuotaPeriod` | `false` | Alpha | 1.12 | | +| `CustomResourceValidationExpressions` | `false` | Alpha | 1.23 | | | `DaemonSetUpdateSurge` | `false` | Alpha | 1.21 | 1.21 | | `DaemonSetUpdateSurge` | `true` | Beta | 1.22 | | | `DefaultPodTopologySpread` | `false` | Alpha | 1.19 | 1.19 | | `DefaultPodTopologySpread` | `true` | Beta | 1.20 | | -| `DelegateFSGroupToCSIDriver` | `false` | Alpha | 1.22 | | +| `DelegateFSGroupToCSIDriver` | `false` | Alpha | 1.22 | 1.22 | +| `DelegateFSGroupToCSIDriver` | `true` | Beta | 1.23 | | | `DevicePlugins` | `false` | Alpha | 1.8 | 1.9 | | `DevicePlugins` | `true` | Beta | 1.10 | | | `DisableAcceleratorUsageMetrics` | `false` | Alpha | 1.19 | 1.19 | | `DisableAcceleratorUsageMetrics` | `true` | Beta | 1.20 | | | `DisableCloudProviders` | `false` | Alpha | 1.22 | | +| `DisableKubeletCloudCredentialProviders` | `false` | Alpha | 1.23 | | | `DownwardAPIHugePages` | `false` | Alpha | 1.20 | 1.20 | | `DownwardAPIHugePages` | `false` | Beta | 1.21 | | | `EfficientWatchResumption` | `false` | Alpha | 1.20 | 1.20 | | `EfficientWatchResumption` | `true` | Beta | 1.21 | | | `EndpointSliceTerminatingCondition` | `false` | Alpha | 1.20 | 1.21 | | `EndpointSliceTerminatingCondition` | `true` | Beta | 1.22 | | -| `EphemeralContainers` | `false` | Alpha | 1.16 | | +| `EphemeralContainers` | `false` | Alpha | 1.16 | 1.22 | +| `EphemeralContainers` | `true` | Beta | 1.23 | | | `ExpandCSIVolumes` | `false` | Alpha | 1.14 | 1.15 | | `ExpandCSIVolumes` | `true` | Beta | 1.16 | | | `ExpandedDNSConfig` | `false` | Alpha | 1.22 | | @@ -165,28 +174,34 @@ different Kubernetes components. | `ExpandPersistentVolumes` | `false` | Alpha | 1.8 | 1.10 | | `ExpandPersistentVolumes` | `true` | Beta | 1.11 | | | `ExperimentalHostUserNamespaceDefaulting` | `false` | Beta | 1.5 | | -| `GenericEphemeralVolume` | `false` | Alpha | 1.19 | 1.20 | -| `GenericEphemeralVolume` | `true` | Beta | 1.21 | | | `GracefulNodeShutdown` | `false` | Alpha | 1.20 | 1.20 | | `GracefulNodeShutdown` | `true` | Beta | 1.21 | | +| `GracefulNodeShutdownBasedOnPodPriority` | `false` | Alpha | 1.23 | | +| `GRPCContainerProbe` | `false` | Alpha | 1.23 | | +| `HonorPVReclaimPolicy` | `false` | Alpha | 1.23 | | | `HPAContainerMetrics` | `false` | Alpha | 1.20 | | | `HPAScaleToZero` | `false` | Alpha | 1.16 | | +| `IdentifyPodOS` | `false` | Alpha | 1.23 | | | `IndexedJob` | `false` | Alpha | 1.21 | 1.21 | | `IndexedJob` | `true` | Beta | 1.22 | | -| `IngressClassNamespacedParams` | `false` | Alpha | 1.21 | 1.21 | -| `IngressClassNamespacedParams` | `true` | Beta | 1.22 | | | `InTreePluginAWSUnregister` | `false` | Alpha | 1.21 | | | `InTreePluginAzureDiskUnregister` | `false` | Alpha | 1.21 | | | `InTreePluginAzureFileUnregister` | `false` | Alpha | 1.21 | | | `InTreePluginGCEUnregister` | `false` | Alpha | 1.21 | | | `InTreePluginOpenStackUnregister` | `false` | Alpha | 1.21 | | +| `InTreePluginPortworxUnregister` | `false` | Alpha | 1.23 | | +| `InTreePluginRBDUnregister` | `false` | Alpha | 1.23 | | | `InTreePluginvSphereUnregister` | `false` | Alpha | 1.21 | | -| `IPv6DualStack` | `false` | Alpha | 1.15 | 1.20 | -| `IPv6DualStack` | `true` | Beta | 1.21 | | -| `JobTrackingWithFinalizers` | `false` | Alpha | 1.22 | | +| `JobMutableNodeSchedulingDirectives` | `true` | Beta | 1.23 | | +| `JobReadyPods` | `false` | Alpha | 1.23 | | +| `JobTrackingWithFinalizers` | `false` | Alpha | 1.22 | 1.22 | +| `JobTrackingWithFinalizers` | `true` | Beta | 1.23 | | | `KubeletCredentialProviders` | `false` | Alpha | 1.20 | | | `KubeletInUserNamespace` | `false` | Alpha | 1.22 | | -| `KubeletPodResourcesGetAllocatable` | `false` | Alpha | 1.21 | | +| `KubeletPodResources` | `false` | Alpha | 1.13 | 1.14 | +| `KubeletPodResources` | `true` | Beta | 1.15 | | +| `KubeletPodResourcesGetAllocatable` | `false` | Alpha | 1.21 | 1.22 | +| `KubeletPodResourcesGetAllocatable` | `false` | Beta | 1.23 | | | `LocalStorageCapacityIsolation` | `false` | Alpha | 1.7 | 1.9 | | `LocalStorageCapacityIsolation` | `true` | Beta | 1.10 | | | `LocalStorageCapacityIsolationFSQuotaMonitoring` | `false` | Alpha | 1.15 | | @@ -201,13 +216,17 @@ different Kubernetes components. | `NodeSwap` | `false` | Alpha | 1.22 | | | `NonPreemptingPriority` | `false` | Alpha | 1.15 | 1.18 | | `NonPreemptingPriority` | `true` | Beta | 1.19 | | -| `PodDeletionCost` | `false` | Alpha | 1.21 | 1.21 | -| `PodDeletionCost` | `true` | Beta | 1.22 | | +| `OpenAPIEnums` | `false` | Alpha | 1.23 | | +| `OpenAPIV3` | `false` | Alpha | 1.23 | | +| `PodAndContainerStatsFromCRI` | `false` | Alpha | 1.23 | | | `PodAffinityNamespaceSelector` | `false` | Alpha | 1.21 | 1.21 | | `PodAffinityNamespaceSelector` | `true` | Beta | 1.22 | | +| `PodDeletionCost` | `false` | Alpha | 1.21 | 1.21 | +| `PodDeletionCost` | `true` | Beta | 1.22 | | | `PodOverhead` | `false` | Alpha | 1.16 | 1.17 | | `PodOverhead` | `true` | Beta | 1.18 | | -| `PodSecurity` | `false` | Alpha | 1.22 | | +| `PodSecurity` | `false` | Alpha | 1.22 | 1.22 | +| `PodSecurity` | `true` | Beta | 1.23 | | | `PreferNominatedNode` | `false` | Alpha | 1.21 | 1.21 | | `PreferNominatedNode` | `true` | Beta | 1.22 | | | `ProbeTerminationGracePeriod` | `false` | Alpha | 1.21 | 1.21 | @@ -216,6 +235,7 @@ different Kubernetes components. | `ProxyTerminatingEndpoints` | `false` | Alpha | 1.22 | | | `QOSReserved` | `false` | Alpha | 1.11 | | | `ReadWriteOncePod` | `false` | Alpha | 1.22 | | +| `RecoverVolumeExpansionFailure` | `false` | Alpha | 1.23 | | | `RemainingItemCount` | `false` | Alpha | 1.15 | 1.15 | | `RemainingItemCount` | `true` | Beta | 1.16 | | | `RemoveSelfLink` | `false` | Alpha | 1.16 | 1.19 | @@ -231,22 +251,24 @@ different Kubernetes components. | `ServiceLoadBalancerClass` | `true` | Beta | 1.22 | | | `SizeMemoryBackedVolumes` | `false` | Alpha | 1.20 | 1.21 | | `SizeMemoryBackedVolumes` | `true` | Beta | 1.22 | | -| `StatefulSetMinReadySeconds` | `false` | Alpha | 1.22 | | +| `StatefulSetAutoDeletePVC` | `false` | Alpha | 1.22 | | +| `StatefulSetMinReadySeconds` | `false` | Alpha | 1.22 | 1.22 | +| `StatefulSetMinReadySeconds` | `true` | Beta | 1.23 | | | `StorageVersionAPI` | `false` | Alpha | 1.20 | | | `StorageVersionHash` | `false` | Alpha | 1.14 | 1.14 | | `StorageVersionHash` | `true` | Beta | 1.15 | | | `SuspendJob` | `false` | Alpha | 1.21 | 1.21 | | `SuspendJob` | `true` | Beta | 1.22 | | -| `TTLAfterFinished` | `false` | Alpha | 1.12 | 1.20 | -| `TTLAfterFinished` | `true` | Beta | 1.21 | | -| `TopologyAwareHints` | `false` | Alpha | 1.21 | | +| `TopologyAwareHints` | `false` | Alpha | 1.21 | 1.22 | +| `TopologyAwareHints` | `false` | Beta | 1.23 | | | `TopologyManager` | `false` | Alpha | 1.16 | 1.17 | | `TopologyManager` | `true` | Beta | 1.18 | | | `VolumeCapacityPriority` | `false` | Alpha | 1.21 | - | | `WinDSR` | `false` | Alpha | 1.14 | | | `WinOverlay` | `false` | Alpha | 1.14 | 1.19 | | `WinOverlay` | `true` | Beta | 1.20 | | -| `WindowsHostProcessContainers` | `false` | Alpha | 1.22 | | +| `WindowsHostProcessContainers` | `false` | Alpha | 1.22 | 1.22 | +| `WindowsHostProcessContainers` | `false` | Beta | 1.23 | | {{< /table >}} -- `Accelerators`:使用 Docker 时启用 Nvidia GPU 支持。 +- `Accelerators`:使用 Docker Engine 时启用 Nvidia GPU 支持。这一特性不再提供。 + 关于替代方案,请参阅[设备插件](/zh/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)。 - `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`:启用服务用于将外部请求路由到节点本地终端。 - `AllowInsecureBackendProxy`:允许用户在执行 Pod 日志访问请求时跳过 TLS 验证。 - `AnyVolumeDataSource`: 允许使用任何自定义的资源来做作为 {{< glossary_tooltip text="PVC" term_id="persistent-volume-claim" >}} 中的 `DataSource`. -- `AppArmor`:使用 Docker 时,在 Linux 节点上启用基于 AppArmor 机制的强制访问控制。 - 请参见 [AppArmor 教程](/zh/docs/tutorials/clusters/apparmor/) 获取详细信息。 +- `AppArmor`:在 Linux 节点上为 Pod 启用基于 AppArmor 机制的强制访问控制。 + 请参见 [AppArmor 教程](/zh/docs/tutorials/security/apparmor/) 获取详细信息。 - `AttachVolumeLimit`:启用卷插件用于报告可连接到节点的卷数限制。有关更多详细信息,请参阅 @@ -705,7 +742,26 @@ Each feature gate is designed for enabling/disabling a specific feature: +- `CPUManager`:启用容器级别的 CPU 亲和性支持,有关更多详细信息,请参见 + [CPU 管理策略](/zh/docs/tasks/administer-cluster/cpu-management-policies/)。 +- `CPUManagerPolicyAlphaOptions`:允许对 CPUManager 策略进行微调,针对试验性的、 + alpha 质量级别的选项。 + 此特性门控用来保护一组质量级别为 alpha 的 CPUManager 选项。 + 此特性门控永远不会被升级为 beta 或者稳定版本。 +- `CPUManagerPolicyBetaOptions`:允许对 CPUManager 策略进行微调,针对试验性的、 + beta 质量级别的选项。 + 此特性门控用来保护一组质量级别为 beta 的 CPUManager 选项。 + 此特性门控永远不会被升级为稳定版本。 +- `CPUManagerPolicyOptions`: 允许微调 CPU 管理策略。 + -- `CPUManager`:启用容器级别的 CPU 亲和性支持,有关更多详细信息,请参见 - [CPU 管理策略](/zh/docs/tasks/administer-cluster/cpu-management-policies/)。 - `CRIContainerLogRotation`:为 CRI 容器运行时启用容器日志轮换。日志文件的默认最大大小为 10MB,缺省情况下,一个容器允许的最大日志文件数为5。这些值可以在kubelet配置中配置。 更多细节请参见 [日志架构](/zh/docs/concepts/cluster-administration/logging/#logging-at-the-node-level)。 -- `CPUManagerPolicyOptions`: 允许微调 CPU 管理策略。 - `CSIBlockVolume`:启用外部 CSI 卷驱动程序用于支持块存储。有关更多详细信息,请参见 [`csi` 原始块卷支持](/zh/docs/concepts/storage/volumes/#csi-raw-block-volume-support)。 - `CSIDriverRegistry`:在 csi.storage.k8s.io 中启用与 CSIDriver API 对象有关的所有逻辑。 @@ -732,8 +785,10 @@ Each feature gate is designed for enabling/disabling a specific feature: +- `CSIMigrationAWS`:确保填充和转换逻辑能够将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 + 如果节点禁用了此特性门控或者未安装和配置 EBS CSI 插件,支持回退到内嵌 EBS 插件 + 来执行卷挂载操作。不支持回退到这些插件来执行卷制备操作,因为需要安装并配置 CSI 插件。 +- `CSIMigrationAWSComplete`:停止在 kubelet 和卷控制器中注册 EBS 内嵌插件, + 并启用填充和转换逻辑将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 + 这需要启用 CSIMigration 和 CSIMigrationAWS 特性标志,并在集群中的所有节点上安装和配置 + EBS CSI 插件。该特性标志已被废弃,取而代之的是 `InTreePluginAWSUnregister` , + 后者会阻止注册 EBS 内嵌插件。 + -- `CSIMigrationAWS`:确保填充和转换逻辑能够将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 - 如果节点未安装和配置 EBS CSI 插件,则支持回退到内嵌 EBS 插件。 - 这需要启用 CSIMigration 特性标志。 -- `CSIMigrationAWSComplete`:停止在 kubelet 和卷控制器中注册 EBS 内嵌插件, - 并启用 shims 和转换逻辑将卷操作从AWS-EBS 内嵌插件路由到 EBS CSI 插件。 - 这需要启用 CSIMigration 和 CSIMigrationAWS 特性标志,并在集群中的所有节点上安装和配置 - EBS CSI 插件。该特性标志已被废弃,取而代之的是 `InTreePluginAWSUnregister` ,这会阻止注册 EBS 内嵌插件。 -- `CSIMigrationAzureDisk`:确保填充和转换逻辑能够将卷操作从 Azure 磁盘内嵌插件路由到 - Azure 磁盘 CSI 插件。如果节点未安装和配置 AzureDisk CSI 插件, - 支持回退到内建 AzureDisk 插件。这需要启用 CSIMigration 特性标志。 +- `CSIMigrationAzureDisk`:确保填充和转换逻辑能够将卷操作从 AzureDisk 内嵌插件路由到 + Azure 磁盘 CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureDisk CSI + 插件的节点,支持回退到内嵌(in-tree)AzureDisk 插件来执行磁盘挂载操作。 + 不支持回退到内嵌插件来执行磁盘制备操作,因为对应的 CSI 插件必须已安装且正确配置。 + 此特性需要启用 CSIMigration 特性标志。 - `CSIMigrationAzureDiskComplete`:停止在 kubelet 和卷控制器中注册 Azure 磁盘内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 Azure 磁盘内嵌插件路由到 AzureDisk CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureDisk 特性标志, @@ -773,9 +835,11 @@ Each feature gate is designed for enabling/disabling a specific feature: -- `CSIMigrationAzureFile`:确保封装和转换逻辑能够将卷操作从 Azure 文件内嵌插件路由到 - Azure 文件 CSI 插件。如果节点未安装和配置 AzureFile CSI 插件, - 支持回退到内嵌 AzureFile 插件。这需要启用 CSIMigration 特性标志。 +- `CSIMigrationAzureFile`:确保封装和转换逻辑能够将卷操作从 AzureFile 内嵌插件路由到 + AzureFile CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureFile CSI + 插件的节点,支持回退到内嵌(in-tree)AzureFile 插件来执行卷挂载操作。 + 不支持回退到内嵌插件来执行卷制备操作,因为对应的 CSI 插件必须已安装且正确配置。 + 此特性需要启用 CSIMigration 特性标志。 - `CSIMigrationAzureFileComplete`:停止在 kubelet 和卷控制器中注册 Azure-File 内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 Azure-File 内嵌插件路由到 AzureFile CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureFile 特性标志, @@ -795,8 +861,11 @@ Each feature gate is designed for enabling/disabling a specific feature: -- `CSIMigrationGCE`:启用 shims 和转换逻辑,将卷操作从 GCE-PD 内嵌插件路由到 - PD CSI 插件。如果节点未安装和配置 PD CSI 插件,支持回退到内嵌 GCE 插件。 - 这需要启用 CSIMigration 特性标志。 +- `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` 特性标志。 +- `csiMigrationRBD`:启用填充和转换逻辑,将卷操作从 RBD 的内嵌插件路由到 Ceph RBD + CSI 插件。此特性要求 CSIMigration 和 csiMigrationRBD 特性标志均被启用, + 且集群中安装并配置了 Ceph CSI 插件。此标志已被弃用,以鼓励使用 + `InTreePluginRBDUnregister` 特性标志。后者会禁止注册内嵌的 RBD 插件。 + - `CSIMigrationOpenStack`:确保填充和转换逻辑能够将卷操作从 Cinder 内嵌插件路由到 - Cinder CSI 插件。如果节点未安装和配置 Cinder CSI 插件,支持回退到内嵌 Cinder 插件。 - 这需要启用 CSIMigration 特性标志。 + Cinder CSI 插件。对于禁用了此特性的节点或者没有安装并配置 Cinder CSI 插件的节点, + 支持回退到内嵌(in-tree)Cinder 插件来执行挂载操作。 + 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 + 此磁特性需要启用 CSIMigration 特性标志。 - `CSIMigrationOpenStackComplete`:停止在 kubelet 和卷控制器中注册 Cinder 内嵌插件, - 并启用 shims 和转换逻辑将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 + 并启用填充和转换逻辑将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationOpenStack 特性标志,并在集群中的所有节点上 - 安装和配置 Cinder CSI 插件。该特性标志已被废弃,取而代之的是 - 能防止注册内嵌 openstack cinder 插件的 `InTreePluginOpenStackUnregister` 特性标志。 + 安装和配置 Cinder CSI 插件。该特性标志已被弃用,取而代之的是 + 能防止注册内嵌 OpenStack Cinder 插件的 `InTreePluginOpenStackUnregister` 特性标志。 - `CSIMigrationvSphere`: 允许封装和转换逻辑将卷操作从 vSphere 内嵌插件路由到 - vSphere CSI 插件。如果节点未安装和配置 vSphere CSI 插件,则支持回退到 - vSphere 内嵌插件。这需要启用 CSIMigration 特性标志。 + vSphere CSI 插件。如果节点禁用了此特性门控或者未安装和配置 vSphere CSI 插件, + 则支持回退到 vSphere 内嵌插件来执行挂载操作。 + 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 + 这需要启用 CSIMigration 特性标志。 - `CSIMigrationvSphereComplete`: 停止在 kubelet 和卷控制器中注册 vSphere 内嵌插件, - 并启用 shims 和转换逻辑以将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。 + 并启用填充和转换逻辑以将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationvSphere 特性标志,并在集群中的所有节点上 安装和配置 vSphere CSI 插件。该特性标志已被废弃,取而代之的是 能防止注册内嵌 vsphere 插件的 `InTreePluginvSphereUnregister` 特性标志。 +- `CSIMigrationPortworx`:启用填充和转换逻辑,将卷操作从 Portworx 内嵌插件路由到 + Portworx CSI 插件。需要在集群中安装并配置 Portworx CSI 插件,并针对 kube-controller-manager + 和 kubelet 配置启用特性门控 `CSIMigrationPortworx=true`。 + -- `CSIVolumeFSGroupPolicy`: 允许 CSIDrivers 使用 `fsGroupPolicy` 字段. +- `CSIVolumeFSGroupPolicy`:允许 CSIDrivers 使用 `fsGroupPolicy` 字段. 该字段能控制由 CSIDriver 创建的卷在挂载这些卷时是否支持卷所有权和权限修改。 -- `CSIVolumeHealth`: 启用对节点上的 CSI volume 运行状况监控的支持 -- `CSRDuration`: 允许客户端来通过请求 Kubernetes CSR API 签署的证书的持续时间。 +- `CSIVolumeHealth`:启用对节点上的 CSI volume 运行状况监控的支持 +- `CSRDuration`:允许客户端来通过请求 Kubernetes CSR API 签署的证书的持续时间。 - `ConfigurableFSGroupPolicy`:在 Pod 中挂载卷时,允许用户为 fsGroup 配置卷访问权限和属主变更策略。请参见 [为 Pod 配置卷访问权限和属主变更策略](/zh/docs/tasks/configure-pod-container/security-context/#configure-volume-permission-and-ownership-change-policy-for-pods)。 -- `ControllerManagerLeaderMigration`: 为 `kube-controller-manager` 和 `cloud-controller-manager` - 开启 leader 迁移功能。 +- `ControllerManagerLeaderMigration`:为 `kube-controller-manager` 和 `cloud-controller-manager` + 开启领导者迁移功能。 - `CronJobControllerV2`:使用 {{< glossary_tooltip text="CronJob" term_id="cronjob" >}} 控制器的一种替代实现。否则,系统会选择同一控制器的 v1 版本。 +- `CustomCPUCFSQuotaPeriod`:使节点能够更改 + [kubelet 配置](/zh/docs/tasks/administer-cluster/kubelet-config-file/) + 中的 `cpuCFSQuotaPeriod`。 +- `CustomResourceValidationExpressions`:启用 CRD 中的表达式语言合法性检查, + 基于 `x-kubernetes-validations` 扩展中所书写的合法性检查规则来验证定制资源。 +- `CustomPodDNS`:允许使用 Pod 的 `dnsConfig` 属性自定义其 DNS 设置。 + 更多详细信息,请参见 + [Pod 的 DNS 配置](/zh/docs/concepts/services-networking/dns-pod-service/#pods-dns-config)。 + -- `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`:为 CRD 启用在其 OpenAPI v3 验证模式中提供默认值的支持。 - `CustomResourcePublishOpenAPI`:启用 CRD OpenAPI 规范的发布。 - `CustomResourceSubresources`:对于用 @@ -938,6 +1046,7 @@ Each feature gate is designed for enabling/disabling a specific feature: [CustomResourceDefinition](/zh/docs/concepts/extend-kubernetes/api-extension/custom-resources/) 创建的资源启用基于 Webhook 的转换。 - `DaemonSetUpdateSurge`: 使 DaemonSet 工作负载在每个节点的更新期间保持可用性。 + 参阅[对 DaemonSet 执行滚动更新](/zh/docs/tasks/manage-daemon/update-daemon-set/)。 - `DefaultPodTopologySpread`: 启用 `PodTopologySpread` 调度插件来完成 [默认的调度传播](/zh/docs/concepts/workloads/pods/pod-topology-spread-constraints/#internal-default-constraints). @@ -963,18 +1064,31 @@ Each feature gate is designed for enabling/disabling a specific feature: NodePublishVolume CSI 调用传递 `fsGroup` ,将应用 `fsGroup` 从 Pod 的 `securityContext` 的角色委托给驱动。 - `DevicePlugins`:在节点上启用基于 - [设备插件](/zh/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)的 - 资源制备。 + [设备插件](/zh/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) + 的资源制备。 - `DisableAcceleratorUsageMetrics`: [禁用 kubelet 收集加速器指标](/zh/docs/concepts/cluster-administration/system-metrics/#disable-accelerator-metrics). -- `DisableCloudProviders`: 禁用 `kube-apiserver`, - `kube-controller-manager` 和 `kubelet` 组件的 `--cloud-provider` 标志相关 - 的所有功能。 + +- `DisableCloudProviders`: 禁用 `kube-apiserver`,`kube-controller-manager` 和 + `kubelet` 组件的 `--cloud-provider` 标志相关的所有功能。 +- `DisableKubeletCloudCredentialProviders`:禁用 kubelet 中为拉取镜像内置的凭据机制, + 该凭据用于向某云提供商的容器镜像仓库执行身份认证。 - `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), + [试运行(Dry Run)](/zh/docs/reference/using-api/api-concepts/#dry-run), 以便测试验证、合并和修改,同时避免提交更改。 - `DynamicAuditing`:在 v1.19 版本前用于启用动态审计。 - `EnableEquivalenceClassCache`:调度 Pod 时,使 scheduler 缓存节点的等效项。 - `EndpointSlice`:启用 EndpointSlice 以实现可扩缩性和可扩展性更好的网络端点。 - 参阅[启用 EndpointSlice](/zh/docs/tasks/administer-cluster/enabling-endpointslices/)。 + 参阅[启用 EndpointSlice](/zh/docs/concepts/services-networking/endpoint-slices/)。 - `EndpointSliceNodeName`:允许使用 EndpointSlice 的 `nodeName` 字段。 - `EndpointSliceProxying`:启用此特性门控时,Linux 上运行的 kube-proxy 会使用 - EndpointSlices 而不是 Endpoints 作为其主要数据源,从而使得可扩缩性和性能 - 提升成为可能。参阅 - [启用 EndpointSlice](/zh/docs/tasks/administer-cluster/enabling-endpointslices/)。 + EndpointSlices 而不是 Endpoints 作为其主要数据源,从而使得可扩缩性和性能提升成为可能。 + 参阅[启用 EndpointSlice](/zh/docs/concepts/services-networking/endpoint-slices/)。 - `EndpointSliceTerminatingCondition`:允许使用 EndpointSlice 的 `terminating` 和 `serving` 状况字段。 - `ExpandCSIVolumes`: 启用扩展 CSI 卷。 - `ExpandedDNSConfig`: 在 kubelet 和 kube-apiserver 上启用后, - 允许更多的 DNS 搜索域和搜索域列表。 参阅 + 允许使用更多的 DNS 搜索域和搜索域列表。此功能特性需要容器运行时 + (Containerd:v1.5.6 或更高,CRI-O:v1.22 或更高)的支持。参阅 [扩展 DNS 配置](/zh/docs/concepts/services-networking/dns-pod-service/#expanded-dns-configuration). - `ExpandInUsePersistentVolumes`:启用扩充使用中的 PVC 的尺寸。请查阅 [调整使用中的 PersistentVolumeClaim 的大小](/zh/docs/concepts/storage/persistent-volumes/#resizing-an-in-use-persistentvolumeclaim)。 @@ -1089,16 +1204,29 @@ Each feature gate is designed for enabling/disabling a specific feature: 这适用于使用其他主机名字空间、主机安装的容器,或具有特权或使用特定的非名字空间功能 (例如 MKNODE、SYS_MODULE 等)的容器。 如果在 Docker 守护程序中启用了用户名字空间重新映射,则启用此选项。 -- `ExternalPolicyForExternalIP`: 修复 ExternalPolicyForExternalIP 没有应用于 Service ExternalIPs 的 bug。 +- `ExternalPolicyForExternalIP`: 修复 ExternalPolicyForExternalIP 没有应用于 + Service ExternalIPs 的缺陷。 - `GCERegionalPersistentDisk`:在 GCE 上启用带地理区域信息的 PD 特性。 - `GenericEphemeralVolume`:启用支持临时的内联卷,这些卷支持普通卷 - (可以由第三方存储供应商提供、存储容量跟踪、从快照还原等等)的所有功能。请参见 - [临时卷](/zh/docs/concepts/storage/ephemeral-volumes/)。 + (可以由第三方存储供应商提供、存储容量跟踪、从快照还原等等)的所有功能。 + 请参见[临时卷](/zh/docs/concepts/storage/ephemeral-volumes/)。 - `GracefulNodeShutdown`:在 kubelet 中启用体面地关闭节点的支持。 - 在系统关闭时,kubelet 会尝试监测该事件并体面地终止节点上运行的 Pods。参阅 - [体面地关闭节点](/zh/docs/concepts/architecture/nodes/#graceful-node-shutdown) + 在系统关闭时,kubelet 会尝试监测该事件并体面地终止节点上运行的 Pods。 + 参阅[体面地关闭节点](/zh/docs/concepts/architecture/nodes/#graceful-node-shutdown) 以了解更多细节。 +- `GracefulNodeShutdownBasedOnPodPriority`:允许 kubelet 在体面终止节点时检查 + Pod 的优先级。 +- `GRPCContainerProbe`:为 LivenessProbe、ReadinessProbe、StartupProbe 启用 gRPC 探针。 + 参阅[配置活跃态、就绪态和启动探针](/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-grpc-liveness-probe)。 +- `HonorPVReclaimPolicy`:无论 PV 和 PVC 的删除顺序如何,当持久卷申领的策略为 `Delete` + 时,确保这种策略得到处理。 + - `HPAContainerMetrics`:允许 `HorizontalPodAutoscaler` 基于目标 Pods 中各容器 的度量值来执行扩缩操作。 @@ -1116,11 +1247,11 @@ Each feature gate is designed for enabling/disabling a specific feature: [巨页资源](/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)。 +- `IdentifyPodOS`:允许设置 Pod 的 OS 字段。这一设置有助于在 API 服务器准入期间确定性地辨识 + Pod 的 OS。在 Kubernetes {{< skew currentVersion >}} 中,`pod.spec.os.name` 可选的值包括 + `windows` 和 `linux`。 +- `ImmutableEphemeralVolumes`:允许将各个 Secret 和 ConfigMap 标记为不可变更的, + 以提高安全性和性能。 +- `InTreePluginAWSUnregister`: 在 kubelet 和卷控制器上关闭注册 aws-ebs 内嵌插件。 +- `InTreePluginAzureDiskUnregister`: 在 kubelet 和卷控制器上关闭注册 azuredisk 内嵌插件。 +- `InTreePluginAzureFileUnregister`: 在 kubelet 和卷控制器上关闭注册 azurefile 内嵌插件。 + +- `InTreePluginGCEUnregister`: 在 kubelet 和卷控制器上关闭注册 gce-pd 内嵌插件。 +- `InTreePluginOpenStackUnregister`: 在 kubelet 和卷控制器上关闭注册 OpenStack cinder 内嵌插件。 +- `InTreePluginPortworxUnregister`: 在 kubelet 和卷控制器上关闭注册 Portworx 内嵌插件。 +- `InTreePluginRBDUnregister`: 在 kubelet 和卷控制器上关闭注册 RBD 内嵌插件。 + +- `InTreePluginvSphereUnregister`: 在 kubelet 和卷控制器上关闭注册 vSphere 内嵌插件。 +- `IndexedJob`:允许 [Job](/zh/docs/concepts/workloads/controllers/job/) + 控制器根据完成索引来管理 Pod 完成。 +- `IngressClassNamespacedParams`:允许在 `IngressClass` 资源中引用命名空间范围的参数。 + 该特性增加了两个字段 —— `scope`、`namespace` 到 `IngressClass.spec.parameters`。 +- `Initializers`: 使用 Initializers 准入插件允许异步协调对象创建。 + +- `IPv6DualStack`:启用[双协议栈](/zh/docs/concepts/services-networking/dual-stack/) + 以支持 IPv6。 +- `JobMutableNodeSchedulingDirectives`:允许在 [Job](/docs/concepts/workloads/controllers/job) + 的 Pod 模板中更新节点调度指令。 +- `JobReadyPods`:允许跟踪[状况](/zh/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions)为 + `Ready` 的 Pod 的个数。`Ready` 的 Pod 记录在 + [Job](/zh/docs/concepts/workloads/controllers/job) 对象的 + [status](/docs/reference/kubernetes-api/workload-resources/job-v1/#JobStatus) 字段中。 + +- `JobTrackingWithFinalizers`: 启用跟踪 [Job](/zh/docs/concepts/workloads/controllers/job) + 完成情况,而不是永远从集群剩余 Pod 来获取信息判断完成情况。Job 控制器使用 + Pod finalizers 和 Job 状态中的一个字段来跟踪已完成的 Pod 以计算完成。 +- `KubeletConfigFile`:启用从使用配置文件指定的文件中加载 kubelet 配置。 + 有关更多详细信息,请参见 + [通过配置文件设置 kubelet 参数](/zh/docs/tasks/administer-cluster/kubelet-config-file/)。 + -- `HyperVContainer`:为 Windows 容器启用 - [Hyper-V 隔离](https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/hyperv-container)。 -- `ImmutableEphemeralVolumes`:允许将各个 Secret 和 ConfigMap 标记为不可变更的, - 以提高安全性和性能。 -- `InTreePluginAWSUnregister`: 在 kubelet 和 卷控制器上关闭注册 aws-ebs 内嵌插件。 -- `InTreePluginAzureDiskUnregister`: 在 kubelet 和 卷控制器上关闭注册 azuredisk 内嵌插件。 -- `InTreePluginAzureFileUnregister`: 在 kubelet 和 卷控制器上关闭注册 azurefile 内嵌插件。 -- `InTreePluginGCEUnregister`: 在 kubelet 和 卷控制器上关闭注册 gce-pd 内嵌插件。 -- `InTreePluginOpenStackUnregister`: 在 kubelet 和 卷控制器上关闭注册 OpenStack cinder 内嵌插件。 -- `InTreePluginvSphereUnregister`: 在 kubelet 和 卷控制器上关闭注册 vSphere 内嵌插件。 -- `IndexedJob`:允许 [Job](/zh/docs/concepts/workloads/controllers/job/) 控制器按每个完成的索引去管理 Pod 完成。 -- `IngressClassNamespacedParams`:允许引用命名空间范围的参数引用 `IngressClass`资源。该特性增加了两个字段 —— `Scope` 和 `Namespace` 到 `IngressClass.spec.parameters`。 -- `Initializers`: 使用 Initializers 准入插件允许异步协调对象创建。 -- `IPv6DualStack`:启用 [双协议栈](/zh/docs/concepts/services-networking/dual-stack/) - 以支持 IPv6。 -- `JobTrackingWithFinalizers`: 启用跟踪 [Job](/zh/docs/concepts/workloads/controllers/job) - 完成情况,而不是永远从集群剩余 pod 来获取信息判断完成情况。Job 控制器使 - 用 Pod finalizers 和 Job 状态中的一个字段来跟踪已完成的 Pod 以计算完成。 -- `KubeletConfigFile`:启用从使用配置文件指定的文件中加载 kubelet 配置。 - 有关更多详细信息,请参见 - [通过配置文件设置 kubelet 参数](/zh/docs/tasks/administer-cluster/kubelet-config-file/)。 -- `KubeletCredentialProviders`:允许使用 kubelet exec 凭据提供程序来设置 - 镜像拉取凭据。 -- `KubeletInUserNamespace`: 支持在 {{}} 里运行 kubelet 。 - 请参见 [使用非 Root 用户来运行 Kubernetes 节点组件](/zh/docs/tasks/administer-cluster/kubelet-in-userns/). -- `KubeletPluginsWatcher`:启用基于探针的插件监视应用程序,使 kubelet 能够发现 - 类似 [CSI 卷驱动程序](/zh/docs/concepts/storage/volumes/#csi)这类插件。 +- `KubeletCredentialProviders`:允许使用 kubelet exec 凭据提供程序来设置镜像拉取凭据。 +- `KubeletInUserNamespace`: 支持在{{}} + 里运行 kubelet 。 + 请参见[使用非 Root 用户来运行 Kubernetes 节点组件](/zh/docs/tasks/administer-cluster/kubelet-in-userns/)。 +- `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)。 -- `KubeletPodResourcesGetAllocatable`:启用 kubelet 的 pod 资源 - 的 `GetAllocatableResources` 功能。 - 该 API 增强了[资源分配报告](/zh/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#monitoring-device-plugin-resources) +- `KubeletPodResources`:启用 kubelet 上 Pod 资源 GRPC 端点。更多详细信息, + 请参见[支持设备监控](https://github.com/kubernetes/enhancements/blob/master/keps/sig-node/compute-device-assignment.md)。 +- `KubeletPodResourcesGetAllocatable`:启用 kubelet 的 pod 资源的 + `GetAllocatableResources` 功能。 + 该 API 增强了[资源分配报告](/zh/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/#monitoring-device-plugin-resources) 包含有关可分配资源的信息,使客户端能够正确跟踪节点上的可用计算资源。 -- `LegacyNodeRoleBehavior`:禁用此门控时,服务负载均衡器中和节点干扰中的原先行为 - 会忽略 `node-role.kubernetes.io/master` 标签,使用 `NodeDisruptionExclusion` 和 +- `LegacyNodeRoleBehavior`:禁用此门控时,服务负载均衡器中和节点干扰中的原先行为会忽略 + `node-role.kubernetes.io/master` 标签,使用 `NodeDisruptionExclusion` 和 `ServiceNodeExclusion` 对应特性所提供的标签。 +- `LocalStorageCapacityIsolation`:允许使用 + [本地临时存储](/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)的存储消耗而不是遍历文件系统, + 以此获得更好的性能和准确性。 + -- `LocalStorageCapacityIsolation`:允许使用 - [本地临时存储](/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)的存储消耗 - 而不是遍历文件系统,以此获得更好的性能和准确性。 -- `LogarithmicScaleDown`:启用 Pod 的半随机(semi-random)选择,控制器将根据 Pod 时间戳的对数桶按比例缩小去驱逐 Pod。 +- `LogarithmicScaleDown`:启用 Pod 的半随机(semi-random)选择,控制器将根据 Pod + 时间戳的对数桶按比例缩小去驱逐 Pod。 - `MemoryManager`: 允许基于 NUMA 拓扑为容器设置内存亲和性。 - `MemoryQoS`: 使用 cgroup v2 内存控制器在 pod / 容器上启用内存保护和使用限制。 -- `MixedProtocolLBService`:允许在同一 `LoadBalancer` 类型的 Service 实例中使用不同 - 的协议。 +- `MixedProtocolLBService`:允许在同一 `LoadBalancer` 类型的 Service 实例中使用不同的协议。 - `MountContainers`:允许使用主机上的工具容器作为卷挂载程序。 +- `MountPropagation`:启用将一个容器安装的共享卷共享到其他容器或 Pod。 + 更多详细信息,请参见[挂载传播](/zh/docs/concepts/storage/volumes/#mount-propagation)。 +- `NamespaceDefaultLabelName`:配置 API 服务器以在所有名字空间上设置一个不可变的 + {{< glossary_tooltip text="标签" term_id="label" >}} `kubernetes.io/metadata.name`, + 也包括名字空间。 +- `NodeDisruptionExclusion`:启用节点标签 `node.kubernetes.io/exclude-disruption`, + 以防止在可用区发生故障期间驱逐节点。 +- `NodeLease`:启用新的 Lease(租期)API 以报告节点心跳,可用作节点运行状况信号。 + +- `NodeSwap`: 启用 kubelet 为节点上的 Kubernetes 工作负载分配交换内存的能力。 + 必须将 `KubeletConfiguration.failSwapOn` 设置为 false 的情况下才能使用。 + 更多详细信息,请参见[交换内存](/zh/docs/concepts/architecture/nodes/#swap-memory)。 +- `NonPreemptingPriority`:为 PriorityClass 和 Pod 启用 `preemptionPolicy` 选项。 +- `OpenAPIEnums`:允许在从 API 服务器返回的 spec 中填充 OpenAPI 模式的 "enum" 字段。 +- `OpenAPIV3`:允许 API 服务器发布 OpenAPI V3。 +- `PVCProtection`:启用防止仍被某 Pod 使用的 PVC 被删除的特性。 + -- `MountPropagation`:启用将一个容器安装的共享卷共享到其他容器或 Pod。 - 更多详细信息,请参见[挂载传播](/zh/docs/concepts/storage/volumes/#mount-propagation)。 -- `NamespaceDefaultLabelName`:配置 API 服务器以在所有名字空间上设置一个不可变的 {{< glossary_tooltip text="label" term_id="label" >}} - `kubernetes.io/metadata.name`,也包括名字空间。 -- `NodeDisruptionExclusion`:启用节点标签 `node.kubernetes.io/exclude-disruption`, - 以防止在可用区发生故障期间驱逐节点。 -- `NodeLease`:启用新的 Lease(租期)API 以报告节点心跳,可用作节点运行状况信号。 -- `NodeSwap`: 启用 kubelet 为节点上的 Kubernetes 工作负载分配交换内存的能力。 - 必须将 `KubeletConfiguration.failSwapOn` 设置为 false 的情况下才能使用。 - 更多详细信息,请参见 [交换内存](/zh/docs/concepts/architecture/nodes/#swap-memory)。 -- `NonPreemptingPriority`:为 PriorityClass 和 Pod 启用 `preemptionPolicy` 选项。 -- `PVCProtection`:启用防止仍被某 Pod 使用的 PVC 被删除的特性。 -- `PodDeletionCost`:启用 [Pod 删除成本](/zh/docs/concepts/workloads/controllers/replicaset/#pod-deletion-cost) 功能。 +- `PodDeletionCost`:启用 [Pod 删除成本](/zh/docs/concepts/workloads/controllers/replicaset/#pod-deletion-cost)功能。 该功能使用户可以影响 ReplicaSet 的降序顺序。 - `PersistentLocalVolumes`:允许在 Pod 中使用 `local(本地)` 卷类型。 如果请求 `local` 卷,则必须指定 Pod 亲和性属性。 - `PodDisruptionBudget`:启用 [PodDisruptionBudget](/zh/docs/tasks/run-application/configure-pdb/) 特性。 - `PodAffinityNamespaceSelector`:启用 [Pod 亲和性名称空间选择器](/zh/docs/concepts/scheduling-eviction/assign-pod-node/#namespace-selector) - 和 [CrossNamespacePodAffinity](/zh/docs/concepts/policy/resource-quotas/#cross-namespace-pod-affinity-quota) 资源配额功能。 + 和 [CrossNamespacePodAffinity](/zh/docs/concepts/policy/resource-quotas/#cross-namespace-pod-affinity-quota) + 资源配额功能。 - `PodOverhead`:启用 [PodOverhead](/zh/docs/concepts/scheduling-eviction/pod-overhead/) 特性以考虑 Pod 开销。 +- `PodPriority`:启用根据[优先级](/zh/docs/concepts/scheduling-eviction/pod-priority-preemption/) + 的 Pod 调度和抢占。 +- `PodReadinessGates`:启用 `podReadinessGate` 字段的设置以扩展 Pod 准备状态评估。 + 有关更多详细信息,请参见 + [Pod 就绪状态判别](/zh/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate)。 +- `PodSecurity`: 开启 `PodSecurity` 准入控制插件。 +- `PodShareProcessNamespace`:在 Pod 中启用 `shareProcessNamespace` 的设置, + 以便在 Pod 中运行的容器之间共享同一进程名字空间。更多详细信息,请参见 + [在 Pod 中的容器间共享同一进程名字空间](/zh/docs/tasks/configure-pod-container/share-process-namespace/)。 +- `PreferNominatedNode`: 这个标志告诉调度器在循环遍历集群中的所有其他节点之前, + 是否首先检查指定的节点。 + -- `PodPriority`:根据 [优先级](/zh/docs/concepts/scheduling-eviction/pod-priority-preemption/) - 启用 Pod 的调度和抢占。 -- `PodReadinessGates`:启用 `podReadinessGate` 字段的设置以扩展 Pod 准备状态评估。 - 有关更多详细信息,请参见 - [Pod 就绪状态判别](/zh/docs/concepts/workloads/pods/pod-lifecycle/#pod-readiness-gate)。 -- `PodSecurity`: 开启 `PodSecurity` 准入控制插件。 -- `PodShareProcessNamespace`:在 Pod 中启用 `shareProcessNamespace` 的设置, - 以便在 Pod 中运行的容器之间共享同一进程名字空间。更多详细信息,请参见 - [在 Pod 中的容器间共享同一进程名字空间](/zh/docs/tasks/configure-pod-container/share-process-namespace/)。 -- `PreferNominatedNode`: 这个标志告诉调度器在循环遍历集群中的所有其他节点 - 之前,是否首先检查指定的节点。 - `ProbeTerminationGracePeriod`:在 Pod 上 启用 [设置探测器级别 `terminationGracePeriodSeconds`](/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#probe-level-terminationgraceperiodseconds)。 - 有关更多信息,请参见 [enhancement proposal](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period)。 -- `ProcMountType`:允许容器通过设置 SecurityContext 的 `procMount` 字段来控制 - 对 proc 文件系统的挂载方式。 + 有关更多信息,请参见[改进提案](https://github.com/kubernetes/enhancements/tree/master/keps/sig-node/2238-liveness-probe-grace-period)。 +- `ProcMountType`:允许容器通过设置 SecurityContext 的 `procMount` 字段来控制对 + proc 文件系统的挂载方式。 - `ProxyTerminatingEndpoints`: 当 `ExternalTrafficPolicy=Local` 时, 允许 kube-proxy 来处理终止过程中的端点。 - `QOSReserved`:允许在 QoS 级别进行资源预留,以防止处于较低 QoS 级别的 Pod 突发进入处于较高 QoS 级别的请求资源(目前仅适用于内存)。 - `ReadWriteOncePod`: 允许使用 `ReadWriteOncePod` 访问模式的 PersistentVolume。 -- `RemainingItemCount`:允许 API 服务器在 - [分块列表请求](/zh/docs/reference/using-api/api-concepts/#retrieving-large-results-sets-in-chunks) - 的响应中显示剩余条目的个数。 +- `RecoverVolumeExpansionFailure`:允许用户编辑其 PVC 来缩小其尺寸, + 从而从之前卷扩容发生的失败中恢复。更多细节可参见 + [从卷扩容失效中恢复](/zh/docs/concepts/storage/persistent-volumes/#recovering-from-failure-when-expanding-volumes)。 +- `RemainingItemCount`:允许 API 服务器在 + [分块列表请求](/zh/docs/reference/using-api/api-concepts/#retrieving-large-results-sets-in-chunks) + 的响应中显示剩余条目的个数。 +- `RemoveSelfLink`:将 ObjectMeta 和 ListMeta 中的 `selfLink` 字段废弃并删除。 +- `RequestManagement`:允许在每个 API 服务器上通过优先级和公平性管理请求并发性。 + 自 1.17 以来已被 `APIPriorityAndFairness` 替代。 + -- `RemoveSelfLink`:将 ObjectMeta 和 ListMeta 中的 `selfLink` 字段废弃并删除。 -- `RequestManagement`:允许在每个 API 服务器上通过优先级和公平性管理请求并发性。 - 自 1.17 以来已被 `APIPriorityAndFairness` 弃用。 - `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) + 的 {{< 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 证书的轮换。 更多详细信息,请参见 @@ -1392,17 +1574,28 @@ Each feature gate is designed for enabling/disabling a specific feature: 更多详细信息,请参见 [kubelet 配置](/zh/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/#kubelet-configuration)。 - `RunAsGroup`:启用对容器初始化过程中设置的主要组 ID 的控制。 -- `RuntimeClass`:启用 [RuntimeClass](/zh/docs/concepts/containers/runtime-class/) - 特性用于选择容器运行时配置。 -- `ScheduleDaemonSetPods`:启用 DaemonSet Pods 由默认调度程序而不是 - DaemonSet 控制器进行调度。 +- `RuntimeClass`:启用 [RuntimeClass](/zh/docs/concepts/containers/runtime-class/) + 特性用于选择容器运行时配置。 +- `ScheduleDaemonSetPods`:启用 DaemonSet Pods 由默认调度程序而不是 + DaemonSet 控制器进行调度。 +- `SCTPSupport`:在 Pod、Service、Endpoints、NetworkPolicy 定义中允许将 'SCTP' + 用作 `protocol` 值。 +- `SeccompDefault`: 允许将所有工作负载的默认 seccomp 配置文件为 `RuntimeDefault`。 + seccomp 配置在 Pod 或者容器的 `securityContext` 字段中指定。 +- `SelectorIndex`: 允许使用 API 服务器的 watch 缓存中基于标签和字段的索引来加速 list 操作。 + -- `SCTPSupport`:在 Pod、Service、Endpoints、NetworkPolicy 定义中 - 允许将 _SCTP_ 用作 `protocol` 值。 -- `SeccompDefault`: 允许将所有工作负载的默认 seccomp 配置文件为 `RuntimeDefault`。 - seccomp 配置在 Pod 或者容器的 `securityContext` 字段中指定。 -- `SelectorIndex`: 允许在 API 服务器 watch 的缓存中基于标签和字段的索引来加速 list 的操作。 - `ServerSideApply`:在 API 服务器上启用 [服务器端应用(SSA)](/zh/docs/reference/using-api/server-side-apply/) 。 - `ServiceAccountIssuerDiscovery`:在 API 服务器中为服务帐户颁发者启用 OIDC 发现端点 @@ -1429,10 +1614,10 @@ Each feature gate is designed for enabling/disabling a specific feature: - `ServiceAppProtocol`:为 Service 和 Endpoints 启用 `appProtocol` 字段。 - `ServiceInternalTrafficPolicy`:为服务启用 `internalTrafficPolicy` 字段。 - `ServiceLBNodePortControl`:为服务启用 `allocateLoadBalancerNodePorts` 字段。 - `ServiceLoadBalancerClass`: 为服务启用 `loadBalancerClass` 字段。 - 有关更多信息,请参见 [负载均衡器类的定义 implementation](/zh/docs/concepts/services-networking/service/#load-balancer-class)。 -- `ServiceLoadBalancerFinalizer`:为服务负载均衡启用终结器(finalizers)保护。 +- `ServiceLoadBalancerClass`: 为服务启用 `loadBalancerClass` 字段。 + 有关更多信息,请参见[指定负载均衡器实现类](/zh/docs/concepts/services-networking/service/#load-balancer-class)。 +- `ServiceLoadBalancerFinalizer`:为服务负载均衡启用终结器(finalizers)保护。 +- `ServiceNodeExclusion`:启用从云提供商创建的负载均衡中排除节点。 + 如果节点标记有 `node.kubernetes.io/exclude-from-external-load-balancers`, + 标签,则可以排除该节点。 +- `ServiceTopology`:启用服务拓扑可以让一个服务基于集群的节点拓扑进行流量路由。 + 有关更多详细信息,请参见[服务拓扑](/zh/docs/concepts/services-networking/service-topology/)。 + -- `ServiceNodeExclusion`:启用从云提供商创建的负载均衡中排除节点。 - 如果节点标记有 `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)。 -- `SizeMemoryBackedVolumes`:允许 kubelet 检查基于内存制备的卷的尺寸约束 - (目前主要针对 `emptyDir` 卷)。 - +- `SetHostnameAsFQDN`:启用将全限定域名(FQDN)设置为 Pod 主机名的功能。 + 请参见[为 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)。 +- `StatefulSetMinReadySeconds`: 允许 StatefulSet 控制器采纳 `minReadySeconds` 设置。 + -- `StartupProbe`:在 kubelet 中启用 - [启动探针](/zh/docs/concepts/workloads/pods/pod-lifecycle/#when-should-you-use-a-startup-probe)。 -- `StatefulSetMinReadySeconds`: 允许 StatefulSet 控制器采纳 `minReadySeconds` 设置。 - `StorageObjectInUseProtection`:如果仍在使用 PersistentVolume 或 PersistentVolumeClaim 对象,则将其删除操作推迟。 - `StorageVersionAPI`: 启用 @@ -1492,28 +1681,31 @@ Each feature gate is designed for enabling/disabling a specific feature: will be reserved for the system as a whole and for Kubernetes system daemons respectively. - `SupportPodPidsLimit`: Enable the support to limiting PIDs in Pods. +--> +- `SupportIPVSProxyMode`:启用使用 IPVS 提供集群内服务负载平衡。更多详细信息,请参见 + [服务代理](/zh/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies)。 +- `SupportNodePidsLimit`:启用支持,限制节点上的 PID 用量。 + `--system-reserved` 和 `--kube-reserved` 中的参数 `pid=<数值>` 可以分别用来 + 设定为整个系统所预留的进程 ID 个数和为 Kubernetes 系统守护进程预留的进程 ID 个数。 +- `SupportPodPidsLimit`:启用支持限制 Pod 中的进程 PID。 + -- `SupportIPVSProxyMode`:启用使用 IPVS 提供内服务负载平衡。更多详细信息,请参见 - [服务代理](/zh/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies)。 -- `SupportNodePidsLimit`:启用支持,限制节点上的 PID 用量。 - `--system-reserved` 和 `--kube-reserved` 中的参数 `pid=<数值>` 可以分别用来 - 设定为整个系统所预留的进程 ID 个数和为 Kubernetes 系统守护进程预留的进程 - ID 个数。 -- `SupportPodPidsLimit`:启用支持限制 Pod 中的进程 PID。 -- `SuspendJob`: 启用支持以暂停和恢复作业。 更多详细信息,请参见 - [Jobs 文档](zh//docs/concepts/workloads/controllers/job/)。 -- `Sysctls`:允许为每个 Pod 设置的名字空间内核参数(sysctls)。 - 更多详细信息,请参见 [sysctls](/zh/docs/tasks/administer-cluster/sysctl-cluster/)。 - +- `SuspendJob`: 启用支持以暂停和恢复作业。 更多详细信息,请参见 + [Jobs 文档](/zh/docs/concepts/workloads/controllers/job/)。 +- `Sysctls`:允许为每个 Pod 设置的名字空间内核参数(sysctls)。 + 更多详细信息,请参见 [sysctls](/zh/docs/tasks/administer-cluster/sysctl-cluster/)。 +- `TTLAfterFinished`:资源完成执行后,允许 + [TTL 控制器](/zh/docs/concepts/workloads/controllers/ttlafterfinished/)清理资源。 + -- `TTLAfterFinished`:资源完成执行后,允许 - [TTL 控制器](/zh/docs/concepts/workloads/controllers/ttlafterfinished/)清理资源。 - `TaintBasedEvictions`:根据节点上的污点和 Pod 上的容忍度启用从节点驱逐 Pod 的特性。 更多详细信息可参见[污点和容忍度](/zh/docs/concepts/scheduling-eviction/taint-and-toleration/)。 - `TaintNodesByCondition`:根据[节点状况](/zh/docs/concepts/scheduling-eviction/taint-and-toleration/) @@ -1541,14 +1724,25 @@ Each feature gate is designed for enabling/disabling a specific feature: - `TokenRequestProjection`:启用通过 [`projected` 卷](/zh/docs/concepts/storage/volumes/#projected) 将服务帐户令牌注入到 Pod 中的特性。 -- `TopologyAwareHints`: 在 EndpointSlices 中启用基于拓扑提示的拓扑感知路由。 - 更多详细信息可参见[Topology Aware Hints](/zh/docs/concepts/services-networking/topology-aware-hints/) -- `TopologyManager`:启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 - 详见[控制节点上的拓扑管理策略](/zh/docs/tasks/administer-cluster/topology-manager/)。 +- `TopologyAwareHints`: 在 EndpointSlices 中启用基于拓扑提示的拓扑感知路由。 + 更多详细信息可参见[拓扑感知提示](/zh/docs/concepts/services-networking/topology-aware-hints/)。 +- `TopologyManager`:启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 + 详见[控制节点上的拓扑管理策略](/zh/docs/tasks/administer-cluster/topology-manager/)。 +- `ValidateProxyRedirects`: 这个标志控制 API 服务器是否应该验证只跟随到相同的主机的重定向。 + 仅在启用 `StreamingProxyRedirects` 标志时被使用。 + -- `ValidateProxyRedirects`: 这个标志控制 API 服务器是否应该验证只跟随到相同的主机的重定向。 - 仅在启用 `StreamingProxyRedirects` 标志时被使用。 - `VolumeCapacityPriority`: 基于可用 PV 容量的拓扑,启用对不同节点的优先级支持。 - `VolumePVCDataSource`:启用对将现有 PVC 指定数据源的支持。 - `VolumeScheduling`:启用卷拓扑感知调度,并使 PersistentVolumeClaim(PVC) @@ -1575,10 +1767,17 @@ Each feature gate is designed for enabling/disabling a specific feature: - `WatchBookmark`: Enable support for watch bookmark events. - `WinDSR`: Allows kube-proxy to create DSR loadbalancers for Windows. - `WinOverlay`: Allows kube-proxy to run in overlay mode for Windows. +--> +- `VolumeSubpathEnvExpansion`:启用 `subPathExpr` 字段用于在 `subPath` 中展开环境变量。 +- `WarningHeaders`:允许在 API 响应中发送警告头部。 +- `WatchBookmark`:启用对 watch 操作中 bookmark 事件的支持。 +- `WinDSR`:允许 kube-proxy 为 Windows 创建 DSR 负载均衡。 +- `WinOverlay`:允许在 Windows 的覆盖网络模式下运行 kube-proxy 。 + -- `VolumeSubpathEnvExpansion`:启用 `subPathExpr` 字段用于将环境变量在 `subPath` - 中展开。 -- `WarningHeaders`:允许在 API 响应中发送警告头部。 -- `WatchBookmark`:启用对 watch 操作中 bookmark 事件的支持。 -- `WinDSR`:允许 kube-proxy 为 Windows 创建 DSR 负载均衡。 -- `WinOverlay`:允许 kube-proxy 在 Windows 的覆盖网络模式下运行。 - `WindowsEndpointSliceProxying`: 当启用时,运行在 Windows 上的 kube-proxy 将使用 EndpointSlices 而不是 Endpoints 作为主要数据源,从而实现可伸缩性和并改进性能。 - 详情请参见[启用端点切片](/zh/docs/tasks/administer-cluster/enabling-endpointslices/). + 详情请参见[启用端点切片](/zh/docs/concepts/services-networking/endpoint-slices/). - `WindowsGMSA`:允许将 GMSA 凭据规范从 Pod 传递到容器运行时。 - `WindowsHostProcessContainers`: 启用对 Windows HostProcess 容器的支持。 - `WindowsRunAsUserName`:提供使用非默认用户在 Windows 容器中运行应用程序的支持。