特性门控
本页详述了管理员可以在不同的 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 的特性门控
特性 | 默认值 | 状态 | 开始(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 | |
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 | - |
使用特性
特性阶段
处于 Alpha 、Beta 、 GA 阶段的特性。
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 fromRequestManagement
)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
标签,而使用NodeDisruptionExclusion
和ServiceNodeExclusion
提供的特性指定的标签。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) 进行重定向以处理流请求。 流请求的例子包括exec
、attach
和port-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 的弃用策略 介绍了项目已移除的特性部件和组件的方法。