特性门控

本页详述了管理员可以在不同的 Kubernetes 组件上指定的各种特性门控。

关于特性各个阶段的说明,请参见特性阶段

概述

特性门控是描述 Kubernetes 特性的一组键值对。您可以在 Kubernetes 的每一个组件中使用 --feature-gates flag 来启用或禁用这些特性。

每个 Kubernetes 组件都支持启用或禁用与该组件相关的一组特性门控。 使用 -h 参数来查看所有组件支持的完整特性门控。 要为诸如 kubelet 之类的组件设置特性门控,请使用 --feature-gates 参数,并向其传递一组特性:

--feature-gates="...,DynamicKubeletConfig=true"

下表总结了在不同的 Kubernetes 组件上可以设置的特性门控。

  • 引入特性或更改其发布阶段后,"Since" 列将包含 Kubernetes 版本。
  • "Until" 列(如果不为空)包含最后一个 Kubernetes 版本,您仍可以在其中使用特性门控。
  • 如果某个特性处于 Alpha 或 Beta 状态,您可以在 Alpha 和 Beta 特性门控表中找到该特性。
  • 如果某个特性处于稳定状态,您可以在毕业和废弃特性门控表.中找到该特性的所有阶段。
  • 毕业和废弃特性门控表 还列出了废弃的和已被移除的特性。

Alpha 和 Beta 的特性门控

处于 Alpha 或 Beta 状态的特性门控
特性 默认值 状态 开始(Since) 结束(Until)
AnyVolumeDataSource false Alpha 1.18
APIListChunking false Alpha 1.8 1.8
APIListChunking true Beta 1.9
APIPriorityAndFairness false Alpha 1.17
APIResponseCompression false Alpha 1.7
AppArmor true Beta 1.4
BalanceAttachedNodeVolumes false Alpha 1.11
BoundServiceAccountTokenVolume false Alpha 1.13
CPUManager false Alpha 1.8 1.9
CPUManager true Beta 1.10
CRIContainerLogRotation false Alpha 1.10 1.10
CRIContainerLogRotation true Beta 1.11
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
CSIMigrationAWSComplete false Alpha 1.17
CSIMigrationAzureDisk false Alpha 1.15 1.18
CSIMigrationAzureDisk false Beta 1.19
CSIMigrationAzureDiskComplete false Alpha 1.17
CSIMigrationAzureFile false Alpha 1.15
CSIMigrationAzureFileComplete false Alpha 1.17
CSIMigrationGCE false Alpha 1.14 1.16
CSIMigrationGCE false Beta 1.17
CSIMigrationGCEComplete false Alpha 1.17
CSIMigrationOpenStack false Alpha 1.14
CSIMigrationOpenStackComplete false Alpha 1.17
CSIMigrationvSphere false Beta 1.19
CSIMigrationvSphereComplete false Beta 1.19
CSIStorageCapacity false Alpha 1.19
CSIVolumeFSGroupPolicy false Alpha 1.19
ConfigurableFSGroupPolicy false Alpha 1.18
CustomCPUCFSQuotaPeriod false Alpha 1.12
DefaultPodTopologySpread false Alpha 1.19
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
DynamicKubeletConfig false Alpha 1.4 1.10
DynamicKubeletConfig true Beta 1.11
EndpointSlice false Alpha 1.16 1.16
EndpointSlice false Beta 1.17
EndpointSlice true Beta 1.18
EndpointSliceProxying false Alpha 1.18 1.18
EndpointSliceProxying true Beta 1.19
EphemeralContainers false Alpha 1.16
ExpandCSIVolumes false Alpha 1.14 1.15
ExpandCSIVolumes true Beta 1.16
ExpandInUsePersistentVolumes false Alpha 1.11 1.14
ExpandInUsePersistentVolumes true Beta 1.15
ExpandPersistentVolumes false Alpha 1.8 1.10
ExpandPersistentVolumes true Beta 1.11
ExperimentalHostUserNamespaceDefaulting false Beta 1.5
GenericEphemeralVolume false Alpha 1.19
HPAScaleToZero false Alpha 1.16
HugePageStorageMediumSize false Alpha 1.18 1.18
HugePageStorageMediumSize true Beta 1.19
HyperVContainer false Alpha 1.10
ImmutableEphemeralVolumes false Alpha 1.18 1.18
ImmutableEphemeralVolumes true Beta 1.19
IPv6DualStack false Alpha 1.16
KubeletPodResources false Alpha 1.13 1.14
KubeletPodResources true Beta 1.15
LegacyNodeRoleBehavior true Alpha 1.16
LocalStorageCapacityIsolation false Alpha 1.7 1.9
LocalStorageCapacityIsolation true Beta 1.10
LocalStorageCapacityIsolationFSQuotaMonitoring false Alpha 1.15
MountContainers false Alpha 1.9
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 -
ProcMountType false Alpha 1.12
QOSReserved false Alpha 1.11
RemainingItemCount false Alpha 1.15
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
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
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
WinDSR false Alpha 1.14
WinOverlay false Alpha 1.14

已毕业和不推荐使用的特性门控

已毕业或不推荐使用的特性门控
特性 默认值 状态 开始(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 -
BlockVolume false Alpha 1.9 1.12
BlockVolume true Beta 1.13 1.17
BlockVolume true GA 1.18 -
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
CSINodeInfo false Alpha 1.12 1.13
CSINodeInfo true Beta 1.14 1.16
CSINodeInfo true GA 1.17
AttachVolumeLimit false Alpha 1.11 1.11
AttachVolumeLimit true Beta 1.12 1.16
AttachVolumeLimit true GA 1.17 -
CSIPersistentVolume false Alpha 1.9 1.9
CSIPersistentVolume true Beta 1.10 1.12
CSIPersistentVolume true GA 1.13 -
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 -
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 -
EnableEquivalenceClassCache false Alpha 1.8 1.14
EnableEquivalenceClassCache - Deprecated 1.15 -
ExperimentalCriticalPodAnnotation false Alpha 1.5 1.12
ExperimentalCriticalPodAnnotation false Deprecated 1.13 -
EvenPodsSpread false Alpha 1.16 1.17
EvenPodsSpread true Beta 1.18 1.18
EvenPodsSpread true GA 1.19 -
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 -
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 -
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 -
PersistentLocalVolumes false Alpha 1.7 1.9
PersistentLocalVolumes true Beta 1.10 1.13
PersistentLocalVolumes true GA 1.14 -
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 -
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 -
ResourceQuotaScopeSelectors false Alpha 1.11 1.11
ResourceQuotaScopeSelectors true Beta 1.12 1.16
ResourceQuotaScopeSelectors true GA 1.17 -
RotateKubeletClientCertificate true Beta 1.8 1.18
RotateKubeletClientCertificate true GA 1.19 -
ScheduleDaemonSetPods false Alpha 1.11 1.11
ScheduleDaemonSetPods true Beta 1.12 1.16
ScheduleDaemonSetPods true GA 1.17 -
ServiceLoadBalancerFinalizer false Alpha 1.15 1.15
ServiceLoadBalancerFinalizer true Beta 1.16 1.16
ServiceLoadBalancerFinalizer true GA 1.17 -
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.18
StreamingProxyRedirects - Deprecated 1.19 -
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 -
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 -
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 -
VolumeSubpathEnvExpansion false Alpha 1.14 1.14
VolumeSubpathEnvExpansion true Beta 1.15 1.16
VolumeSubpathEnvExpansion true GA 1.17 -
WatchBookmark false Alpha 1.15 1.15
WatchBookmark true Beta 1.16 1.16
WatchBookmark true GA 1.17 -
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 -

使用特性

特性阶段

处于 AlphaBetaGA 阶段的特性。

Alpha 特性代表:

  • 默认禁用。
  • 可能有错误,启用此特性可能会导致错误。
  • 随时可能删除对此特性的支持,恕不另行通知。
  • 在以后的软件版本中,API 可能会以不兼容的方式更改,恕不另行通知。
  • 建议将其仅用于短期测试中,因为开启特性会增加错误的风险,并且缺乏长期支持。

Beta 特性代表:

  • 默认禁用。
  • 该特性已经经过良好测试。启用该特性是安全的。
  • 尽管详细信息可能会更改,但不会放弃对整体特性的支持。
  • 对象的架构或语义可能会在随后的 Beta 或稳定版本中以不兼容的方式更改。当发生这种情况时,我们将提供迁移到下一版本的说明。此特性可能需要删除、编辑和重新创建 API 对象。编辑过程可能需要慎重操作,因为这可能会导致依赖该特性的应用程序停机。
  • 推荐仅用于非关键业务用途,因为在后续版本中可能会发生不兼容的更改。如果您具有多个可以独立升级的,则可以放宽此限制。
说明:

请试用 Beta 特性并提供相关反馈! 一旦特性结束 Beta 状态,我们就不太可能再对特性进行大幅修改。

General Availability (GA) 特性也称为 稳定 特性,GA 特性代表着:

  • 此特性会一直启用;你不能禁用它。
  • 不再需要相应的特性门控。
  • 对于许多后续版本,特性的稳定版本将出现在发行的软件中。

特性门控列表

每个特性门控均用于启用或禁用某个特定的特性:

  • Accelerators:使用 Docker 时启用 Nvidia GPU 支持。
  • AdvancedAuditing:启用高级审计功能
  • AffinityInAnnotations已弃用 ):启用 Pod 亲和或反亲和
  • AllowExtTrafficLocalEndpoints:启用服务用于将外部请求路由到节点本地终端。
  • AnyVolumeDataSource: 允许使用任何自定义的资源来做作为 PVC 中的 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 教程 获取详细信息。
  • AttachVolumeLimit:启用卷插件用于报告可连接到节点的卷数限制。有关更多详细信息,请参见 动态卷限制
  • BalanceAttachedNodeVolumes:包括要在调度时进行平衡资源分配的节点上的卷数。 调度器在决策时会优先考虑 CPU、内存利用率和卷数更近的节点。
  • BlockVolume:在 Pod 中启用原始块设备的定义和使用。有关更多详细信息,请参见 原始块卷支持
  • BoundServiceAccountTokenVolume:迁移 ServiceAccount 卷以使用由 ServiceAccountTokenVolumeProjection 组成的投射卷。集群管理员可以使用 serviceaccount_stale_tokens_total 度量值来监控依赖于扩展令牌的负载。如果没有这种类型的负载,你可以在启动 kube-apiserver 时 添加 --service-account-extend-token-expiration=false 参数关闭扩展令牌。查看 绑定服务账号令牌 获取更多详细信息。
  • ConfigurableFSGroupPolicy:在 Pod 中挂载卷时,允许用户为 fsGroup 配置卷访问权限和属主变更策略。请参见 为 Pod 配置卷访问权限和属主变更策略
  • CPUManager:启用容器级别的 CPU 亲和性支持,有关更多详细信息,请参见 CPU 管理策略
  • CRIContainerLogRotation:为 cri 容器运行时启用容器日志轮换。
  • CSIBlockVolume:启用外部 CSI 卷驱动程序用于支持块存储。有关更多详细信息,请参见 csi 原始块卷支持
  • CSIDriverRegistry:在 csi.storage.k8s.io 中启用与 CSIDriver API 对象有关的所有逻辑。
  • CSIInlineVolume:为 Pod 启用 CSI 内联卷支持。
  • CSIMigration:确保填充和转换逻辑能够将卷操作从内嵌插件路由到相应的预安装 CSI 插件。
  • CSIMigrationAWS:确保填充和转换逻辑能够将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 如果节点未安装和配置 EBS CSI 插件,则支持回退到内嵌 EBS 插件。 这需要启用 CSIMigration 特性标志。
  • CSIMigrationAWSComplete:停止在 kubelet 和卷控制器中注册 EBS 内嵌插件, 并启用 shims 和转换逻辑将卷操作从AWS-EBS 内嵌插件路由到 EBS CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAWS 特性标志,并在集群中的所有节点上安装和配置 EBS CSI 插件。
  • CSIMigrationAzureDisk:确保填充和转换逻辑能够将卷操作从 Azure 磁盘内嵌插件路由到 Azure 磁盘 CSI 插件。如果节点未安装和配置 AzureDisk CSI 插件, 支持回退到内建 AzureDisk 插件。这需要启用 CSIMigration 特性标志。
  • CSIMigrationAzureDiskComplete:停止在 kubelet 和卷控制器中注册 Azure 磁盘内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 Azure 磁盘内嵌插件路由到 AzureDisk CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureDisk 特性标志, 并在集群中的所有节点上安装和配置 AzureDisk CSI 插件。
  • 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 插件。 这需要启用 CSIMigration 特性标志。
  • CSIMigrationGCEComplete:停止在 kubelet 和卷控制器中注册 GCE-PD 内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationGCE 特性标志,并在集群中的所有节点上 安装和配置 PD CSI 插件。
  • CSIMigrationOpenStack:确保填充和转换逻辑能够将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。如果节点未安装和配置 Cinder CSI 插件,支持回退到内嵌 Cinder 插件。 这需要启用 CSIMigration 特性标志。
  • CSIMigrationOpenStackComplete:停止在 kubelet 和卷控制器中注册 Cinder 内嵌插件, 并启用 shims 和转换逻辑将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationOpenStack 特性标志,并在集群中的所有节点上 安装和配置 Cinder CSI 插件。
  • CSIMigrationvSphere: 启用 shims 和转换逻辑,将卷操作从 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(容器存储接口) 兼容卷插件配置的卷。
  • CSIStorageCapacity: 使 CSI 驱动程序可以发布存储容量信息,并使 Kubernetes 调度程序在调度 Pod 时使用该信息。参见 存储容量。 详情请参见 csi 卷类型
  • CSIVolumeFSGroupPolicy: 允许 CSIDrivers 使用 fsGroupPolicy 字段. 该字段能控制由 CSIDriver 创建的卷在挂载这些卷时是否支持卷所有权和权限修改。
  • CustomCPUCFSQuotaPeriod:使节点能够更改 CPUCFSQuotaPeriod。
  • CustomPodDNS:使用其 dnsConfig 属性启用 Pod 的自定义 DNS 设置。 更多详细信息,请参见 Pod 的 DNS 配置
  • CustomResourceDefaulting:为 OpenAPI v3 验证架构中的默认值启用 CRD 支持。
  • CustomResourcePublishOpenAPI:启用 CRD OpenAPI 规范的发布。
  • CustomResourceSubresources:对于用 CustomResourceDefinition 创建的资源启用 /status/scale 子资源。
  • CustomResourceValidation:对于用 CustomResourceDefinition 创建的资源启用基于模式的验证。
  • CustomResourceWebhookConversion:对于用 CustomResourceDefinition 创建的资源启用基于 Webhook 的转换。 对正在运行的 Pod 进行故障排除。
  • DisableAcceleratorUsageMetrics: 禁用 kubelet 收集加速器指标.
  • DevicePlugins:在节点上启用基于 设备插件 资源供应。
  • DefaultPodTopologySpread: 启用 PodTopologySpread 调度插件来做 默认的调度传播.
  • DryRun:启用服务器端 dry run 请求, 以便无需提交即可测试验证、合并和差异化。
  • DynamicAuditing已弃用 ):在 v1.19 版本前用于启用动态审计。
  • DynamicKubeletConfig:启用 kubelet 的动态配置。请参阅 重新配置 kubelet
  • DynamicProvisioningScheduling:扩展默认调度器以了解卷拓扑并处理 PV 配置。 此特性已在 v1.12 中完全被 VolumeScheduling 特性取代。
  • DynamicVolumeProvisioning已弃用 ):启用持久化卷到 Pod 的 动态预配置
  • EnableAggregatedDiscoveryTimeout已弃用 ):对聚集的发现调用启用五秒钟超时设置。
  • EnableEquivalenceClassCache:调度 Pod 时,使 scheduler 缓存节点的等效项。
  • EphemeralContainers:启用添加 临时容器 到正在运行的 Pod 的特性。
  • EvenPodsSpread:使 Pod 能够在拓扑域之间平衡调度。请参阅 Pod 拓扑扩展约束
  • ExpandInUsePersistentVolumes:启用扩展使用中的 PVC。请查阅 调整使用中的 PersistentVolumeClaim 的大小
  • ExpandPersistentVolumes:启用持久卷的扩展。请查阅 扩展永久卷声明
  • ExperimentalCriticalPodAnnotation:启用将特定 Pod 注解为 critical 的方式,用于 确保其调度。 从 v1.13 开始,Pod 优先级和抢占功能已弃用此特性。
  • ExperimentalHostUserNamespaceDefaultingGate:启用主机默认的用户名字空间。 这适用于使用其他主机名字空间、主机安装的容器,或具有特权或使用特定的非名字空间功能 (例如 MKNODE、SYS_MODULE 等)的容器。 如果在 Docker 守护程序中启用了用户名字空间重新映射,则启用此选项。
  • EndpointSlice:启用 EndpointSlice 以实现更多可扩展的网络端点。 需要启用相应的 API 和控制器,请参阅 启用 EndpointSlice
  • EndpointSliceProxying:启用此特性门控后,Linux 上运行的 kube-proxy 将使用 EndpointSlices 取代 Endpoints 作为主要数据源,可以提高扩展性和性能。 请参见 启用 EndpointSlice
  • WindowsEndpointSliceProxying:启用此特性门控后,Windows 上运行的 kube-proxy 将使用 EndpointSlices 取代 Endpoints 作为主要数据源,可以提高扩展性和性能。 请参见 启用 EndpointSlice
  • GCERegionalPersistentDisk:在 GCE 上启用区域 PD 特性。
  • GenericEphemeralVolume:启用支持临时卷和内联卷的 (可以由第三方存储供应商提供、存储容量跟踪、从快照还原等等)所有功能。请参见 临时卷
  • HugePages:启用分配和使用预分配的 巨页资源
  • HugePageStorageMediumSize:启用支持多种大小的预分配 巨页资源
  • HyperVContainer:为 Windows 容器启用 Hyper-V 隔离
  • HPAScaleToZero:使用自定义指标或外部指标时,可将 HorizontalPodAutoscaler 资源的 minReplicas 设置为 0。
  • ImmutableEphemeralVolumes:允许将各个 Secret 和 ConfigMap 标记为不可变更的, 以提高安全性和性能。
  • KubeletConfigFile:启用从使用配置文件指定的文件中加载 kubelet 配置。 有关更多详细信息,请参见 通过配置文件设置 kubelet 参数
  • KubeletPluginsWatcher:启用基于探针的插件监视应用程序,使 kubelet 能够发现插件, 例如 CSI 卷驱动程序
  • KubeletPodResources:启用 kubelet 的 pod 资源 grpc 端点。更多详细信息,请参见 支持设备监控
  • LegacyNodeRoleBehavior:禁用此选项后,服务负载均衡中的传统行为和节点中断将忽略 node-role.kubernetes.io/master 标签,而使用 NodeDisruptionExclusionServiceNodeExclusion 提供的特性指定的标签。
  • LocalStorageCapacityIsolation:允许使用 本地临时存储以及 emptyDir 卷sizeLimit 属性。
  • LocalStorageCapacityIsolationFSQuotaMonitoring:如果 本地临时存储 启用了 LocalStorageCapacityIsolation,并且 emptyDir 卷 的后备文件系统支持项目配额,并且启用了这些配额,请使用项目配额来监视 emptyDir 卷的存储消耗 而不是遍历文件系统,以此获得更好的性能和准确性。
  • MountContainers:在主机上启用将应用程序容器用作卷安装程序。
  • MountPropagation:启用将一个容器安装的共享卷共享到其他容器或 Pod。 更多详细信息,请参见 挂载传播
  • NodeDisruptionExclusion:启用节点标签 node.kubernetes.io/exclude-disruption, 以防止在区域故障期间驱逐节点。
  • NodeLease:启用新的租赁 API 以报告节点心跳,可用作节点运行状况信号。
  • NonPreemptingPriority:为 PriorityClass 和 Pod 启用 NonPreempting 选项。
  • PersistentLocalVolumes:在 Pod 中启用 “本地” 卷类型的使用。 如果请求 “本地” 卷,则必须指定 Pod 亲和力。
  • PodDisruptionBudget:启用 PodDisruptionBudget 特性。
  • PodOverhead:启用 PodOverhead 特性以考虑 Pod 开销。
  • PodPriority:根据优先级 启用 Pod 的调度和抢占。
  • PodReadinessGates:启用 PodReadinessGate 字段的设置以扩展 Pod 准备状态评估。 有关更多详细信息,请参见 Pod 就绪状态判别
  • PodShareProcessNamespace:在 Pod 中启用 shareProcessNamespace 的设置, 以便在 Pod 中运行的容器之间共享同一进程名字空间。更多详细信息,请参见 在 Pod 中的容器间共享同一进程名字空间
  • ProcMountType:启用对容器的 ProcMountType 的控制。
  • PVCProtection:启用防止任何 Pod 仍使用 PersistentVolumeClaim(PVC) 删除的特性。
  • QOSReserved:允许在 QoS 级别进行资源预留,以防止处于较低 QoS 级别的 Pod 突发进入处于较高 QoS 级别的请求资源(仅适用于内存)。
  • ResourceLimitsPriorityFunction已弃用 ):启用某调度器优先级函数, 该函数将最低得分 1 指派给至少满足输入 Pod 的 CPU 和内存限制之一的节点, 目的是打破得分相同的节点之间的关联。
  • ResourceQuotaScopeSelectors:启用资源配额范围选择器。
  • RotateKubeletClientCertificate:在 kubelet 上启用客户端 TLS 证书的轮换。 更多详细信息,请参见 kubelet 配置
  • RotateKubeletServerCertificate:在 kubelet 上启用服务器 TLS 证书的轮换。 更多详细信息,请参见 kubelet 配置
  • RunAsGroup:启用对容器初始化过程中设置的主要组 ID 的控制。
  • RuntimeClass:启用 RuntimeClass 特性用于选择容器运行时配置。
  • ScheduleDaemonSetPods:启用 DaemonSet Pods 由默认调度程序而不是 DaemonSet 控制器进行调度。
  • SCTPSupport:在 Service、Endpoints、NetworkPolicy 和 Pod 定义中, 允许将 SCTP 用作 protocol 值。
  • ServerSideApply:在 API 服务器上启用 服务器端应用(SSA) 路径。
  • ServiceAccountIssuerDiscovery:在 API 服务器中为服务帐户颁发者启用 OIDC 发现端点。 颁发者和 JWKS URL)。详情请参见 为 Pod 配置服务账户
  • ServiceAppProtocol:为 Service 和 Endpoints 启用 AppProtocol 字段。
  • ServiceLoadBalancerFinalizer:为服务负载均衡启用终结器保护。
  • ServiceNodeExclusion:启用从云提供商创建的负载均衡中排除节点。 如果节点标记有 alpha.service-controller.kubernetes.io/exclude-balancer 键或 node.kubernetes.io/exclude-from-external-load-balancers, 则可以排除节点。
  • ServiceTopology:启用服务拓扑可以让一个服务基于集群的节点拓扑进行流量路由。 有关更多详细信息,请参见 服务拓扑
  • SetHostnameAsFQDN:启用将全限定域名(FQDN)设置为 Pod 主机名的功能。 请参见给 Pod 设置 setHostnameAsFQDN 字段
  • StartupProbe:在 kubelet 中启用 启动探针
  • StorageObjectInUseProtection:如果仍在使用 PersistentVolume 或 PersistentVolumeClaim 对象,则将其推迟。
  • StorageVersionHash:允许 apiserver 在发现中公开存储版本的哈希值。
  • StreamingProxyRedirects:指示 API 服务器拦截(并遵循)从后端(kubelet) 进行重定向以处理流请求。 流请求的例子包括 execattachport-forward 请求。
  • SupportIPVSProxyMode:启用使用 IPVS 提供内服务负载平衡。更多详细信息,请参见 服务代理
  • SupportPodPidsLimit:启用支持限制 Pod 中的进程 PID。
  • Sysctls:启用对可以为每个 Pod 设置的名字空间内核参数(sysctls)的支持。 更多详细信息,请参见 sysctls
  • TaintBasedEvictions:根据节点上的污点和 Pod 上的容忍度启用从节点驱逐 Pod 的特性。 有关更多详细信息,请参见污点和容忍度
  • TaintNodesByCondition:根据节点状况 启用自动在节点标记污点。
  • TokenRequest:在服务帐户资源上启用 TokenRequest 端点。
  • TokenRequestProjection:启用通过 projected 将服务帐号令牌注入到 Pod 中的特性。
  • TopologyManager:启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 详见控制节点上的拓扑管理策略
  • TTLAfterFinished:完成执行后,允许 TTL 控制器清理资源。
  • VolumePVCDataSource:启用对将现有 PVC 指定数据源的支持。
  • VolumeScheduling:启用卷拓扑感知调度,并使 PersistentVolumeClaim(PVC) 绑定调度决策;当与 PersistentLocalVolumes 特性门控一起使用时, 还可以使用 PersistentLocalVolumes 卷类型。
  • VolumeSnapshotDataSource:启用卷快照数据源支持。
  • VolumeSubpathEnvExpansion:启用 subPathExpr 字段用于将环境变量扩展为 subPath
  • WatchBookmark:启用对监测 bookmark 事件的支持。
  • WindowsGMSA:允许将 GMSA 凭据规范从 Pod 传递到容器运行时。
  • WindowsRunAsUserName:提供使用非默认用户在 Windows 容器中运行应用程序的支持。 详情请参见配置 RunAsUserName
  • WinDSR:允许 kube-proxy 为 Windows 创建 DSR 负载均衡。
  • WinOverlay:允许 kube-proxy 在 Windows 的 overlay 模式下运行。

接下来

  • Kubernetes 的弃用策略 介绍了项目已移除的特性部件和组件的方法。
最后修改 January 25, 2021 at 12:55 AM PST: [zh] update feature-gates description for TopologyManager (ac1409edd)