1 - 特性门控

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

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

概述

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

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

--feature-gates=...,GracefulNodeShutdown=true

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

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

Alpha 和 Beta 状态的特性门控

处于 Alpha 或 Beta 状态的特性门控
特性默认值状态开始(Since)结束(Until)
APIListChunkingfalseAlpha1.81.8
APIListChunkingtrueBeta1.9
APIPriorityAndFairnessfalseAlpha1.181.19
APIPriorityAndFairnesstrueBeta1.20
APIResponseCompressionfalseAlpha1.71.15
APIResponseCompressiontrueBeta1.16
APISelfSubjectReviewfalseAlpha1.26
APIServerIdentityfalseAlpha1.201.25
APIServerIdentitytrueBeta1.26
APIServerTracingfalseAlpha1.22
AggregatedDiscoveryEndpointfalseAlpha1.26
AnyVolumeDataSourcefalseAlpha1.181.23
AnyVolumeDataSourcetrueBeta1.24
AppArmortrueBeta1.4
CPUManagerPolicyAlphaOptionsfalseAlpha1.23
CPUManagerPolicyBetaOptionstrueBeta1.23
CPUManagerPolicyOptionsfalseAlpha1.221.22
CPUManagerPolicyOptionstrueBeta1.23
CSIMigrationPortworxfalseAlpha1.231.24
CSIMigrationPortworxfalseBeta1.25
CSIMigrationRBDfalseAlpha1.23
CSINodeExpandSecretfalseAlpha1.25
CSIVolumeHealthfalseAlpha1.21
ComponentSLIsfalseAlpha1.26
ContainerCheckpointfalseAlpha1.25
ContextualLoggingfalseAlpha1.24
CronJobTimeZonefalseAlpha1.241.24
CronJobTimeZonetrueBeta1.25
CrossNamespaceVolumeDataSourcefalseAlpha1.26
CustomCPUCFSQuotaPeriodfalseAlpha1.12
CustomResourceValidationExpressionsfalseAlpha1.231.24
CustomResourceValidationExpressionstrueBeta1.25
DisableCloudProvidersfalseAlpha1.22
DisableKubeletCloudCredentialProvidersfalseAlpha1.23
DownwardAPIHugePagesfalseAlpha1.201.20
DownwardAPIHugePagesfalseBeta1.211.21
DownwardAPIHugePagestrueBeta1.22
DynamicResourceAllocationfalseAlpha1.26
EventedPLEGfalseAlpha1.26-
ExpandedDNSConfigfalseAlpha1.221.25
ExpandedDNSConfigtrueBeta1.26
ExperimentalHostUserNamespaceDefaultingfalseBeta1.5
GRPCContainerProbefalseAlpha1.231.23
GRPCContainerProbetrueBeta1.24
GracefulNodeShutdownfalseAlpha1.201.20
GracefulNodeShutdowntrueBeta1.21
GracefulNodeShutdownBasedOnPodPriorityfalseAlpha1.231.23
GracefulNodeShutdownBasedOnPodPrioritytrueBeta1.24
HPAContainerMetricsfalseAlpha1.20
HPAScaleToZerofalseAlpha1.16
HonorPVReclaimPolicyfalseAlpha1.23
IPTablesOwnershipCleanupfalseAlpha1.25
InTreePluginAWSUnregisterfalseAlpha1.21
InTreePluginAzureDiskUnregisterfalseAlpha1.21
InTreePluginAzureFileUnregisterfalseAlpha1.21
InTreePluginGCEUnregisterfalseAlpha1.21
InTreePluginOpenStackUnregisterfalseAlpha1.21
InTreePluginPortworxUnregisterfalseAlpha1.23
InTreePluginRBDUnregisterfalseAlpha1.23
InTreePluginvSphereUnregisterfalseAlpha1.21
JobMutableNodeSchedulingDirectivestrueBeta1.23
JobPodFailurePolicyfalseAlpha1.251.25
JobPodFailurePolicytrueBeta1.26
JobReadyPodsfalseAlpha1.231.23
JobReadyPodstrueBeta1.24
KMSv2falseAlpha1.25
KubeletInUserNamespacefalseAlpha1.22
KubeletPodResourcesfalseAlpha1.131.14
KubeletPodResourcestrueBeta1.15
KubeletPodResourcesGetAllocatablefalseAlpha1.211.22
KubeletPodResourcesGetAllocatabletrueBeta1.23
KubeletTracingfalseAlpha1.25
LegacyServiceAccountTokenTrackingfalseAlpha1.25
LocalStorageCapacityIsolationFSQuotaMonitoringfalseAlpha1.15-
LogarithmicScaleDownfalseAlpha1.211.21
LogarithmicScaleDowntrueBeta1.22
LoggingAlphaOptionsfalseAlpha1.24-
LoggingBetaOptionstrueBeta1.24-
MatchLabelKeysInPodTopologySpreadfalseAlpha1.25
MaxUnavailableStatefulSetfalseAlpha1.24
MemoryManagerfalseAlpha1.211.21
MemoryManagertrueBeta1.22
MemoryQoSfalseAlpha1.22
MinDomainsInPodTopologySpreadfalseAlpha1.241.24
MinDomainsInPodTopologySpreadfalseBeta1.25
MinimizeIPTablesRestorefalseAlpha1.26-
MultiCIDRRangeAllocatorfalseAlpha1.25
NetworkPolicyStatusfalseAlpha1.24
NodeInclusionPolicyInPodTopologySpreadfalseAlpha1.251.25
NodeInclusionPolicyInPodTopologySpreadtrueBeta1.26
NodeOutOfServiceVolumeDetachfalseAlpha1.241.25
NodeOutOfServiceVolumeDetachtrueBeta1.26
NodeSwapfalseAlpha1.22
OpenAPIEnumsfalseAlpha1.231.23
OpenAPIEnumstrueBeta1.24
OpenAPIV3falseAlpha1.231.23
OpenAPIV3trueBeta1.24
PDBUnhealthyPodEvictionPolicyfalseAlpha1.26
PodAndContainerStatsFromCRIfalseAlpha1.23
PodDeletionCostfalseAlpha1.211.21
PodDeletionCosttrueBeta1.22
PodDisruptionConditionsfalseAlpha1.251.25
PodDisruptionConditionstrueBeta1.26
PodHasNetworkConditionfalseAlpha1.25
PodSchedulingReadinessfalseAlpha1.26
ProbeTerminationGracePeriodfalseAlpha1.211.21
ProbeTerminationGracePeriodfalseBeta1.221.24
ProbeTerminationGracePeriodtrueBeta1.25
ProcMountTypefalseAlpha1.12
ProxyTerminatingEndpointsfalseAlpha1.221.25
ProxyTerminatingEndpointstrueBeta1.26
QOSReservedfalseAlpha1.11
ReadWriteOncePodfalseAlpha1.22
RecoverVolumeExpansionFailurefalseAlpha1.23
RemainingItemCountfalseAlpha1.151.15
RemainingItemCounttrueBeta1.16
RetroactiveDefaultStorageClassfalseAlpha1.251.25
RetroactiveDefaultStorageClasstrueBeta1.26
RotateKubeletServerCertificatefalseAlpha1.71.11
RotateKubeletServerCertificatetrueBeta1.12
SELinuxMountReadWriteOncePodfalseAlpha1.25
SeccompDefaultfalseAlpha1.221.24
SeccompDefaulttrueBeta1.25
ServerSideFieldValidationfalseAlpha1.231.24
ServerSideFieldValidationtrueBeta1.25
SizeMemoryBackedVolumesfalseAlpha1.201.21
SizeMemoryBackedVolumestrueBeta1.22
StatefulSetAutoDeletePVCfalseAlpha1.22
StatefulSetStartOrdinalfalseAlpha1.26
StorageVersionAPIfalseAlpha1.20
StorageVersionHashfalseAlpha1.141.14
StorageVersionHashtrueBeta1.15
TopologyAwareHintsfalseAlpha1.211.22
TopologyAwareHintsfalseBeta1.231.23
TopologyAwareHintstrueBeta1.24
TopologyManagerfalseAlpha1.161.17
TopologyManagertrueBeta1.18
TopologyManagerPolicyAlphaOptionsfalseAlpha1.26
TopologyManagerPolicyBetaOptionsfalseBeta1.26
TopologyManagerPolicyOptionsfalseAlpha1.26
UserNamespacesStatelessPodsSupportfalseAlpha1.25
ValidatingAdmissionPolicyfalseAlpha1.26
VolumeCapacityPriorityfalseAlpha1.21-
WinDSRfalseAlpha1.14
WinOverlayfalseAlpha1.141.19
WinOverlaytrueBeta1.20
WindowsHostNetworkfalseAlpha1.26

已毕业和已废弃的特性门控

已毕业或不推荐使用的特性门控
特性默认值状态开始(Since)结束(Until)
AdvancedAuditingfalseAlpha1.71.7
AdvancedAuditingtrueBeta1.81.11
AdvancedAuditingtrueGA1.12-
CPUManagerfalseAlpha1.81.9
CPUManagertrueBeta1.101.25
CPUManagertrueGA1.26-
CSIInlineVolumefalseAlpha1.151.15
CSIInlineVolumetrueBeta1.161.24
CSIInlineVolumetrueGA1.25-
CSIMigrationfalseAlpha1.141.16
CSIMigrationtrueBeta1.171.24
CSIMigrationtrueGA1.25-
CSIMigrationAWSfalseAlpha1.141.16
CSIMigrationAWSfalseBeta1.171.22
CSIMigrationAWStrueBeta1.231.24
CSIMigrationAWStrueGA1.25-
CSIMigrationAzureDiskfalseAlpha1.151.18
CSIMigrationAzureDiskfalseBeta1.191.22
CSIMigrationAzureDisktrueBeta1.231.23
CSIMigrationAzureDisktrueGA1.24
CSIMigrationAzureFilefalseAlpha1.151.20
CSIMigrationAzureFilefalseBeta1.211.23
CSIMigrationAzureFiletrueBeta1.241.25
CSIMigrationAzureFiletrueGA1.26
CSIMigrationGCEfalseAlpha1.141.16
CSIMigrationGCEfalseBeta1.171.22
CSIMigrationGCEtrueBeta1.231.24
CSIMigrationGCEtrueGA1.25-
CSIMigrationvSpherefalseAlpha1.181.18
CSIMigrationvSpherefalseBeta1.191.24
CSIMigrationvSpheretrueBeta1.251.25
CSIMigrationvSpheretrueGA1.26-
CSIStorageCapacityfalseAlpha1.191.20
CSIStorageCapacitytrueBeta1.211.23
CSIStorageCapacitytrueGA1.24-
ConsistentHTTPGetHandlerstrueGA1.25-
ControllerManagerLeaderMigrationfalseAlpha1.211.21
ControllerManagerLeaderMigrationtrueBeta1.221.23
ControllerManagerLeaderMigrationtrueGA1.24-
DaemonSetUpdateSurgefalseAlpha1.211.21
DaemonSetUpdateSurgetrueBeta1.221.24
DaemonSetUpdateSurgetrueGA1.25-
DelegateFSGroupToCSIDriverfalseAlpha1.221.22
DelegateFSGroupToCSIDrivertrueBeta1.231.25
DelegateFSGroupToCSIDrivertrueGA1.26-
DevicePluginsfalseAlpha1.81.9
DevicePluginstrueBeta1.101.25
DevicePluginstrueGA1.26-
DisableAcceleratorUsageMetricsfalseAlpha1.191.19
DisableAcceleratorUsageMetricstrueBeta1.201.24
DisableAcceleratorUsageMetricstrueGA1.25-
DryRunfalseAlpha1.121.12
DryRuntrueBeta1.131.18
DryRuntrueGA1.19-
EfficientWatchResumptionfalseAlpha1.201.20
EfficientWatchResumptiontrueBeta1.211.23
EfficientWatchResumptiontrueGA1.24-
EndpointSliceTerminatingConditionfalseAlpha1.201.21
EndpointSliceTerminatingConditiontrueBeta1.221.25
EndpointSliceTerminatingConditiontrueGA1.26
EphemeralContainersfalseAlpha1.161.22
EphemeralContainerstrueBeta1.231.24
EphemeralContainerstrueGA1.25-
ExecProbeTimeouttrueGA1.20-
ExpandCSIVolumesfalseAlpha1.141.15
ExpandCSIVolumestrueBeta1.161.23
ExpandCSIVolumestrueGA1.24-
ExpandInUsePersistentVolumesfalseAlpha1.111.14
ExpandInUsePersistentVolumestrueBeta1.151.23
ExpandInUsePersistentVolumestrueGA1.24-
ExpandPersistentVolumesfalseAlpha1.81.10
ExpandPersistentVolumestrueBeta1.111.23
ExpandPersistentVolumestrueGA1.24-
IdentifyPodOSfalseAlpha1.231.23
IdentifyPodOStrueBeta1.241.24
IdentifyPodOStrueGA1.25-
JobTrackingWithFinalizersfalseAlpha1.221.22
JobTrackingWithFinalizersfalseBeta1.231.24
JobTrackingWithFinalizerstrueBeta1.251.25
JobTrackingWithFinalizerstrueGA1.26-
KubeletCredentialProvidersfalseAlpha1.201.23
KubeletCredentialProviderstrueBeta1.241.25
KubeletCredentialProviderstrueGA1.26-
LegacyServiceAccountTokenNoAutoGenerationtrueBeta1.241.25
LegacyServiceAccountTokenNoAutoGenerationtrueGA1.26-
LocalStorageCapacityIsolationfalseAlpha1.71.9
LocalStorageCapacityIsolationtrueBeta1.101.24
LocalStorageCapacityIsolationtrueGA1.25-
MixedProtocolLBServicefalseAlpha1.201.23
MixedProtocolLBServicetrueBeta1.241.25
MixedProtocolLBServicetrueGA1.26-
NetworkPolicyEndPortfalseAlpha1.211.21
NetworkPolicyEndPorttrueBeta1.221.24
NetworkPolicyEndPorttrueGA1.25-
PodSecurityfalseAlpha1.221.22
PodSecuritytrueBeta1.231.24
PodSecuritytrueGA1.25
RemoveSelfLinkfalseAlpha1.161.19
RemoveSelfLinktrueBeta1.201.23
RemoveSelfLinktrueGA1.24-
ServerSideApplyfalseAlpha1.141.15
ServerSideApplytrueBeta1.161.21
ServerSideApplytrueGA1.22-
ServiceIPStaticSubrangefalseAlpha1.241.24
ServiceIPStaticSubrangetrueBeta1.251.25
ServiceIPStaticSubrangetrueGA1.26-
ServiceInternalTrafficPolicyfalseAlpha1.211.21
ServiceInternalTrafficPolicytrueBeta1.221.25
ServiceInternalTrafficPolicytrueGA1.26-
StatefulSetMinReadySecondsfalseAlpha1.221.22
StatefulSetMinReadySecondstrueBeta1.231.24
StatefulSetMinReadySecondstrueGA1.25-
WatchBookmarkfalseAlpha1.151.15
WatchBookmarktrueBeta1.161.16
WatchBookmarktrueGA1.17-
WindowsHostProcessContainersfalseAlpha1.221.22
WindowsHostProcessContainerstrueBeta1.231.25
WindowsHostProcessContainerstrueGA1.26-

使用特性

特性阶段

处于 AlphaBetaGA 阶段的特性。

Alpha 特性代表:

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

Beta 特性代表:

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

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

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

特性门控列表

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

  • APIListChunking:启用 API 客户端以块的形式从 API 服务器检索(LISTGET)资源。
  • APIPriorityAndFairness:在每个服务器上启用优先级和公平性来管理请求并发(由 RequestManagement 重命名而来)。
  • APIResponseCompression:压缩 LISTGET 请求的 API 响应。
  • APISelfSubjectReview:激活 SelfSubjectReview API,允许用户查看请求主体的身份验证信息。 更多细节请参阅 API 访问客户端的身份验证信息
  • APIServerIdentity:使用租约为集群中的每个 API 服务器赋予一个 ID。
  • APIServerTracing:为集群中的每个 API 服务器添加对分布式跟踪的支持。 参阅针对 Kubernetes 系统组件的追踪 获取更多详细信息。
  • AdvancedAuditing:启用高级审计功能
  • AggregatedDiscoveryEndpoint:启用单个 HTTP 端点 /discovery/<version>, 支持用 ETag 进行原生 HTTP 缓存,包含 API 服务器已知的所有 APIResource。
  • AnyVolumeDataSource:允许使用任何自定义的资源来做作为 PVC 中的 DataSource
  • AppArmor:在 Linux 节点上为 Pod 启用 AppArmor 机制的强制访问控制。 请参见 AppArmor 教程获取详细信息。
  • ContainerCheckpoint:启用 kubelet checkpoint API。 参阅 Kubelet Checkpoint API 获取更多详细信息。
  • ControllerManagerLeaderMigration:为 kube-controller-managercloud-controller-manager 启用 Leader 迁移,它允许集群管理者在没有停机的高可用集群环境下,实时把 kube-controller-manager 迁移到外部的 controller-manager (例如 cloud-controller-manager) 中。
  • CPUManager:启用容器级别的 CPU 亲和性支持,有关更多详细信息,请参见 CPU 管理策略
  • CPUManagerPolicyAlphaOptions:允许对 CPUManager 策略进行微调,针对试验性的、Alpha 质量级别的选项。 此特性门控用来保护一组质量级别为 Alpha 的 CPUManager 选项。 此特性门控永远不会被升级为 Beta 或者稳定版本。
  • CPUManagerPolicyBetaOptions:允许对 CPUManager 策略进行微调,针对试验性的、Beta 质量级别的选项。 此特性门控用来保护一组质量级别为 Beta 的 CPUManager 选项。 此特性门控永远不会被升级为稳定版本。
  • CPUManagerPolicyOptions:允许微调 CPU 管理策略。
  • CSIInlineVolume:为 Pod 启用 CSI 内联卷支持。
  • CSIMigration:确保封装和转换逻辑能够将卷操作从内嵌插件路由到相应的预安装 CSI 插件。
  • CSIMigrationAWS:确保填充和转换逻辑能够将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 如果节点禁用了此特性门控或者未安装和配置 EBS CSI 插件,支持回退到内嵌 EBS 插件来执行卷挂载操作。 不支持回退到这些插件来执行卷制备操作,因为需要安装并配置 CSI 插件。
  • CSIMigrationAzureDisk:确保填充和转换逻辑能够将卷操作从 AzureDisk 内嵌插件路由到 Azure 磁盘 CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureDisk CSI 插件的节点,支持回退到内嵌(in-tree)AzureDisk 插件来执行磁盘挂载操作。 不支持回退到内嵌插件来执行磁盘制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。
  • CSIMigrationAzureFile:确保封装和转换逻辑能够将卷操作从 AzureFile 内嵌插件路由到 AzureFile CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureFile CSI 插件的节点,支持回退到内嵌(in-tree)AzureFile 插件来执行卷挂载操作。 不支持回退到内嵌插件来执行卷制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。
  • CSIMigrationGCE:启用填充和转换逻辑,将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。对于禁用了此特性的节点或者没有安装并配置 PD CSI 插件的节点, 支持回退到内嵌(in-tree)GCE 插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。
  • CSIMigrationRBD:启用填充和转换逻辑,将卷操作从 RBD 的内嵌插件路由到 Ceph RBD CSI 插件。此特性要求 CSIMigration 和 csiMigrationRBD 特性标志均被启用, 且集群中安装并配置了 Ceph CSI 插件。此标志已被弃用,以鼓励使用 InTreePluginRBDUnregister 特性标志。后者会禁止注册内嵌的 RBD 插件。
  • CSIMigrationvSphere:允许封装和转换逻辑将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。如果节点禁用了此特性门控或者未安装和配置 vSphere CSI 插件, 则支持回退到 vSphere 内嵌插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 这需要启用 CSIMigration 特性标志。
  • CSIMigrationPortworx:启用填充和转换逻辑,将卷操作从 Portworx 内嵌插件路由到 Portworx CSI 插件。需要在集群中安装并配置 Portworx CSI 插件.
  • CSINodeExpandSecret:允许在 NodeExpandVolume CSI 操作期间将 Secret 身份验证数据传递到 CSI 驱动以供后者使用。
  • CSIStorageCapacity:使 CSI 驱动程序可以发布存储容量信息,并使 Kubernetes 调度程序在调度 Pod 时使用该信息。参见存储容量。 详情请参见 csi 卷类型
  • CSIVolumeHealth:启用对节点上的 CSI volume 运行状况监控的支持。
  • ComponentSLIs: 在 kubelet、kube-scheduler、kube-proxy、kube-controller-manager、cloud-controller-manager 等 Kubernetes 组件上启用 /metrics/slis 端点,从而允许你抓取健康检查指标。
  • ConsistentHTTPGetHandlers:使用探测器为生命周期处理程序规范化 HTTP get URL 和标头传递。
  • ContextualLogging:当你启用这个特性门控,支持日志上下文记录的 Kubernetes 组件会为日志输出添加额外的详细内容。
  • ControllerManagerLeaderMigration:为 kube-controller-managercloud-controller-manager 开启领导者迁移功能。
  • CronJobTimeZone:允许在 CronJobs 中使用 timeZone 可选字段。
  • CrossNamespaceVolumeDataSource:启用跨名字空间卷数据源,以允许你在 PersistentVolumeClaim 的 dataSourceRef 字段中指定一个源名字空间。
  • CustomCPUCFSQuotaPeriod:使节点能够更改 kubelet 配置中的 cpuCFSQuotaPeriod
  • CustomResourceValidationExpressions:启用 CRD 中的表达式语言合法性检查, 基于 x-kubernetes-validations 扩展中所书写的合法性检查规则来验证定制资源。
  • DelegateFSGroupToCSIDriver:如果 CSI 驱动程序支持,则通过 NodeStageVolume 和 NodePublishVolume CSI 调用传递 fsGroup,将应用 fsGroup 从 Pod 的 securityContext 的角色委托给驱动。
  • DevicePlugins:在节点上启用基于设备插件的资源制备。
  • DisableAcceleratorUsageMetrics禁用 kubelet 收集加速器指标
  • DisableCloudProviders:禁用 kube-apiserverkube-controller-managerkubelet 组件的 --cloud-provider 标志相关的所有功能。
  • DisableKubeletCloudCredentialProviders:禁用 kubelet 中为拉取镜像内置的凭据机制, 该凭据用于向某云提供商的容器镜像仓库执行身份认证。
  • DownwardAPIHugePages: 允许在下行(Downward)API 中使用巨页信息。
  • DryRun:启用在服务器端对请求进行试运行(Dry Run), 以便测试验证、合并和修改,同时避免提交更改。
  • DynamicResourceAllocation:启用对具有自定义参数和独立于 Pod 生命周期的资源的支持。
  • EndpointSliceTerminatingCondition:允许使用 EndpointSlice 的 terminatingserving 状况字段。
  • EfficientWatchResumption:允许将存储发起的书签(进度通知)事件传递给用户。 这仅适用于监视操作。
  • EphemeralContainers:启用添加 临时容器 到正在运行的 Pod 的特性。
  • EventedPLEG:启用此特性后,kubelet 能够通过 CRI 扩展从容器运行时接收容器生命周期事件。 (PLEG 是 Pod lifecycle event generator 的缩写,即 Pod 生命周期事件生成器)。 要使用此特性,你还需要在集群中运行的每个容器运行时中启用对容器生命周期事件的支持。 如果容器运行时未宣布支持容器生命周期事件,即使你已启用了此特性门控,kubelet 也会自动切换到原有的通用 PLEG 机制。
  • ExecProbeTimeout:确保 kubelet 会遵从 exec 探针的超时值设置。 此特性门控的主要目的是方便你处理现有的、依赖于已被修复的缺陷的工作负载; 该缺陷导致 Kubernetes 会忽略 exec 探针的超时值设置。 参阅就绪态探针.
  • ExpandCSIVolumes:启用扩展 CSI 卷。
  • ExpandedDNSConfig:在 kubelet 和 kube-apiserver 上启用后, 允许使用更多的 DNS 搜索域和搜索域列表。此功能特性需要容器运行时 (Containerd:v1.5.6 或更高,CRI-O:v1.22 或更高)的支持。 参阅扩展 DNS 配置.
  • ExpandInUsePersistentVolumes:启用扩充使用中的 PVC 的尺寸。 请查阅调整使用中的 PersistentVolumeClaim 的大小
  • ExpandPersistentVolumes:允许扩充持久卷。 请查阅扩展持久卷申领
  • ExperimentalHostUserNamespaceDefaulting:启用主机默认的用户名字空间。 这适用于使用其他主机名字空间、主机安装的容器,或具有特权或使用特定的非名字空间功能 (例如 MKNODE、SYS_MODULE 等)的容器。 如果在 Docker 守护程序中启用了用户名字空间重新映射,则启用此选项。
  • GracefulNodeShutdown:在 kubelet 中启用体面地关闭节点的支持。 在系统关闭时,kubelet 会尝试监测该事件并体面地终止节点上运行的 Pod。 参阅体面地关闭节点以了解更多细节。
  • GracefulNodeShutdownBasedOnPodPriority:允许 kubelet 在体面终止节点时检查 Pod 的优先级。
  • GRPCContainerProbe:为 LivenessProbe、ReadinessProbe、StartupProbe 启用 gRPC 探针。 参阅配置活跃态、就绪态和启动探针
  • HonorPVReclaimPolicy:无论 PV 和 PVC 的删除顺序如何,当持久卷申领的策略为 Delete 时,确保这种策略得到处理。 更多详细信息,请参阅 PersistentVolume 删除保护 finalizer 文档。
  • HPAContainerMetrics:允许 HorizontalPodAutoscaler 基于目标 Pods 中各容器的度量值来执行扩缩操作。
  • HPAScaleToZero:使用自定义指标或外部指标时,可将 HorizontalPodAutoscaler 资源的 minReplicas 设置为 0。
  • IPTablesOwnershipCleanup:这使得 kubelet 不再创建传统的 iptables 规则。
  • IdentifyPodOS:允许设置 Pod 的 OS 字段。这一设置有助于在 API 服务器准入期间确定性地辨识 Pod 的 OS。在 Kubernetes 1.26 中,pod.spec.os.name 可选的值包括 windowslinux
  • ImmutableEphemeralVolumes:允许将各个 Secret 和 ConfigMap 标记为不可变更的, 以提高安全性和性能。
  • IngressClassNamespacedParams:允许在 IngressClass 资源中使用名字空间范围的参数引用。 此功能为 IngressClass.spec.parameters 添加了两个字段 - scopenamespace
  • Initializers:允许使用 Intializers 准入插件来异步协调对象创建操作。
  • 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 控制器根据完成索引来管理 Pod 完成。
  • IngressClassNamespacedParams:允许在 IngressClass 资源中引用名字空间范围的参数。 该特性增加了两个字段 —— scopenamespaceIngressClass.spec.parameters
  • Initializers: 使用 Initializers 准入插件允许异步协调对象创建。
  • JobMutableNodeSchedulingDirectives:允许在 Job 的 Pod 模板中更新节点调度指令。
  • JobPodFailurePolicy:允许用户根据容器退出码和 Pod 状况来指定 Pod 失效的处理方法。
  • JobReadyPods:允许跟踪状况Ready 的 Pod 的个数。Ready 的 Pod 记录在 Job 对象的 status 字段中。
  • JobTrackingWithFinalizers:启用跟踪 Job 完成情况,而不是永远从集群剩余 Pod 来获取信息判断完成情况。Job 控制器使用 Pod finalizers 和 Job 状态中的一个字段来跟踪已完成的 Pod 以计算完成。
  • KubeletPodResources:启用 kubelet 上 Pod 资源 GRPC 端点。更多详细信息, 请参见支持设备监控
  • KubeletPodResourcesGetAllocatable:启用 kubelet 的 Pod 资源的 GetAllocatableResources 功能。 该 API 增强了资源分配报告 包含有关可分配资源的信息,使客户端能够正确跟踪节点上的可用计算资源。
  • KubeletTracing:新增在 Kubelet 中对分布式追踪的支持。 启用时,kubelet CRI 接口和经身份验证的 http 服务器被插桩以生成 OpenTelemetry 追踪 span。 参阅针对 Kubernetes 系统组件的追踪 获取更多详细信息。
  • LegacyServiceAccountTokenNoAutoGeneration:停止基于 Secret 自动生成服务账号令牌
  • LegacyServiceAccountTokenTracking:跟踪使用基于 Secret 的服务账号令牌
  • LocalStorageCapacityIsolation:允许使用 本地临时存储 以及 emptyDir 卷sizeLimit 属性。
  • LocalStorageCapacityIsolationFSQuotaMonitoring:如果 本地临时存储启用了 LocalStorageCapacityIsolation,并且 emptyDir 卷的后备文件系统支持项目配额, 并且启用了这些配额,将使用项目配额来监视 emptyDir 卷的存储消耗而不是遍历文件系统, 以此获得更好的性能和准确性。
  • LogarithmicScaleDown:启用 Pod 的半随机(semi-random)选择,控制器将根据 Pod 时间戳的对数桶按比例缩小去驱逐 Pod。
  • LoggingAlphaOptions:允许微调实验性的、Alpha 质量的日志选项。
  • LoggingBetaOptions:允许微调实验性的、Beta 质量的日志选项。
  • MatchLabelKeysInPodTopologySpread:为 Pod 拓扑分布约束 启用 matchLabelKeys 字段。
  • MaxUnavailableStatefulSet:启用为 StatefulSet 的滚动更新策略设置 maxUnavailable 字段。该字段指定更新过程中不可用 Pod 个数的上限。
  • MemoryManager:允许基于 NUMA 拓扑为容器设置内存亲和性。
  • MemoryQoS:使用 cgroup v2 内存控制器在 Pod / 容器上启用内存保护和使用限制。
  • MinDomainsInPodTopologySpread:在 Pod 拓扑分布约束中启用 minDomains
  • MinimizeIPTablesRestore:在 kube-proxy iptables 模式中启用新的性能改进逻辑。
  • MixedProtocolLBService:允许在同一 LoadBalancer 类型的 Service 实例中使用不同的协议。
  • MultiCIDRRangeAllocator:启用 MultiCIDR 范围分配器。
  • NetworkPolicyEndPort:在 NetworkPolicy 对象中启用 endPort 以允许选择端口范围而不是单个端口。
  • NetworkPolicyStatus:为 NetworkPolicy 对象启用 status 子资源。
  • NodeInclusionPolicyInPodTopologySpread:在计算 Pod 拓扑分布偏差时启用在 Pod 拓扑分布约束中使用 nodeAffinityPolicy and nodeTaintsPolicy
  • NodeOutOfServiceVolumeDetach:当使用 node.kubernetes.io/out-of-service 污点将节点标记为停止服务时,节点上不能容忍这个污点的 Pod 将被强制删除, 并且该在节点上被终止的 Pod 将立即进行卷分离操作。
  • NodeSwap:启用 kubelet 为节点上的 Kubernetes 工作负载分配交换内存的能力。 必须将 KubeletConfiguration.failSwapOn 设置为 false 的情况下才能使用。 更多详细信息,请参见交换内存
  • OpenAPIEnums:允许在从 API 服务器返回的 spec 中填充 OpenAPI 模式的 "enum" 字段。
  • OpenAPIV3:允许 API 服务器发布 OpenAPI V3。
  • PDBUnhealthyPodEvictionPolicy:启用 PodDisruptionBudgetunhealthyPodEvictionPolicy 字段。 此字段指定何时应考虑驱逐不健康的 Pod。 更多细节请参阅不健康 Pod 驱逐策略
  • PodDeletionCost:启用 Pod 删除成本功能。 该功能使用户可以影响 ReplicaSet 的降序顺序。
  • PodAndContainerStatsFromCRI:配置 kubelet 从 CRI 容器运行时中而不是从 cAdvisor 中采集容器和 Pod 统计信息。 从 1.26 开始,这还包括从 CRI 收集指标并通过 /metrics/cadvisor 输出这些指标(而不是让 cAdvisor 直接输出)。
  • PodDisruptionConditions:启用支持追加一个专用的 Pod 状况,以表示 Pod 由于某个干扰正在被删除。
  • PodHasNetworkCondition:使得 kubelet 能够对 Pod 标记 PodHasNetwork 状况。
  • PodSchedulingReadiness:启用设置 schedulingGates 字段以控制 Pod 的调度就绪
  • PodSecurity: 开启 PodSecurity 准入控制插件。
  • ProbeTerminationGracePeriod:在 Pod 上启用 设置探测器级别 terminationGracePeriodSeconds。 有关更多信息,请参见改进提案
  • ProcMountType:允许容器通过设置 SecurityContext 的 procMount 字段来控制对 proc 文件系统的挂载方式。
  • ProxyTerminatingEndpoints:当 ExternalTrafficPolicy=Local 时, 允许 kube-proxy 来处理终止过程中的端点。
  • QOSReserved:允许在 QoS 级别进行资源预留,以防止处于较低 QoS 级别的 Pod 突发进入处于较高 QoS 级别的请求资源(目前仅适用于内存)。
  • ReadWriteOncePod: 允许使用 ReadWriteOncePod 访问模式的 PersistentVolume。
  • RecoverVolumeExpansionFailure:允许用户编辑其 PVC 来缩小其尺寸, 从而从之前卷扩容发生的失败中恢复。更多细节可参见 从卷扩容失效中恢复
  • RemainingItemCount:允许 API 服务器在 分块列表请求 的响应中显示剩余条目的个数。
  • RemoveSelfLink:将所有对象和集合的 .metadata.selfLink 字段设置为空(空字符串)。 该字段自 Kubernetes v1.16 版本以来已被弃用。 启用此功能后,.metadata.selfLink 字段仍然是 Kubernetes API 的一部分,但始终未设置。
  • RetroactiveDefaultStorageClass:允许以追溯方式分配 StorageClass 给未绑定的 PVC。
  • RotateKubeletServerCertificate:在 kubelet 上启用服务器 TLS 证书的轮换。 更多详细信息,请参见 kubelet 配置
  • SELinuxMountReadWriteOncePod:通过允许 kubelet 直接用正确的 SELinux 标签为 Pod 挂载卷而不是以递归方式更改这些卷上的每个文件来加速容器启动。最初的实现侧重 ReadWriteOncePod 卷。
  • SeccompDefault: 允许将所有工作负载的默认 seccomp 配置文件为 RuntimeDefault。 seccomp 配置在 Pod 或者容器的 securityContext 字段中指定。
  • ServerSideApply:在 API 服务器上启用服务器端应用(SSA)
  • ServerSideFieldValidation:启用服务器端字段验证。 这意味着验证资源模式在 API 服务器端而不是客户端执行 (例如,kubectl createkubectl apply 命令行)。
  • ServiceInternalTrafficPolicy:为服务启用 internalTrafficPolicy 字段。
  • ServiceIPStaticSubrange:启用服务 ClusterIP 分配策略,从而细分 ClusterIP 范围。 动态分配的 ClusterIP 地址将优先从较高范围分配,以低冲突风险允许用户从较低范围分配静态 ClusterIP。 更多详细信息请参阅避免冲突
  • SizeMemoryBackedVolumes:允许 kubelet 检查基于内存制备的卷的尺寸约束(目前主要针对 emptyDir 卷)。
  • StatefulSetMinReadySeconds: 允许 StatefulSet 控制器采纳 minReadySeconds 设置。
  • StatefulSetStartOrdinal:允许在 StatefulSet 中配置起始序号。 更多细节请参阅起始序号
  • StorageVersionAPI: 启用存储版本 API
  • StorageVersionHash:允许 API 服务器在版本发现中公开存储版本的哈希值。
  • TopologyAwareHints: 在 EndpointSlices 中启用基于拓扑提示的拓扑感知路由。 更多详细信息可参见拓扑感知提示
  • TopologyManager:启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 详见控制节点上的拓扑管理策略
  • TopologyManagerPolicyAlphaOptions:允许微调拓扑管理器策略的实验性的、Alpha 质量的选项。 此特性门控守护 一组 质量级别为 Alpha 的拓扑管理器选项。 此特性门控绝对不会进阶至 Beta 或稳定版。
  • TopologyManagerPolicyBetaOptions:允许微调拓扑管理器策略的实验性的、Beta 质量的选项。 此特性门控守护 一组 质量级别为 Beta 的拓扑管理器选项。 此特性门控绝对不会进阶至稳定版。
  • TopologyManagerPolicyOptions: Allow fine-tuning of topology manager policies,
  • UserNamespacesStatelessPodsSupport:为无状态 Pod 启用用户名字空间的支持。
  • ValidatingAdmissionPolicy:启用准入控制中所用的对 CEL 校验的 ValidatingAdmissionPolicy 支持。
  • VolumeCapacityPriority: 基于可用 PV 容量的拓扑,启用对不同节点的优先级支持。
  • WatchBookmark:启用对 watch 操作中 bookmark 事件的支持。
  • WinDSR:允许 kube-proxy 为 Windows 创建 DSR 负载均衡。
  • WinOverlay:允许在 Windows 的覆盖网络模式下运行 kube-proxy。
  • WindowsHostNetwork:启用对 Windows 容器接入主机网络名字空间的支持。
  • WindowsHostProcessContainers:启用对 Windows HostProcess 容器的支持。

接下来

  • Kubernetes 的弃用策略介绍了项目针对已移除特性和组件的处理方法。
  • 从 Kubernetes 1.24 开始,默认不启用新的 Beta API。 启用 Beta 功能时,还需要启用所有关联的 API 资源。 例如:要启用一个特定资源,如 storage.k8s.io/v1beta1/csistoragecapacities, 请设置 --runtime-config=storage.k8s.io/v1beta1/csistoragecapacities。 有关命令行标志的更多详细信息,请参阅 API 版本控制

2 - 特性门控(已移除)

本页包含了已移除的特性门控的列表。本页的信息仅供参考。 已移除的特性门控不同于正式发布(GA)或废弃的特性门控,因为已移除的特性门控将不再被视为有效的特性门控。 然而,正式发布或废弃的特性门控仍然能被对应的 Kubernetes 组件识别,这些特性门控在集群中不会造成任何行为差异。

有关 Kubernetes 组件仍可识别的特性门控,请参阅 Alpha 和 Beta 状态的特性门控已毕业和已废弃的特性门控

已移除的特性门控

在下表中,

  • “开始(From)” 列包含了引入某个特性或其发布状态发生变更时的 Kubernetes 版本。
  • “结束(To)” 列(如果不为空)包含你仍然可以使用某个特性门控的最后一个 Kubernetes 版本。 如果对应特性处于 “废弃” 或 “GA” 状态,则 “结束(To)” 列是该特性被移除时的 Kubernetes 版本。
Feature Gates Removed
特性默认值状态开始(From)结束(To)
AcceleratorsfalseAlpha1.61.10
Accelerators-Deprecated1.111.11
AffinityInAnnotationsfalseAlpha1.61.7
AffinityInAnnotations-Deprecated1.81.8
AllowExtTrafficLocalEndpointsfalseBeta1.41.6
AllowExtTrafficLocalEndpointstrueGA1.71.9
AllowInsecureBackendProxytrueBeta1.171.20
AllowInsecureBackendProxytrueGA1.211.25
AttachVolumeLimitfalseAlpha1.111.11
AttachVolumeLimittrueBeta1.121.16
AttachVolumeLimittrueGA1.171.21
BalanceAttachedNodeVolumesfalseAlpha1.111.21
BalanceAttachedNodeVolumesfalseDeprecated1.221.22
BlockVolumefalseAlpha1.91.12
BlockVolumetrueBeta1.131.17
BlockVolumetrueGA1.181.21
BoundServiceAccountTokenVolumefalseAlpha1.131.20
BoundServiceAccountTokenVolumetrueBeta1.211.21
BoundServiceAccountTokenVolumetrueGA1.221.23
CRIContainerLogRotationfalseAlpha1.101.10
CRIContainerLogRotationtrueBeta1.111.20
CRIContainerLogRotationtrueGA1.211.22
CSIBlockVolumefalseAlpha1.111.13
CSIBlockVolumetrueBeta1.141.17
CSIBlockVolumetrueGA1.181.21
CSIDriverRegistryfalseAlpha1.121.13
CSIDriverRegistrytrueBeta1.141.17
CSIDriverRegistrytrueGA1.181.21
CSIMigrationAWSCompletefalseAlpha1.171.20
CSIMigrationAWSComplete-Deprecated1.211.21
CSIMigrationAzureDiskCompletefalseAlpha1.171.20
CSIMigrationAzureDiskComplete-Deprecated1.211.21
CSIMigrationAzureFileCompletefalseAlpha1.171.20
CSIMigrationAzureFileComplete-Deprecated1.211.21
CSIMigrationGCECompletefalseAlpha1.171.20
CSIMigrationGCEComplete-Deprecated1.211.21
CSIMigrationOpenStackfalseAlpha1.141.17
CSIMigrationOpenStacktrueBeta1.181.23
CSIMigrationOpenStacktrueGA1.241.25
CSIMigrationOpenStackCompletefalseAlpha1.171.20
CSIMigrationOpenStackComplete-Deprecated1.211.21
CSIMigrationvSphereCompletefalseBeta1.191.21
CSIMigrationvSphereComplete-Deprecated1.221.22
CSINodeInfofalseAlpha1.121.13
CSINodeInfotrueBeta1.141.16
CSINodeInfotrueGA1.171.22
CSIPersistentVolumefalseAlpha1.91.9
CSIPersistentVolumetrueBeta1.101.12
CSIPersistentVolumetrueGA1.131.16
CSIServiceAccountTokenfalseAlpha1.201.20
CSIServiceAccountTokentrueBeta1.211.21
CSIServiceAccountTokentrueGA1.221.24
CSIVolumeFSGroupPolicyfalseAlpha1.191.19
CSIVolumeFSGroupPolicytrueBeta1.201.22
CSIVolumeFSGroupPolicytrueGA1.231.25
ConfigurableFSGroupPolicyfalseAlpha1.181.19
ConfigurableFSGroupPolicytrueBeta1.201.22
ConfigurableFSGroupPolicytrueGA1.231.25
CronJobControllerV2falseAlpha1.201.20
CronJobControllerV2trueBeta1.211.21
CronJobControllerV2trueGA1.221.23
CSRDurationtrueBeta1.221.23
CSRDurationtrueGA1.241.25
CustomPodDNSfalseAlpha1.91.9
CustomPodDNStrueBeta1.101.13
CustomPodDNStrueGA1.141.16
CustomResourceDefaultingfalseAlpha1.151.15
CustomResourceDefaultingtrueBeta1.161.16
CustomResourceDefaultingtrueGA1.171.18
CustomResourcePublishOpenAPIfalseAlpha1.141.14
CustomResourcePublishOpenAPItrueBeta1.151.15
CustomResourcePublishOpenAPItrueGA1.161.18
CustomResourceSubresourcesfalseAlpha1.101.10
CustomResourceSubresourcestrueBeta1.111.15
CustomResourceSubresourcestrueGA1.161.18
CustomResourceValidationfalseAlpha1.81.8
CustomResourceValidationtrueBeta1.91.15
CustomResourceValidationtrueGA1.161.18
CustomResourceWebhookConversionfalseAlpha1.131.14
CustomResourceWebhookConversiontrueBeta1.151.15
CustomResourceWebhookConversiontrueGA1.161.18
DefaultPodTopologySpreadfalseAlpha1.191.19
DefaultPodTopologySpreadtrueBeta1.201.23
DefaultPodTopologySpreadtrueGA1.241.25
DynamicAuditingfalseAlpha1.131.18
DynamicAuditing-Deprecated1.191.19
DynamicKubeletConfigfalseAlpha1.41.10
DynamicKubeletConfigtrueBeta1.111.21
DynamicKubeletConfigfalseDeprecated1.221.25
DynamicProvisioningSchedulingfalseAlpha1.111.11
DynamicProvisioningScheduling-Deprecated1.12-
DynamicVolumeProvisioningtrueAlpha1.31.7
DynamicVolumeProvisioningtrueGA1.81.12
EnableAggregatedDiscoveryTimeouttrueDeprecated1.161.17
EnableEquivalenceClassCachefalseAlpha1.81.12
EnableEquivalenceClassCache-Deprecated1.131.23
EndpointSlicefalseAlpha1.161.16
EndpointSlicefalseBeta1.171.17
EndpointSlicetrueBeta1.181.20
EndpointSlicetrueGA1.211.24
EndpointSliceNodeNamefalseAlpha1.201.20
EndpointSliceNodeNametrueGA1.211.24
EndpointSliceProxyingfalseAlpha1.181.18
EndpointSliceProxyingtrueBeta1.191.21
EndpointSliceProxyingtrueGA1.221.24
EvenPodsSpreadfalseAlpha1.161.17
EvenPodsSpreadtrueBeta1.181.18
EvenPodsSpreadtrueGA1.191.21
ExperimentalCriticalPodAnnotationfalseAlpha1.51.12
ExperimentalCriticalPodAnnotationfalseDeprecated1.131.16
ExternalPolicyForExternalIPtrueGA1.181.22
GCERegionalPersistentDisktrueBeta1.101.12
GCERegionalPersistentDisktrueGA1.131.16
GenericEphemeralVolumefalseAlpha1.191.20
GenericEphemeralVolumetrueBeta1.211.22
GenericEphemeralVolumetrueGA1.231.24
HugePageStorageMediumSizefalseAlpha1.181.18
HugePageStorageMediumSizetrueBeta1.191.21
HugePageStorageMediumSizetrueGA1.221.24
HugePagesfalseAlpha1.81.9
HugePagestrueBeta1.101.13
HugePagestrueGA1.141.16
HyperVContainerfalseAlpha1.101.19
HyperVContainerfalseDeprecated1.201.20
IPv6DualStackfalseAlpha1.151.20
IPv6DualStacktrueBeta1.211.22
IPv6DualStacktrueGA1.231.24
ImmutableEphemeralVolumesfalseAlpha1.181.18
ImmutableEphemeralVolumestrueBeta1.191.20
ImmutableEphemeralVolumestrueGA1.211.24
IndexedJobfalseAlpha1.211.21
IndexedJobtrueBeta1.221.23
IndexedJobtrueGA1.241.25
IngressClassNamespacedParamsfalseAlpha1.211.21
IngressClassNamespacedParamstrueBeta1.221.22
IngressClassNamespacedParamstrueGA1.231.24
InitializersfalseAlpha1.71.13
Initializers-Deprecated1.141.14
KubeletConfigFilefalseAlpha1.81.9
KubeletConfigFile-Deprecated1.101.10
KubeletPluginsWatcherfalseAlpha1.111.11
KubeletPluginsWatchertrueBeta1.121.12
KubeletPluginsWatchertrueGA1.131.16
LegacyNodeRoleBehaviorfalseAlpha1.161.18
LegacyNodeRoleBehaviortrueBeta1.191.20
LegacyNodeRoleBehaviorfalseGA1.211.22
MountContainersfalseAlpha1.91.16
MountContainersfalseDeprecated1.171.17
MountPropagationfalseAlpha1.81.9
MountPropagationtrueBeta1.101.11
MountPropagationtrueGA1.121.14
NamespaceDefaultLabelNametrueBeta1.211.21
NamespaceDefaultLabelNametrueGA1.221.23
NodeDisruptionExclusionfalseAlpha1.161.18
NodeDisruptionExclusiontrueBeta1.191.20
NodeDisruptionExclusiontrueGA1.211.22
NodeLeasefalseAlpha1.121.13
NodeLeasetrueBeta1.141.16
NodeLeasetrueGA1.171.23
NonPreemptingPriorityfalseAlpha1.151.18
NonPreemptingPrioritytrueBeta1.191.23
NonPreemptingPrioritytrueGA1.241.25
PVCProtectionfalseAlpha1.91.9
PVCProtection-Deprecated1.101.10
PersistentLocalVolumesfalseAlpha1.71.9
PersistentLocalVolumestrueBeta1.101.13
PersistentLocalVolumestrueGA1.141.16
PodAffinityNamespaceSelectorfalseAlpha1.211.21
PodAffinityNamespaceSelectortrueBeta1.221.23
PodAffinityNamespaceSelectortrueGA1.241.25
PodDisruptionBudgetfalseAlpha1.31.4
PodDisruptionBudgettrueBeta1.51.20
PodDisruptionBudgettrueGA1.211.25
PodOverheadfalseAlpha1.161.17
PodOverheadtrueBeta1.181.23
PodOverheadtrueGA1.241.25
PodPriorityfalseAlpha1.81.10
PodPrioritytrueBeta1.111.13
PodPrioritytrueGA1.141.18
PodReadinessGatesfalseAlpha1.111.11
PodReadinessGatestrueBeta1.121.13
PodReadinessGatestrueGA1.141.16
PodShareProcessNamespacefalseAlpha1.101.11
PodShareProcessNamespacetrueBeta1.121.16
PodShareProcessNamespacetrueGA1.171.19
PreferNominatedNodefalseAlpha1.211.21
PreferNominatedNodetrueBeta1.221.23
PreferNominatedNodetrueGA1.241.25
RequestManagementfalseAlpha1.151.16
RequestManagement-Deprecated1.171.17
ResourceLimitsPriorityFunctionfalseAlpha1.91.18
ResourceLimitsPriorityFunction-Deprecated1.191.19
ResourceQuotaScopeSelectorsfalseAlpha1.111.11
ResourceQuotaScopeSelectorstrueBeta1.121.16
ResourceQuotaScopeSelectorstrueGA1.171.18
RootCAConfigMapfalseAlpha1.131.19
RootCAConfigMaptrueBeta1.201.20
RootCAConfigMaptrueGA1.211.22
RotateKubeletClientCertificatetrueBeta1.81.18
RotateKubeletClientCertificatetrueGA1.191.21
RunAsGrouptrueBeta1.141.20
RunAsGrouptrueGA1.211.22
RuntimeClassfalseAlpha1.121.13
RuntimeClasstrueBeta1.141.19
RuntimeClasstrueGA1.201.24
SCTPSupportfalseAlpha1.121.18
SCTPSupporttrueBeta1.191.19
SCTPSupporttrueGA1.201.22
ScheduleDaemonSetPodsfalseAlpha1.111.11
ScheduleDaemonSetPodstrueBeta1.121.16
ScheduleDaemonSetPodstrueGA1.171.18
SelectorIndexfalseAlpha1.181.18
SelectorIndextrueBeta1.191.19
SelectorIndextrueGA1.201.25
ServiceAccountIssuerDiscoveryfalseAlpha1.181.19
ServiceAccountIssuerDiscoverytrueBeta1.201.20
ServiceAccountIssuerDiscoverytrueGA1.211.23
ServiceAppProtocolfalseAlpha1.181.18
ServiceAppProtocoltrueBeta1.191.19
ServiceAppProtocoltrueGA1.201.22
ServiceLBNodePortControlfalseAlpha1.201.21
ServiceLBNodePortControltrueBeta1.221.23
ServiceLBNodePortControltrueGA1.241.25
ServiceLoadBalancerClassfalseAlpha1.211.21
ServiceLoadBalancerClasstrueBeta1.221.23
ServiceLoadBalancerClasstrueGA1.241.25
ServiceLoadBalancerFinalizerfalseAlpha1.151.15
ServiceLoadBalancerFinalizertrueBeta1.161.16
ServiceLoadBalancerFinalizertrueGA1.171.20
ServiceNodeExclusionfalseAlpha1.81.18
ServiceNodeExclusiontrueBeta1.191.20
ServiceNodeExclusiontrueGA1.211.22
ServiceTopologyfalseAlpha1.171.19
ServiceTopologyfalseDeprecated1.201.22
SetHostnameAsFQDNfalseAlpha1.191.19
SetHostnameAsFQDNtrueBeta1.201.21
SetHostnameAsFQDNtrueGA1.221,24
StartupProbefalseAlpha1.161.17
StartupProbetrueBeta1.181.19
StartupProbetrueGA1.201.23
StorageObjectInUseProtectiontrueBeta1.101.10
StorageObjectInUseProtectiontrueGA1.111.24
StreamingProxyRedirectsfalseBeta1.51.5
StreamingProxyRedirectstrueBeta1.61.17
StreamingProxyRedirectstrueDeprecated1.181.21
StreamingProxyRedirectsfalseDeprecated1.221.24
SupportIPVSProxyModefalseAlpha1.81.8
SupportIPVSProxyModefalseBeta1.91.9
SupportIPVSProxyModetrueBeta1.101.10
SupportIPVSProxyModetrueGA1.111.20
SupportNodePidsLimitfalseAlpha1.141.14
SupportNodePidsLimittrueBeta1.151.19
SupportNodePidsLimittrueGA1.201.23
SupportPodPidsLimitfalseAlpha1.101.13
SupportPodPidsLimittrueBeta1.141.19
SupportPodPidsLimittrueGA1.201.23
SuspendJobfalseAlpha1.211.21
SuspendJobtrueBeta1.221.23
SuspendJobtrueGA1.241.25
SysctlstrueBeta1.111.20
SysctlstrueGA1.211.22
TTLAfterFinishedfalseAlpha1.121.20
TTLAfterFinishedtrueBeta1.211.22
TTLAfterFinishedtrueGA1.231.24
TaintBasedEvictionsfalseAlpha1.61.12
TaintBasedEvictionstrueBeta1.131.17
TaintBasedEvictionstrueGA1.181.20
TaintNodesByConditionfalseAlpha1.81.11
TaintNodesByConditiontrueBeta1.121.16
TaintNodesByConditiontrueGA1.171.18
TokenRequestfalseAlpha1.101.11
TokenRequesttrueBeta1.121.19
TokenRequesttrueGA1.201.21
TokenRequestProjectionfalseAlpha1.111.11
TokenRequestProjectiontrueBeta1.121.19
TokenRequestProjectiontrueGA1.201.21
ValidateProxyRedirectsfalseAlpha1.121.13
ValidateProxyRedirectstrueBeta1.141.21
ValidateProxyRedirectstrueDeprecated1.221.24
VolumePVCDataSourcefalseAlpha1.151.15
VolumePVCDataSourcetrueBeta1.161.17
VolumePVCDataSourcetrueGA1.181.21
VolumeSchedulingfalseAlpha1.91.9
VolumeSchedulingtrueBeta1.101.12
VolumeSchedulingtrueGA1.131.16
VolumeSnapshotDataSourcefalseAlpha1.121.16
VolumeSnapshotDataSourcetrueBeta1.171.19
VolumeSnapshotDataSourcetrueGA1.201.22
VolumeSubpathtrueGA1.101.24
VolumeSubpathEnvExpansionfalseAlpha1.141.14
VolumeSubpathEnvExpansiontrueBeta1.151.16
VolumeSubpathEnvExpansiontrueGA1.171.24
WarningHeaderstrueBeta1.191.21
WarningHeaderstrueGA1.221.24
WindowsEndpointSliceProxyingfalseAlpha1.191.20
WindowsEndpointSliceProxyingtrueBeta1.211.21
WindowsEndpointSliceProxyingtrueGA1.221.24
WindowsGMSAfalseAlpha1.141.15
WindowsGMSAtrueBeta1.161.17
WindowsGMSAtrueGA1.181.20
WindowsRunAsUserNamefalseAlpha1.161.16
WindowsRunAsUserNametrueBeta1.171.17
WindowsRunAsUserNametrueGA1.181.20

已移除的特性门控的说明

  • Accelerators:使用 Docker Engine 时启用 Nvidia GPU 支持。这一特性不再提供。 关于替代方案,请参阅设备插件

  • AffinityInAnnotations:启用 Pod 亲和或反亲和

  • AllowExtTrafficLocalEndpoints:启用服务用于将外部请求路由到节点本地终端。

  • AllowInsecureBackendProxy:允许用户在请求 Pod 日志时跳过 kubelet 的 TLS 验证。

  • AttachVolumeLimit:启用卷插件用于报告可连接到节点的卷数限制。有关更多详细信息, 请参阅动态卷限制

  • BalanceAttachedNodeVolumes:在进行平衡资源分配的调度时,考虑节点上的卷数。 调度器在决策时会优先考虑 CPU、内存利用率和卷数更近的节点。

  • BlockVolume:在 Pod 中启用原始块设备的定义和使用。有关更多详细信息, 请参见原始块卷支持

  • BoundServiceAccountTokenVolume:迁移 ServiceAccount 卷以使用由 ServiceAccountTokenVolumeProjection 组成的投射卷。集群管理员可以使用 serviceaccount_stale_tokens_total 度量值来监控依赖于扩展令牌的负载。 如果没有这种类型的负载,你可以在启动 kube-apiserver 时添加 --service-account-extend-token-expiration=false 参数关闭扩展令牌。 查看绑定服务账号令牌获取更多详细信息。
  • CRIContainerLogRotation:为 CRI 容器运行时启用容器日志轮换。日志文件的默认最大大小为 10MB,缺省情况下,一个容器允许的最大日志文件数为 5。这些值可以在 kubelet 配置中配置。 更多细节请参见日志架构
  • CSIBlockVolume:启用外部 CSI 卷驱动程序用于支持块存储。有关更多详细信息,请参见 csi 原始块卷支持

  • CSIDriverRegistry:在 csi.storage.k8s.io 中启用与 CSIDriver API 对象有关的所有逻辑。

  • CSIMigrationAWSComplete:停止在 kubelet 和卷控制器中注册 EBS 内嵌插件, 并启用填充和转换逻辑将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAWS 特性标志,并在集群中的所有节点上安装和配置 EBS CSI 插件。该特性标志已被废弃,取而代之的是 InTreePluginAWSUnregister, 后者会阻止注册 EBS 内嵌插件。
  • CSIMigrationAzureDiskComplete:停止在 kubelet 和卷控制器中注册 Azure 磁盘内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 Azure 磁盘内嵌插件路由到 AzureDisk CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureDisk 特性标志, 并在集群中的所有节点上安装和配置 AzureDisk CSI 插件。该特性标志已被废弃, 取而代之的是能防止注册内嵌 AzureDisk 插件的 InTreePluginAzureDiskUnregister 特性标志。
  • CSIMigrationAzureFileComplete:停止在 kubelet 和卷控制器中注册 Azure-File 内嵌插件, 并启用 shims 和转换逻辑以将卷操作从 Azure-File 内嵌插件路由到 AzureFile CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureFile 特性标志, 并在集群中的所有节点上安装和配置 AzureFile CSI 插件。该特性标志已被废弃, 取而代之的是能防止注册内嵌 AzureDisk 插件的 InTreePluginAzureFileUnregister 特性标志。
  • CSIMigrationOpenStack:确保填充和转换逻辑能够将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。对于禁用了此特性的节点或者没有安装并配置 Cinder CSI 插件的节点, 支持回退到内嵌(in-tree)Cinder 插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此磁特性需要启用 CSIMigration 特性标志。

  • CSIMigrationOpenStack:启用垫片和转换逻辑以将卷操作从 Cinder in-tree 插件路由到 Cinder CSI 插件。支持回退到树内 Cinder 插件, 以便对禁用该功能或未安装和配置 Cinder CSI 插件的节点进行挂载操作。 不支持回退供应操作,对于那些必须安装和配置 CSI 插件。需要启用 CSIMigration 功能标志。

  • CSIMigrationOpenStackComplete:停止在 kubelet 和卷控制器中注册 Cinder 内嵌插件, 并启用填充和转换逻辑将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationOpenStack 特性标志,并在集群中的所有节点上安装和配置 Cinder CSI 插件。该特性标志已被弃用,取而代之的是能防止注册内嵌 OpenStack Cinder 插件的 InTreePluginOpenStackUnregister 特性标志。
  • CSIMigrationvSphereComplete:停止在 kubelet 和卷控制器中注册 vSphere 内嵌插件, 并启用填充和转换逻辑以将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationvSphere 特性标志,并在集群中的所有节点上安装和配置 vSphere CSI 插件。该特性标志已被废弃,取而代之的是能防止注册内嵌 vSphere 插件的 InTreePluginvSphereUnregister 特性标志。
  • CSINodeInfo:在 csi.storage.k8s.io 中启用与 CSINodeInfo API 对象有关的所有逻辑。

  • CSIPersistentVolume:启用发现和挂载通过 CSI(容器存储接口) 兼容卷插件配置的卷。

  • CSIServiceAccountToken:允许 CSI 驱动接收挂载卷目标 Pods 的服务账号令牌。 参阅令牌请求(Token Requests)

  • CSIVolumeFSGroupPolicy:允许 CSIDrivers 使用 fsGroupPolicy 字段。 该字段能控制由 CSIDriver 创建的卷在挂载这些卷时是否支持卷所有权和权限修改。

  • CSRDuration:允许客户端为通过 Kubernetes CSR API 签署的证书申请有效期限。

  • ConfigurableFSGroupPolicy:在 Pod 中挂载卷时,允许用户为 fsGroup 配置卷访问权限和属主变更策略。请参见 为 Pod 配置卷访问权限和属主变更策略

  • CronJobControllerV2:使用 CronJob 控制器的一种替代实现。否则,系统会选择同一控制器的 v1 版本。

  • CustomPodDNS:允许使用 Pod 的 dnsConfig 属性自定义其 DNS 设置。 更多详细信息,请参见 Pod 的 DNS 配置

  • CustomResourceDefaulting:为 CRD 启用在其 OpenAPI v3 验证模式中提供默认值的支持。

  • CustomResourcePublishOpenAPI:启用 CRD OpenAPI 规范的发布。

  • DynamicAuditing:在 v1.19 版本前用于启用动态审计。

  • DynamicKubeletConfig:启用 kubelet 的动态配置。 除偏差策略场景外,不再支持该功能。该特性门控在 kubelet 1.24 版本中已被移除。 请参阅重新配置 kubelet

  • DynamicProvisioningScheduling:扩展默认调度器以了解卷拓扑并处理 PV 制备。 此特性已在 v1.12 中完全被 VolumeScheduling 特性取代。

  • DynamicVolumeProvisioning:启用持久化卷到 Pod 的动态制备

  • EnableAggregatedDiscoveryTimeout:对聚集的发现调用启用五秒钟超时设置。

  • EnableEquivalenceClassCache:调度 Pod 时,使 scheduler 缓存节点的等效项。

  • EndpointSlice:启用 EndpointSlice 以实现可扩缩性和可扩展性更好的网络端点。 参阅启用 EndpointSlice

  • EndpointSliceNodeName:允许使用 EndpointSlice 的 nodeName 字段。

  • EndpointSliceProxying:启用此特性门控时,Linux 上运行的 kube-proxy 会使用 EndpointSlices 而不是 Endpoints 作为其主要数据源,从而使得可扩缩性和性能提升成为可能。 参阅启用 EndpointSlice

  • EvenPodsSpread:使 Pod 能够在拓扑域之间平衡调度。请参阅 Pod 拓扑扩展约束

  • ExperimentalCriticalPodAnnotation:启用将特定 Pod 注解为 critical 的方式, 用于确保其被调度。 从 v1.13 开始已弃用此特性,转而使用 Pod 优先级和抢占功能。

  • ExternalPolicyForExternalIP:修复 ExternalPolicyForExternalIP 没有应用于 Service ExternalIPs 的缺陷。

  • GCERegionalPersistentDisk:在 GCE 上启用带地理区域信息的 PD 特性。

  • GenericEphemeralVolume:启用支持临时的内联卷,这些卷支持普通卷 (可以由第三方存储供应商提供、存储容量跟踪、从快照还原等等)的所有功能。 请参见临时卷

  • HugePageStorageMediumSize: 启用支持多种大小的预分配巨页资源

  • HugePages: 启用分配和使用预分配的巨页资源

  • HyperVContainer:为 Windows 容器启用 Hyper-V 隔离

  • IPv6DualStack:启用双协议栈以支持 IPv6。

  • ImmutableEphemeralVolumes:允许将各个 Secret 和 ConfigMap 标记为不可变更的, 以提高安全性和性能。

  • IndexedJob:允许 Job 控制器根据完成索引来管理 Pod 完成。

  • IngressClassNamespacedParams:允许在 IngressClass 资源中使用名字空间范围的参数引用。 此功能为 IngressClass.spec.parameters 添加了两个字段 - scopenamespace

  • Initializers:允许使用 Intializers 准入插件来异步协调对象创建操作。

  • KubeletConfigFile:启用从使用配置文件指定的文件中加载 kubelet 配置。 有关更多详细信息, 请参见通过配置文件设置 kubelet 参数

  • KubeletPluginsWatcher:启用基于探针的插件监视应用程序,使 kubelet 能够发现类似 CSI 卷驱动程序这类插件。

  • LegacyNodeRoleBehavior:禁用此门控时,服务负载均衡器中和节点干扰中的原先行为会忽略 node-role.kubernetes.io/master 标签,使用 NodeDisruptionExclusionServiceNodeExclusion 对应特性所提供的标签。

  • MountContainers:允许使用主机上的工具容器作为卷挂载程序。

  • MountPropagation:启用将一个容器安装的共享卷共享到其他容器或 Pod。 更多详细信息,请参见挂载传播

  • NamespaceDefaultLabelName:配置 API 服务器以在所有名字空间上设置一个不可变的 标签 kubernetes.io/metadata.name, 取值为名字空间的名称。

  • NodeDisruptionExclusion:启用节点标签 node.kubernetes.io/exclude-disruption, 以防止在可用区发生故障期间驱逐节点。

  • NodeLease:启用新的 Lease(租期)API 以报告节点心跳,可用作节点运行状况信号。

  • NonPreemptingPriority:为 PriorityClass 和 Pod 启用 preemptionPolicy 选项。

  • PVCProtection:当 PersistentVolumeClaim (PVC) 仍然在 Pod 使用时被删除,启用保护。

  • PodShareProcessNamespace:在 Pod 中启用 shareProcessNamespace 的设置, 以便在 Pod 中运行的容器之间共享同一进程名字空间。更多详细信息, 请参见在 Pod 中的容器间共享同一进程名字空间

  • PreferNominatedNode:这个标志告诉调度器在循环遍历集群中的所有其他节点之前, 是否首先检查指定的节点。

  • RequestManagement:允许在每个 API 服务器上通过优先级和公平性管理请求并发性。 自 1.17 以来已被 APIPriorityAndFairness 替代。

  • ResourceLimitsPriorityFunction:启用某调度器优先级函数, 该函数将最低得分 1 指派给至少满足输入 Pod 的 CPU 和内存限制之一的节点, 目的是打破得分相同的节点之间的关联。

  • ResourceQuotaScopeSelectors:启用资源配额范围选择算符。

  • RootCAConfigMap:配置 kube-controller-manager,使之发布一个名为 kube-root-ca.crtConfigMap, 到所有名字空间中。该 ConfigMap 包含用来验证与 kube-apiserver 之间连接的 CA 证书包。 参阅绑定服务账号令牌 以了解更多细节。

  • RotateKubeletClientCertificate:在 kubelet 上启用客户端 TLS 证书的轮换。 更多详细信息,请参见 kubelet 配置

  • RunAsGroup:启用对容器初始化过程中设置的主要组 ID 的控制。

  • RuntimeClass:启用 RuntimeClass 特性用于选择容器运行时配置。

  • SCTPSupport:在 Pod、Service、Endpoints、NetworkPolicy 定义中允许将 'SCTP' 用作 protocol 值。

  • ScheduleDaemonSetPods:启用 DaemonSet Pod 由默认调度程序而不是 DaemonSet 控制器进行调度。

  • SelectorIndex:允许使用 API 服务器的 watch 缓存中基于标签和字段的索引来加速 list 操作。

  • ServiceAccountIssuerDiscovery:在 API 服务器中为服务账号颁发者启用 OIDC 发现端点 (颁发者和 JWKS URL)。详情参见 为 Pod 配置服务账号

  • ServiceAppProtocol:为 Service 和 Endpoints 启用 appProtocol 字段。

  • ServiceLoadBalancerClass:为服务启用 loadBalancerClass 字段。 有关更多信息,请参见指定负载均衡器实现类

  • ServiceLoadBalancerFinalizer:为服务负载均衡启用终结器(finalizers)保护。

  • ServiceLBNodePortControl:为服务启用 allocateLoadBalancerNodePorts 字段。

  • ServiceNodeExclusion:启用从云提供商创建的负载均衡中排除节点。 如果节点标记有 node.kubernetes.io/exclude-from-external-load-balancers 标签,则可以排除该节点。

  • ServiceTopology:启用服务拓扑可以让一个服务基于集群的节点拓扑进行流量路由。 有关更多详细信息,请参见服务拓扑

  • SetHostnameAsFQDN:启用将全限定域名(FQDN)设置为 Pod 主机名的功能。 请参见为 Pod 设置 setHostnameAsFQDN 字段

  • StartupProbe:在 kubelet 中启用启动探针

  • StorageObjectInUseProtection:如果仍在使用 PersistentVolume 或 PersistentVolumeClaim 对象,则将其删除操作推迟。

  • StreamingProxyRedirects:指示 API 服务器拦截(并跟踪)后端(kubelet)的重定向以处理流请求。 流请求的例子包括 execattachport-forward 请求。

  • SupportIPVSProxyMode:启用使用 IPVS 提供集群内服务负载平衡。更多详细信息, 请参见服务代理

  • SupportNodePidsLimit:启用支持,限制节点上的 PID 用量。 --system-reserved--kube-reserved 中的参数 pid=<数值> 可以分别用来设定为整个系统所预留的进程 ID 个数和为 Kubernetes 系统守护进程预留的进程 ID 个数。

  • SupportPodPidsLimit:启用支持限制 Pod 中的进程 PID。

  • SuspendJob:启用对追加和恢复 Job 的支持。更多细节请参阅 Job 文档

  • Sysctls:允许为每个 Pod 设置的名字空间内核参数(sysctls)。 更多详细信息,请参见 sysctls

  • TTLAfterFinished:资源完成执行后,允许 TTL 控制器清理资源。

  • TaintBasedEvictions:根据节点上的污点和 Pod 上的容忍度启用从节点驱逐 Pod 的特性。 更多详细信息可参见污点和容忍度

  • TaintNodesByCondition: 根据节点状况启用自动为节点标记污点。

  • TokenRequest:在服务账号资源上启用 TokenRequest 端点。

  • TokenRequestProjection:启用通过 projected将服务账号令牌注入到 Pod 中的特性。

  • ValidateProxyRedirects:这个标志控制 API 服务器是否应该验证只跟随到相同的主机的重定向。 仅在启用 StreamingProxyRedirects 标志时被使用。

  • VolumePVCDataSource:启用对将现有 PVC 指定数据源的支持。

  • VolumeScheduling:启用卷拓扑感知调度,并使 PersistentVolumeClaim(PVC) 绑定能够了解调度决策;当与 PersistentLocalVolumes 特性门控一起使用时, 还允许使用 local 卷类型。

  • VolumeSnapshotDataSource:启用卷快照数据源支持。

  • VolumeSubpath:允许在容器中挂载卷的子路径。

  • VolumeSubpathEnvExpansion:启用 subPathExpr 字段用于在 subPath 中展开环境变量。

  • WarningHeaders:允许在 API 响应中发送警告头部。

  • WindowsEndpointSliceProxying:当启用时,运行在 Windows 上的 kube-proxy 将使用 EndpointSlices 而不是 Endpoints 作为主要数据源,从而实现可伸缩性和并改进性能。 详情请参见启用端点切片

  • WindowsGMSA:允许将 GMSA 凭据规范从 Pod 传递到容器运行时。

  • WindowsRunAsUserName:提供使用非默认用户在 Windows 容器中运行应用程序的支持。 详情请参见配置 RunAsUserName

3 - kubelet

简介

kubelet 是在每个 Node 节点上运行的主要 “节点代理”。它可以使用以下之一向 apiserver 注册: 主机名(hostname);覆盖主机名的参数;某云驱动的特定逻辑。

kubelet 是基于 PodSpec 来工作的。每个 PodSpec 是一个描述 Pod 的 YAML 或 JSON 对象。 kubelet 接受通过各种机制(主要是通过 apiserver)提供的一组 PodSpec,并确保这些 PodSpec 中描述的容器处于运行状态且运行状况良好。 kubelet 不管理不是由 Kubernetes 创建的容器。

除了来自 apiserver 的 PodSpec 之外,还可以通过以下两种方式将容器清单(manifest)提供给 kubelet。

  • 文件(File):利用命令行参数传递路径。kubelet 周期性地监视此路径下的文件是否有更新。 监视周期默认为 20s,且可通过参数进行配置。
  • HTTP 端点(HTTP endpoint):利用命令行参数指定 HTTP 端点。 此端点的监视周期默认为 20 秒,也可以使用参数进行配置。
kubelet [flags]

选项

--address string     默认值:0.0.0.0
kubelet 用来提供服务的 IP 地址(设置为0.0.0.0 表示使用所有 IPv4 接口, 设置为 :: 表示使用所有 IPv6 接口)。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--allowed-unsafe-sysctls strings
用逗号分隔的字符串序列设置允许使用的非安全的 sysctls 或 sysctl 模式(以 * 结尾)。 使用此参数时风险自担。(已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--anonymous-auth     默认值:true
设置为 true 表示 kubelet 服务器可以接受匿名请求。未被任何认证组件拒绝的请求将被视为匿名请求。 匿名请求的用户名为 system:anonymous,用户组为 system:unauthenticated。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--authentication-token-webhook
使用 TokenReview API 对持有者令牌进行身份认证。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--authentication-token-webhook-cache-ttl duration     默认值:2m0s
对 Webhook 令牌认证组件所返回的响应的缓存时间。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--authorization-mode string
kubelet 服务器的鉴权模式。可选值包括:AlwaysAllowWebhookWebhook 模式使用 SubjectAccessReview API 鉴权。 当 --config 参数未被设置时,默认值为 AlwaysAllow,当使用了 --config 时,默认值为 Webhook。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--authorization-webhook-cache-authorized-ttl duration     默认值:5m0s
对 Webhook 认证组件所返回的 “Authorized(已授权)” 应答的缓存时间。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--authorization-webhook-cache-unauthorized-ttl duration     默认值:30s
对 Webhook 认证组件所返回的 “Unauthorized(未授权)” 应答的缓存时间。 --config 时,默认值为 Webhook。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--azure-container-registry-config string
包含 Azure 容器镜像库配置信息的文件的路径。
--bootstrap-kubeconfig string
某 kubeconfig 文件的路径,该文件将用于获取 kubelet 的客户端证书。 如果 --kubeconfig 所指定的文件不存在,则使用引导所用 kubeconfig 从 API 服务器请求客户端证书。成功后,将引用生成的客户端证书和密钥的 kubeconfig 写入 --kubeconfig 所指定的路径。客户端证书和密钥文件将存储在 --cert-dir 所指的目录。
--cert-dir string     默认值:/var/lib/kubelet/pki
TLS 证书所在的目录。如果设置了 --tls-cert-file--tls-private-key-file, 则此标志将被忽略。
--cgroup-driver string     默认值:cgroupfs
kubelet 用来操作本机 cgroup 时使用的驱动程序。支持的选项包括 cgroupfssystemd。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cgroup-root string     默认值:""
可选的选项,为 Pod 设置根 cgroup。容器运行时会尽可能使用此配置。 默认值 "" 意味着将使用容器运行时的默认设置。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cgroups-per-qos     默认值:true
启用创建 QoS cgroup 层次结构。此值为 true 时 kubelet 为 QoS 和 Pod 创建顶级的 cgroup。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--client-ca-file string
如果设置了此参数,则使用对应文件中机构之一检查请求中所携带的客户端证书。 若客户端证书通过身份认证,则其对应身份为其证书中所设置的 CommonName。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cloud-config string
云驱动配置文件的路径。空字符串表示没有配置文件。 已弃用:将在 1.24 或更高版本中移除,以便于从 kubelet 中去除云驱动代码。
--cloud-provider string
云服务的提供者。设置为空字符串表示在没有云驱动的情况下运行。 如果设置了此标志,则云驱动负责确定节点的名称(参考云提供商文档以确定是否以及如何使用主机名)。 已弃用:将在 1.24 或更高版本中移除,以便于从 kubelet 中去除云驱动代码。
--cluster-dns strings
DNS 服务器的 IP 地址,以逗号分隔。此标志值用于 Pod 中设置了 “dnsPolicy=ClusterFirst” 时为容器提供 DNS 服务。注意:列表中出现的所有 DNS 服务器必须包含相同的记录组, 否则集群中的名称解析可能无法正常工作。至于名称解析过程中会牵涉到哪些 DNS 服务器, 这一点无法保证。 --config 时,默认值为 Webhook。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cluster-domain string
集群的域名。如果设置了此值,kubelet 除了将主机的搜索域配置到所有容器之外,还会为其 配置所搜这里指定的域名。 --config 时,默认值为 Webhook。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--config string
kubelet 将从此标志所指的文件中加载其初始配置。此路径可以是绝对路径,也可以是相对路径。 相对路径按 kubelet 的当前工作目录起计。省略此参数时 kubelet 会使用内置的默认配置值。 命令行参数会覆盖此文件中的配置。
--container-log-max-files int32     默认值:5
设置容器的日志文件个数上限。此值必须不小于 2。 此标志只能与 --container-runtime=remote 标志一起使用。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--container-log-max-size string     默认值:10Mi
设置容器日志文件在轮换生成新文件时之前的最大值(例如,10Mi)。 此标志只能与 --container-runtime=remote 标志一起使用。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--container-runtime string     默认值:remote
要使用的容器运行时。目前支持 dockerremote。 (已弃用:将会在 1.27 版本中移除,因为合法值只有 “remote”)
--container-runtime-endpoint string
远程运行时服务的端点。目前支持 Linux 系统上的 UNIX 套接字和 Windows 系统上的 npipe 和 TCP 端点。例如: unix:///path/to/runtime.socknpipe:////./pipe/runtime
--contention-profiling
当启用了性能分析时,启用锁竞争分析。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cpu-cfs-quota     默认值:true
为设置了 CPU 限制的容器启用 CPU CFS 配额保障。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cpu-cfs-quota-period duration     默认值:100ms
设置 CPU CFS 配额周期 cpu.cfs_period_us。默认使用 Linux 内核所设置的默认值。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cpu-manager-policy string     默认值:none
要使用的 CPU 管理器策略。可选值包括:nonestatic。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cpu-manager-policy-options string
一组用于微调其行为的 key=value CPU 管理器策略选项。如果未提供,请保留默认行为。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cpu-manager-reconcile-period duration     默认值:10s
<警告:Alpha 特性> 设置 CPU 管理器的调和时间。例如:10s 或者 1m。 如果未设置,默认使用节点状态更新频率。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--enable-controller-attach-detach     默认值:true
启用 Attach/Detach 控制器来挂接和摘除调度到该节点的卷,同时禁用 kubelet 执行挂接和摘除操作。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--enable-debugging-handlers     默认值:true
启用服务器上用于日志收集和在本地运行容器和命令的端点。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--enable-server     默认值:true
启用 kubelet 服务器。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--enforce-node-allocatable strings     默认值:pods
用逗号分隔的列表,包含由 kubelet 强制执行的节点可分配资源级别。 可选配置为:nonepodssystem-reservedkube-reserved。 在设置 system-reservedkube-reserved 这两个值时,同时要求设置 --system-reserved-cgroup--kube-reserved-cgroup 这两个参数。 如果设置为 none,则不需要设置其他参数。 参考相关文档。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--event-burst int32     默认值:10
事件记录的个数的突发峰值上限,在遵从 --event-qps 阈值约束的前提下 临时允许事件记录达到此数目。仅在 --event-qps 大于 0 时使用。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--event-qps int32     默认值:5
设置大于 0 的值表示限制每秒可生成的事件数量。设置为 0 表示不限制。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-hard string     默认值:imagefs.available<15%,memory.available<100Mi,nodefs.available<10%
触发 Pod 驱逐操作的一组硬性门限(例如:memory.available<1Gi (内存可用值小于 1G)设置。在 Linux 节点上,默认值还包括 nodefs.inodesFree<5%。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-max-pod-grace-period int32
响应满足软性驱逐阈值(Soft Eviction Threshold)而终止 Pod 时使用的最长宽限期(以秒为单位)。 如果设置为负数,则遵循 Pod 的指定值。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-minimum-reclaim string
当某资源压力过大时,kubelet 将执行 Pod 驱逐操作。 此参数设置软性驱逐操作需要回收的资源的最小数量(例如:imagefs.available=2Gi)。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-pressure-transition-period duration     默认值:5m0s
kubelet 在驱逐压力状况解除之前的最长等待时间。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-soft string
设置一组驱逐阈值(例如:memory.available<1.5Gi)。 如果在相应的宽限期内达到该阈值,则会触发 Pod 驱逐操作。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-soft-grace-period string
设置一组驱逐宽限期(例如,memory.available=1m30s),对应于触发软性 Pod 驱逐操作之前软性驱逐阈值所需持续的时间长短。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--exit-on-lock-contention
设置为 true 表示当发生锁文件竞争时 kubelet 可以退出。
--experimental-allocatable-ignore-eviction     默认值:false
设置为 true 表示在计算节点可分配资源数量时忽略硬性逐出阈值设置。 参考 相关文档。 已启用:将在 1.24 或更高版本中移除。
--experimental-mounter-path string     默认值:mount
[实验性特性] 卷挂载器(mounter)的可执行文件的路径。设置为空表示使用默认挂载器 mount。 已弃用:将在 1.24 或更高版本移除以支持 CSI。
--fail-swap-on     默认值:true
设置为 true 表示如果主机启用了交换分区,kubelet 将直接失败。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--feature-gates mapStringBool
用于 alpha 实验性特性的特性开关组,每个开关以 key=value 形式表示。当前可用开关包括:
APIListChunking=true|false (BETA - 默认值为 true)
APIPriorityAndFairness=true|false (BETA - 默认值为 true)
APIResponseCompression=true|false (BETA - 默认值为 true)
APISelfSubjectReview=true|false (ALPHA - 默认值为 false)
APIServerIdentity=true|false (BETA - 默认值为 true)
APIServerTracing=true|false (ALPHA - 默认值为 false)
AggregatedDiscoveryEndpoint=true|false (ALPHA - 默认值为 false)
AllAlpha=true|false (ALPHA - 默认值为 false)
AllBeta=true|false (BETA - 默认值为 false)
AnyVolumeDataSource=true|false (BETA - 默认值为 true)
AppArmor=true|false (BETA - 默认值为 true)
CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认值为 false)
CPUManagerPolicyBetaOptions=true|false (BETA - 默认值为 true)
CPUManagerPolicyOptions=true|false (BETA - 默认值为 true)
CSIMigrationRBD=true|false (ALPHA - 默认值为 false)
CSINodeExpandSecret=true|false (ALPHA - 默认值为 false)
CSIVolumeHealth=true|false (ALPHA - 默认值为 false)
ComponentSLIs=true|false (ALPHA - 默认值为 false)
ContainerCheckpoint=true|false (ALPHA - 默认值为 false)
ContextualLogging=true|false (ALPHA - 默认值为 false)
CronJobTimeZone=true|false (BETA - 默认值为 true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值为 false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值为 false)
CustomResourceValidationExpressions=true|false (BETA - 默认值为 true)
DisableCloudProviders=true|false (ALPHA - 默认值为 false)
DisableKubeletCloudCredentialProviders=true|false (ALPHA - 默认值为 false)
DownwardAPIHugePages=true|false (BETA - 默认值为 true)
DynamicResourceAllocation=true|false (ALPHA - 默认值为 false)
EventedPLEG=true|false (ALPHA - 默认值为 false)
ExpandedDNSConfig=true|false (BETA - 默认值为 true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值为 false)
GRPCContainerProbe=true|false (BETA - 默认值为 true)
GracefulNodeShutdown=true|false (BETA - 默认值为 true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值为 true)
HPAContainerMetrics=true|false (ALPHA - 默认值为 false)
HPAScaleToZero=true|false (ALPHA - 默认值为 false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值为 false)
IPTablesOwnershipCleanup=true|false (ALPHA - 默认值为 false)
InTreePluginAWSUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginGCEUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginPortworxUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginRBDUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值为 false)
JobMutableNodeSchedulingDirectives=true|false (BETA - 默认值为 true)
JobPodFailurePolicy=true|false (BETA - 默认值为 true)
JobReadyPods=true|false (BETA - 默认值为 true)
KMSv2=true|false (ALPHA - 默认值为 false)
KubeletInUserNamespace=true|false (ALPHA - 默认值为 false)
KubeletPodResources=true|false (BETA - 默认值为 true)
KubeletPodResourcesGetAllocatable=true|false (BETA - 默认值为 true)
KubeletTracing=true|false (ALPHA - 默认值为 false)
LegacyServiceAccountTokenTracking=true|false (ALPHA - 默认值为 false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值为 false)
LogarithmicScaleDown=true|false (BETA - 默认值为 true)
LoggingAlphaOptions=true|false (ALPHA - 默认值为 false)
LoggingBetaOptions=true|false (BETA - 默认值为 true)
MatchLabelKeysInPodTopologySpread=true|false (ALPHA - 默认值为 false)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值为 false)
MemoryManager=true|false (BETA - 默认值为 true)
MemoryQoS=true|false (ALPHA - 默认值为 false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值为 false)
MinimizeIPTablesRestore=true|false (ALPHA - 默认值为 false)
MultiCIDRRangeAllocator=true|false (ALPHA - 默认值为 false)
NetworkPolicyStatus=true|false (ALPHA - 默认值为 false)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值为 true)
NodeOutOfServiceVolumeDetach=true|false (BETA - 默认值为 true)
NodeSwap=true|false (ALPHA - 默认值为 false)
OpenAPIEnums=true|false (BETA - 默认值为 true)
OpenAPIV3=true|false (BETA - 默认值为 true)
PDBUnhealthyPodEvictionPolicy=true|false (ALPHA - 默认值为 false)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值为 false)
PodDeletionCost=true|false (BETA - 默认值为 true)
PodDisruptionConditions=true|false (BETA - 默认值为 true)
PodHasNetworkCondition=true|false (ALPHA - 默认值为 false)
PodSchedulingReadiness=true|false (ALPHA - 默认值为 false)
ProbeTerminationGracePeriod=true|false (BETA - 默认值为 true)
ProcMountType=true|false (ALPHA - 默认值为 false)
ProxyTerminatingEndpoints=true|false (BETA - 默认值为 true)
QOSReserved=true|false (ALPHA - 默认值为 false)
ReadWriteOncePod=true|false (ALPHA - 默认值为 false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值为 false)
RemainingItemCount=true|false (BETA - 默认值为 true)
RetroactiveDefaultStorageClass=true|false (BETA - 默认值为 true)
RotateKubeletServerCertificate=true|false (BETA - 默认值为 true)
SELinuxMountReadWriteOncePod=true|false (ALPHA - 默认值为 false)
SeccompDefault=true|false (BETA - 默认值为 true)
ServerSideFieldValidation=true|false (BETA - 默认值为 true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值为 true)
StatefulSetAutoDeletePVC=true|false (ALPHA - 默认值为 false)
StatefulSetStartOrdinal=true|false (ALPHA - 默认值为 false)
StorageVersionAPI=true|false (ALPHA - 默认值为 false)
StorageVersionHash=true|false (BETA - 默认值为 true)
TopologyAwareHints=true|false (BETA - 默认值为 true)
TopologyManager=true|false (BETA - 默认值为 true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值为 false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值为 false)
TopologyManagerPolicyOptions=true|false (ALPHA - 默认值为 false)
UserNamespacesStatelessPodsSupport=true|false (ALPHA - 默认值为 false)
ValidatingAdmissionPolicy=true|false (ALPHA - 默认值为 false)
VolumeCapacityPriority=true|false (ALPHA - 默认值为 false)
WinDSR=true|false (ALPHA - 默认值为 false)
WinOverlay=true|false (BETA - 默认值为 true)
WindowsHostNetwork=true|false (ALPHA - 默认值为 true)
已弃用: 应在 --config 所给的配置文件中进行设置。 (进一步了解
--file-check-frequency duration     默认值:20s
检查配置文件中新数据的时间间隔。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--topology-manager-policy-options string
一组 key=value Topology Manager 策略选项,用于微调它们的行为。 如果未提供,则保持默认行为。(已弃用:此参数应通过 Kubelet 的 --config 标志指定的配置文件设置。请参阅 kubelet-config-file 了解更多信息。)
--hairpin-mode string     默认值:promiscuous-bridge
设置 kubelet 执行发夹模式(hairpin)网络地址转译的方式。 该模式允许后端端点对其自身服务的访问能够再次经由负载均衡转发回自身。 可选项包括 promiscuous-bridgehairpin-vethnone。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--healthz-bind-address string     默认值:127.0.0.1
用于运行 healthz 服务器的 IP 地址(设置为 0.0.0.0 表示使用所有 IPv4 接口, 设置为 :: 表示使用所有 IPv6 接口。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--healthz-port int32     默认值:10248
本地 healthz 端点使用的端口(设置为 0 表示禁用)。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
-h, --help
kubelet 操作的帮助命令
--hostname-override string
如果为非空,将使用此字符串而不是实际的主机名作为节点标识。如果设置了 --cloud-provider,则云驱动将确定节点的名称 (请查阅云服务商文档以确定是否以及如何使用主机名)。
--http-check-frequency duration     默认值:20s
HTTP 服务以获取新数据的时间间隔。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--image-credential-provider-bin-dir string
指向凭据提供组件可执行文件所在目录的路径。
--image-credential-provider-config string
指向凭据提供插件配置文件所在目录的路径。
--image-gc-high-threshold int32     默认值:85
镜像垃圾回收上限。磁盘使用空间达到该百分比时,镜像垃圾回收将持续工作。 值必须在 [0,100] 范围内。要禁用镜像垃圾回收,请设置为 100。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--image-gc-low-threshold int32     默认值:80
镜像垃圾回收下限。磁盘使用空间在达到该百分比之前,镜像垃圾回收操作不会运行。 值必须在 [0,100] 范围内,并且不得大于 --image-gc-high-threshold的值。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--image-service-endpoint string
[实验性特性] 远程镜像服务的端点。若未设定则默认情况下使用 --container-runtime-endpoint 的值。目前支持的类型包括在 Linux 系统上的 UNIX 套接字端点和 Windows 系统上的 npipe 和 TCP 端点。 例如:unix:///var/run/dockershim.socknpipe:////./pipe/dockershim
--iptables-drop-bit int32     默认值:15
标记数据包将被丢弃的 fwmark 位设置。必须在 [0,31] 范围内。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--iptables-masquerade-bit int32     默认值:14
标记数据包将进行 SNAT 的 fwmark 空间位设置。必须在 [0,31] 范围内。 请将此参数与 kube-proxy 中的相应参数匹配。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--keep-terminated-pod-volumes
设置为 true 表示 Pod 终止后仍然保留之前挂载过的卷,常用于调试与卷有关的问题。 已弃用:将未来版本中移除。
--kernel-memcg-notification
若启用,则 kubelet 将与内核中的 memcg 通知机制集成,不再使用轮询的方式来判定 是否 Pod 达到内存驱逐阈值。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kube-api-burst int32     默认值:10
每秒发送到 apiserver 的突发请求数量上限。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kube-api-content-type string     默认值:application/vnd.kubernetes.protobuf
发送到 apiserver 的请求的内容类型。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kube-api-qps int32     默认值:5
与 apiserver 通信的每秒查询个数(QPS)。 此值必须 >= 0。如果为 0,则使用默认 QPS(5)。 不包含事件和节点心跳 api,它们的速率限制是由一组不同的标志所控制。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kube-reserved string     默认值:<None>
kubernetes 系统预留的资源配置,以一组 <资源名称>=<资源数量> 格式表示。 (例如:cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid='100')。 当前支持 cpumemory 和用于根文件系统的 ephemeral-storage。 请参阅这里获取更多信息。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kube-reserved-cgroup string     默认值:""
给出某个顶层 cgroup 绝对名称,该 cgroup 用于管理通过标志 --kube-reserved 为 kubernetes 组件所预留的计算资源。例如:"/kube-reserved"。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kubeconfig string
kubeconfig 配置文件的路径,指定如何连接到 API 服务器。 提供 --kubeconfig 将启用 API 服务器模式,而省略 --kubeconfig 将启用独立模式。
--kubelet-cgroups string
用于创建和运行 kubelet 的 cgroup 的绝对名称。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--local-storage-capacity-isolation>     Default: true
如果此值为 true,将启用本地临时存储隔离。 否则,本地存储隔离功能特性将被禁用。 (已弃用:这个参数应该通过 Kubelet 的 --config 标志指定的配置文件来设置。 有关详细信息,请参阅 https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/kubelet-config-file/)。
--lock-file string
<警告:Alpha 特性> kubelet 用作锁文件的文件路径。
--log-flush-frequency duration     默认值:5s
两次日志刷新之间的最大秒数(默认值为 5s)。
--log-json-info-buffer-size string     默认值:'0'
[Alpha 特性]在具有拆分输出流的 JSON 格式中,可以将信息消息缓冲一段时间以提高性能。 零字节的默认值禁用缓冲。大小可以指定为字节数(512)、1000 的倍数(1K)、1024 的倍数(2Ki) 或这些(3M、4G、5Mi、6Gi)的幂。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--log-json-split-stream
[Alpha 特性]以 JSON 格式,将错误消息写入 stderr,将 info 消息写入 stdout。 默认是将单个流写入标准输出。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--logging-format string     默认值:"text"
--logtostderr     默认值:true
设置日志格式。允许的格式:textjson(由 LoggingBetaOptions 控制)。 (已弃用:此参数应通过 Kubelet 的 --config 标志指定的配置文件设置。 请参阅 kubelet-config-file 了解更多信息。)
--make-iptables-util-chains     默认值:true
设置为 true 表示 kubelet 将确保 iptables 规则在主机上存在。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--manifest-url string
用于访问要运行的其他 Pod 规范的 URL。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--manifest-url-header string
取值为由 HTTP 头部组成的逗号分隔列表,在访问 --manifest-url 所给出的 URL 时使用。 名称相同的多个头部将按所列的顺序添加。该参数可以多次使用。例如: --manifest-url-header 'a:hello,b:again,c:world' --manifest-url-header 'b:beautiful'。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--master-service-namespace string     默认值:default
kubelet 向 Pod 注入 Kubernetes 主控服务信息时使用的命名空间。 已弃用:此标志将在未来的版本中删除。
--max-open-files int     默认值:1000000
kubelet 进程可以打开的最大文件数量。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--max-pods int32     默认值:110
此 kubelet 能运行的 Pod 最大数量。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--maximum-dead-containers int32     默认值:-1
设置全局可保留的已停止容器实例个数上限。 每个实例会占用一些磁盘空间。要禁用,请设置为负数。 已弃用:改用 --eviction-hard--eviction-soft。 此标志将在未来的版本中删除。
--maximum-dead-containers-per-container int32     默认值:1
每个已停止容器可以保留的的最大实例数量。每个容器占用一些磁盘空间。 已弃用:改用 --eviction-hard--eviction-soft。 此标志将在未来的版本中删除。
--memory-manager-policy string     默认值:None
内存管理器策略使用。可选值:'None''Static'。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--minimum-container-ttl-duration duration
已结束的容器在被垃圾回收清理之前的最少存活时间。 例如:'300ms''10s' 或者 '2h45m'。 已弃用:请改用 --eviction-hard 或者 --eviction-soft。 此标志将在未来的版本中删除。
--minimum-image-ttl-duration duration     默认值:2m0s
已结束的容器在被垃圾回收清理之前的最少存活时间。 例如:'300ms''10s' 或者 '2h45m'。 已弃用:这个参数应该通过 Kubelet 的 --config 标志指定的配置文件来设置。 (进一步了解
--node-ip string
节点的 IP 地址(或逗号分隔的双栈 IP 地址)。 如果未设置,kubelet 将使用节点的默认 IPv4 地址(如果有)或默认 IPv6 地址(如果它没有 IPv4 地址)。 你可以传值 '::' 使其偏向于默认的 IPv6 地址而不是默认的 IPv4 地址。
--node-labels <key=value pairs>
<警告:Alpha 特性> kubelet 在集群中注册本节点时设置的标签。标签以 key=value 的格式表示,多个标签以逗号分隔。名字空间 kubernetes.io 中的标签必须以 kubelet.kubernetes.ionode.kubernetes.io 为前缀, 或者在以下明确允许范围内: beta.kubernetes.io/arch, beta.kubernetes.io/instance-type, beta.kubernetes.io/os, failure-domain.beta.kubernetes.io/region, failure-domain.beta.kubernetes.io/zone, kubernetes.io/arch, kubernetes.io/hostname, kubernetes.io/os, node.kubernetes.io/instance-type, topology.kubernetes.io/region, topology.kubernetes.io/zone
--node-status-max-images int32     默认值:50
node.status.images 中可以报告的最大镜像数量。如果指定为 -1,则不设上限。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--node-status-update-frequency duration     默认值:10s
指定 kubelet 向主控节点汇报节点状态的时间间隔。注意:更改此常量时请务必谨慎, 它必须与节点控制器中的 nodeMonitorGracePeriod 一起使用。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--oom-score-adj int32     默认值:-999
kubelet 进程的 oom-score-adj 参数值。有效范围为 [-1000,1000]。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--pod-cidr string
用于给 Pod 分配 IP 地址的 CIDR 地址池,仅在独立运行模式下使用。 在集群模式下,CIDR 设置是从主服务器获取的。对于 IPv6,分配的 IP 的最大数量为 65536。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--pod-infra-container-image string      默认值: registry.k8s.io/pause:3.9
所指定的镜像不会被镜像垃圾收集器删除。 CRI 实现有自己的配置来设置此镜像。 (已弃用:将在 1.27 中删除,镜像垃圾收集器将从 CRI 获取沙箱镜像信息。)
--pod-manifest-path string
设置包含要运行的静态 Pod 的文件的路径,或单个静态 Pod 文件的路径。以点(.) 开头的文件将被忽略。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--pod-max-pids int     默认值:-1
设置每个 Pod 中的最大进程数目。如果为 -1,则 kubelet 使用节点可分配的 PID 容量作为默认值。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--pods-per-core int32
kubelet 在每个处理器核上可运行的 Pod 数量。此 kubelet 上的 Pod 总数不能超过 --max-pods 标志值。因此,如果此计算结果导致在 kubelet 上允许更多数量的 Pod,则使用 --max-pods 值。值为 0 表示不作限制。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--port int32     默认值:10250
kubelet 服务监听的本机端口号。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--protect-kernel-defaults
设置 kubelet 的默认内核调整行为。如果已设置该参数,当任何内核可调参数与 kubelet 默认值不同时,kubelet 都会出错。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--provider-id string
设置主机数据库(即,云驱动)中用来标识节点的唯一标识。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--qos-reserved string
<警告:Alpha 特性> 设置在指定的 QoS 级别预留的 Pod 资源请求,以一组 "资源名称=百分比" 的形式进行设置,例如 memory=50%。 当前仅支持内存(memory)。要求启用 QOSReserved 特性门控。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--read-only-port int32     默认值:10255
kubelet 可以在没有身份验证/鉴权的情况下提供只读服务的端口(设置为 0 表示禁用)。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--register-node     默认值:true
向 API 服务器注册节点,如果未提供 --kubeconfig,此标志无关紧要, 因为 Kubelet 没有 API 服务器可注册。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--register-schedulable     默认值:true
注册本节点为可调度的节点。当 --register-node标志为 false 时此设置无效。 已弃用:此参数将在未来的版本中删除。
--register-with-taints string
设置本节点的污点标记,格式为 <key>=<value>:<effect>, 以逗号分隔。当 --register-node 为 false 时此标志无效。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--registry-burst int32     默认值:10
设置突发性镜像拉取的个数上限,在不超过 --registration-qps 设置值的前提下 暂时允许此参数所给的镜像拉取个数。仅在 --registry-qps 大于 0 时使用。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--registry-qps int32     默认值:5
如此值大于 0,可用来限制镜像仓库的 QPS 上限。设置为 0,表示不受限制。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--reserved-cpus string
用逗号分隔的一组 CPU 或 CPU 范围列表,给出为系统和 Kubernetes 保留使用的 CPU。 此列表所给出的设置优先于通过 --system-reserved--kube-reskube-reserved 所保留的 CPU 个数配置。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--reserved-memory string
以逗号分隔的 NUMA 节点内存预留列表。(例如 --reserved-memory 0:memory=1Gi,hugepages-1M=2Gi --reserved-memory 1:memory=2Gi)。 每种内存类型的总和应该等于--kube-reserved--system-reserved--eviction-threshold。 了解更多详细信息。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--resolv-conf string     默认值:/etc/resolv.conf
名字解析服务的配置文件名,用作容器 DNS 解析配置的基础。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--root-dir string     默认值:/var/lib/kubelet
设置用于管理 kubelet 文件的根目录(例如挂载卷的相关文件等)。
--rotate-certificates
设置当客户端证书即将过期时 kubelet 自动从 kube-apiserver 请求新的证书进行轮换。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--rotate-server-certificates
<警告:Beta 特性> 当 kubelet 的服务证书即将过期时自动从 kube-apiserver 请求新的证书进行轮换。 要求启用 RotateKubeletServerCertificate 特性门控,以及对提交的 CertificateSigningRequest 对象进行批复(Approve)操作。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--runonce
设置为 true 表示从本地清单或远程 URL 创建完 Pod 后立即退出 kubelet 进程。 与 --enable-server 标志互斥。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--runtime-cgroups string
设置用于创建和运行容器运行时的 cgroup 的绝对名称。
--runtime-request-timeout duration     默认值:2m0s
设置除了长时间运行的请求(包括 pulllogsexecattach 等操作)之外的其他运行时请求的超时时间。 到达超时时间时,请求会被取消,抛出一个错误并会等待重试。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--seccomp-default string
<警告:Beta 特性> 启用 RuntimeDefault 作为所有工作负载的默认 seccomp 配置文件。SeccompDefault 特性门控必须启用以允许此标志,默认情况下禁用。
--serialize-image-pulls     默认值:true
逐一拉取镜像。建议 *不要* 在 docker 守护进程版本低于 1.9 或启用了 Aufs 存储后端的节点上 更改默认值。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--streaming-connection-idle-timeout duration     默认值:4h0m0s
设置流连接在自动关闭之前可以空闲的最长时间。0 表示没有超时限制。 例如:5m。 注意:与 kubelet 服务器的所有连接最长持续时间为 4 小时。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--sync-frequency duration     默认值:1m0s
在运行中的容器与其配置之间执行同步操作的最长时间间隔。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--system-cgroups string
此标志值为一个 cgroup 的绝对名称,用于所有尚未放置在根目录下某 cgroup 内的非内核进程。 空值表示不指定 cgroup。回滚该参数需要重启机器。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--system-reserved string     默认值:无
系统预留的资源配置,以一组 资源名称=资源数量 的格式表示, (例如:cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid='100')。 目前仅支持 cpumemory 的设置。 更多细节可参考 相关文档。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--system-reserved-cgroup string     默认值:""
此标志给出一个顶层 cgroup 绝对名称,该 cgroup 用于管理非 kubernetes 组件, 这些组件的计算资源通过 --system-reserved 标志进行预留。 例如 "/system-reserved"。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--tls-cert-file string
包含 x509 证书的文件路径,用于 HTTPS 认证。 如果有中间证书,则中间证书要串接在在服务器证书之后。 如果未提供 --tls-cert-file--tls-private-key-file, kubelet 会为公开地址生成自签名证书和密钥,并将其保存到通过 --cert-dir 指定的目录中。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--tls-cipher-suites string
服务器端加密算法列表,以逗号分隔。如果不设置,则使用 Go 语言加密包的默认算法列表。
首选算法: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384
不安全算法: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_RC4_128_SHA.
(已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--tls-min-version string
设置支持的最小 TLS 版本号,可选的版本号包括:VersionTLS10VersionTLS11VersionTLS12VersionTLS13。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--tls-private-key-file string
包含与 --tls-cert-file 对应的 x509 私钥文件路径。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--topology-manager-policy string     默认值:none
设置拓扑管理策略(Topology Manager policy)。可选值包括:nonebest-effortrestrictedsingle-numa-node。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--topology-manager-scope string     默认值:container
拓扑提示信息使用范围。拓扑管理器从提示提供者(Hints Providers)处收集提示信息, 并将其应用到所定义的范围以确保 Pod 准入。 可选值包括:container(默认)、pod。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
-v, --v Level
设置 kubelet 日志级别详细程度的数值。
--version version[=true]
打印 kubelet 版本信息并退出。
--vmodule <一个 “pattern=N” 格式的字符串列表>
以逗号分隔的 pattern=N 设置列表,用于文件过滤的日志记录
--volume-plugin-dir string     默认值:/usr/libexec/kubernetes/kubelet-plugins/volume/exec/
用来搜索第三方存储卷插件的目录。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--volume-stats-agg-period duration     默认值:1m0s
指定 kubelet 计算和缓存所有 Pod 和卷的磁盘用量总值的时间间隔。要禁用磁盘用量计算, 请设置为 0。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)

4 - kube-apiserver

简介

Kubernetes API 服务器验证并配置 API 对象的数据, 这些对象包括 pods、services、replicationcontrollers 等。 API 服务器为 REST 操作提供服务,并为集群的共享状态提供前端, 所有其他组件都通过该前端进行交互。

kube-apiserver [flags]

选项

--admission-control-config-file string

包含准入控制配置的文件。

--advertise-address string

向集群成员通知 apiserver 消息的 IP 地址。 这个地址必须能够被集群中其他成员访问。 如果 IP 地址为空,将会使用 --bind-address, 如果未指定 --bind-address,将会使用主机的默认接口地址。

--aggregator-reject-forwarding-redirect     默认值:true

聚合器拒绝将重定向响应转发回客户端。

--allow-metric-labels stringToString     默认值:[]

允许使用的指标标签到指标值的映射列表。键的格式为 <MetricName>,<LabelName>. 值的格式为 <allowed_value>,<allowed_value>...。 例如:metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'

--allow-privileged
如果为 true,将允许特权容器。[默认值=false]
--anonymous-auth     默认值:true
启用到 API 服务器的安全端口的匿名请求。 未被其他认证方法拒绝的请求被当做匿名请求。 匿名请求的用户名为 system:anonymous, 用户组名为 system:unauthenticated。
--api-audiences strings
API 的标识符。 服务帐户令牌验证者将验证针对 API 使用的令牌是否已绑定到这些受众中的至少一个。 如果配置了 --service-account-issuer 标志,但未配置此标志, 则此字段默认为包含发布者 URL 的单个元素列表。
--audit-log-batch-buffer-size int     默认值:10000
批处理和写入之前用于存储事件的缓冲区大小。 仅在批处理模式下使用。
--audit-log-batch-max-size int     默认值:1
每个批次的最大大小。仅在批处理模式下使用。
--audit-log-batch-max-wait duration
强制写入尚未达到最大大小的批次之前要等待的时间。 仅在批处理模式下使用。
--audit-log-batch-throttle-burst int
如果之前未使用 ThrottleQPS,则为同时发送的最大请求数。 仅在批处理模式下使用。
--audit-log-batch-throttle-enable
是否启用了批量限制。仅在批处理模式下使用。
--audit-log-batch-throttle-qps float
每秒的最大平均批次数。仅在批处理模式下使用。
--audit-log-compress
若设置了此标志,则被轮换的日志文件会使用 gzip 压缩。
--audit-log-format string     默认值:"json"
所保存的审计格式。 "legacy" 表示每行一个事件的文本格式。"json" 表示结构化的 JSON 格式。 已知格式为 legacy,json。
--audit-log-maxage int
根据文件名中编码的时间戳保留旧审计日志文件的最大天数。
--audit-log-maxbackup int
要保留的旧的审计日志文件个数上限。 将值设置为 0 表示对文件个数没有限制。
--audit-log-maxsize int
轮换之前,审计日志文件的最大大小(以兆字节为单位)。
--audit-log-mode string     默认值:"blocking"
用来发送审计事件的策略。 阻塞(blocking)表示发送事件应阻止服务器响应。 批处理(batch)会导致后端异步缓冲和写入事件。 已知的模式是批处理(batch),阻塞(blocking),严格阻塞(blocking-strict)。
--audit-log-path string
如果设置,则所有到达 API 服务器的请求都将记录到该文件中。 "-" 表示标准输出。
--audit-log-truncate-enabled
是否启用事件和批次截断。
--audit-log-truncate-max-batch-size int     默认值:10485760
发送到下层后端的每批次的最大数据量。 实际的序列化大小可能会增加数百个字节。 如果一个批次超出此限制,则将其分成几个较小的批次。
--audit-log-truncate-max-event-size int     默认值:102400
发送到下层后端的每批次的最大数据量。 如果事件的大小大于此数字,则将删除第一个请求和响应; 如果这样做没有减小足够大的程度,则将丢弃事件。
--audit-log-version string     默认值:"audit.k8s.io/v1"
用于对写入日志的审计事件执行序列化的 API 组和版本。
--audit-policy-file string
定义审计策略配置的文件的路径。
--audit-webhook-batch-buffer-size int     默认值:10000
划分批次和写入之前用于存储事件的缓冲区大小。 仅在批处理模式下使用。
--audit-webhook-batch-max-size int     默认值:400
批次的最大大小。 仅在批处理模式下使用。
--audit-webhook-batch-max-wait duration     默认值:30s
强制写入尚未达到最大大小的批处理之前要等待的时间。 仅在批处理模式下使用。
--audit-webhook-batch-throttle-burst int     默认值:15
如果之前未使用 ThrottleQPS,同时发送的最大请求数。 仅在批处理模式下使用。
--audit-webhook-batch-throttle-enable     默认值:true
是否启用了批量限制。仅在批处理模式下使用。
--audit-webhook-batch-throttle-qps float32     默认值:10
每秒的最大平均批次数。仅在批处理模式下使用。
--audit-webhook-config-file string
定义审计 webhook 配置的 kubeconfig 格式文件的路径。
--audit-webhook-initial-backoff duration     默认值:10s
重试第一个失败的请求之前要等待的时间。
--audit-webhook-mode string     默认值:"batch"
发送审计事件的策略。 阻止(Blocking)表示发送事件应阻止服务器响应。 批处理(Batch)导致后端异步缓冲和写入事件。 已知的模式是批处理(batch),阻塞(blocking),严格阻塞(blocking-strict)。
--audit-webhook-truncate-enabled
是否启用事件和批处理截断。
--audit-webhook-truncate-max-batch-size int     默认值:10485760
发送到下层后端的批次的最大数据量。 实际的序列化大小可能会增加数百个字节。 如果一个批次超出此限制,则将其分成几个较小的批次。
--audit-webhook-truncate-max-event-size int     默认值:102400
发送到下层后端的批次的最大数据量。 如果事件的大小大于此数字,则将删除第一个请求和响应; 如果事件和事件的大小没有减小到一定幅度,则将丢弃事件。
--audit-webhook-version string     默认值:"audit.k8s.io/v1"
用于序列化写入 Webhook 的审计事件的 API 组和版本。
--authentication-token-webhook-cache-ttl duration     2m0s
对来自 Webhook 令牌身份验证器的响应的缓存时间。
--authentication-token-webhook-config-file string
包含 Webhook 配置的 kubeconfig 格式文件,用于进行令牌认证。 API 服务器将查询远程服务,以对持有者令牌进行身份验证。
--authentication-token-webhook-version string     默认值:"v1beta1"
与 Webhook 之间交换 authentication.k8s.io TokenReview 时使用的 API 版本。
--authorization-mode strings     默认值:"AlwaysAllow"
在安全端口上进行鉴权的插件的顺序列表。 逗号分隔的列表:AlwaysAllow、AlwaysDeny、ABAC、Webhook、RBAC、Node。
--authorization-policy-file string
包含鉴权策略的文件,其内容为分行 JSON 格式, 在安全端口上与 --authorization-mode=ABAC 一起使用。
--authorization-webhook-cache-authorized-ttl duration     默认值:5m0s
对来自 Webhook 鉴权组件的 “授权(authorized)” 响应的缓存时间。
--authorization-webhook-cache-unauthorized-ttl duration     默认值:30s
对来自 Webhook 鉴权模块的 “未授权(unauthorized)” 响应的缓存时间。
--authorization-webhook-config-file string
包含 Webhook 配置的文件,其格式为 kubeconfig, 与 --authorization-mode=Webhook 一起使用。 API 服务器将查询远程服务,以对 API 服务器的安全端口的访问执行鉴权。
--authorization-webhook-version string     默认值:"v1beta1"
与 Webhook 之间交换 authorization.k8s.io SubjectAccessReview 时使用的 API 版本。
--azure-container-registry-config string
包含 Azure 容器仓库配置信息的文件的路径。
--bind-address string     默认值:"0.0.0.0"
用来监听 --secure-port 端口的 IP 地址。 集群的其余部分以及 CLI/web 客户端必须可以访问所关联的接口。 如果为空白或未指定地址(0.0.0.0::),则将使用所有接口。
--cert-dir string     默认值:"/var/run/kubernetes"
TLS 证书所在的目录。 如果提供了 --tls-cert-file--tls-private-key-file 标志值,则将忽略此标志。
--client-ca-file string
如果已设置,则使用与客户端证书的 CommonName 对应的标识对任何出示由 client-ca 文件中的授权机构之一签名的客户端证书的请求进行身份验证。
--cloud-config string
云厂商配置文件的路径。空字符串表示无配置文件。
--cloud-provider string
云服务提供商。空字符串表示没有云厂商。
--cloud-provider-gce-l7lb-src-cidrs cidrs     默认值:"130.211.0.0/22,35.191.0.0/16"
在 GCE 防火墙中打开 CIDR,以进行第 7 层负载均衡流量代理和健康状况检查。
--contention-profiling
如果启用了性能分析,则启用锁争用性能分析。
--cors-allowed-origins strings
CORS 允许的来源清单,以逗号分隔。 允许的来源可以是支持子域匹配的正则表达式。 如果此列表为空,则不会启用 CORS。
--default-not-ready-toleration-seconds int     默认值:300
对污点 NotReady:NoExecute 的容忍时长(以秒计)。 默认情况下这一容忍度会被添加到尚未具有此容忍度的每个 pod 中。
--default-unreachable-toleration-seconds int     默认值:300
对污点 Unreachable:NoExecute 的容忍时长(以秒计) 默认情况下这一容忍度会被添加到尚未具有此容忍度的每个 pod 中。
--delete-collection-workers int     默认值:1
为 DeleteCollection 调用而产生的工作线程数。 这些用于加速名字空间清理。
--disable-admission-plugins strings

尽管位于默认启用的插件列表中,仍须被禁用的准入插件(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、PodSecurity、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook、ResourceQuota)。 取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、EventRateLimit、ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、LimitRanger、MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、PersistentVolumeLabel、PodNodeSelector、PodSecurity、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、SecurityContextDeny、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook。 该标志中插件的顺序无关紧要。

--disabled-metrics strings
此标志为行为不正确的度量指标提供一种处理方案。 你必须提供完全限定的指标名称才能将其禁止。 声明:禁用度量值的行为优先于显示已隐藏的度量值。
--egress-selector-config-file string
带有 API 服务器出站选择器配置的文件。
--enable-admission-plugins strings

除了默认启用的插件(NamespaceLifecycle、LimitRanger、ServiceAccount、TaintNodesByCondition、PodSecurity、Priority、DefaultTolerationSeconds、DefaultStorageClass、StorageObjectInUseProtection、PersistentVolumeClaimResize、RuntimeClass、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook、ResourceQuota)之外要启用的准入插件。 取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、DefaultIngressClass、DefaultStorageClass、DefaultTolerationSeconds、DenyServiceExternalIPs、EventRateLimit、ExtendedResourceToleration、ImagePolicyWebhook、LimitPodHardAntiAffinityTopology、LimitRanger、MutatingAdmissionWebhook、NamespaceAutoProvision、NamespaceExists、NamespaceLifecycle、NodeRestriction、OwnerReferencesPermissionEnforcement、PersistentVolumeClaimResize、PersistentVolumeLabel、PodNodeSelector、PodSecurity、PodTolerationRestriction、Priority、ResourceQuota、RuntimeClass、SecurityContextDeny、ServiceAccount、StorageObjectInUseProtection、TaintNodesByCondition、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook。该标志中插件的顺序无关紧要。

--enable-aggregator-routing
允许聚合器将请求路由到端点 IP 而非集群 IP。
--enable-bootstrap-token-auth
启用以允许将 "kube-system" 名字空间中类型为 "bootstrap.kubernetes.io/token" 的 Secret 用于 TLS 引导身份验证。
--enable-garbage-collector     默认值:true
启用通用垃圾收集器。必须与 kube-controller-manager 的相应标志同步。
--enable-priority-and-fairness     默认值:true
如果为 true 且启用了 APIPriorityAndFairness 特性门控, 请使用增强的处理程序替换 max-in-flight 处理程序, 以便根据优先级和公平性完成排队和调度。
--encryption-provider-config string
包含加密提供程序配置信息的文件,用在 etcd 中所存储的 Secret 上。
--encryption-provider-config-automatic-reload

确定由 --encryption-provider-config 设置的文件是否应在磁盘内容更改时自动重新加载。 将此标志设置为 true 将禁用通过 API 服务器 healthz 端点来唯一地标识不同 KMS 插件的能力。

--endpoint-reconciler-type string     默认值:"lease"
使用端点协调器(master-countleasenone)。 master-count 已弃用,并将在未来版本中删除。
--etcd-cafile string
用于保护 etcd 通信的 SSL 证书颁发机构文件。
--etcd-certfile string
用于保护 etcd 通信的 SSL 证书文件。
--etcd-compaction-interval duration     默认值:5m0s
压缩请求的间隔。 如果为0,则禁用来自 API 服务器的压缩请求。
--etcd-count-metric-poll-period duration     默认值:1m0s
针对每种类型的资源数量轮询 etcd 的频率。 0 值表示禁用度量值收集。
--etcd-db-metric-poll-interval duration     默认值:30s
轮询 etcd 和更新度量值的请求间隔。0 值表示禁用度量值收集。
--etcd-healthcheck-timeout duration      检查 etcd 健康状况时使用的超时时长。
--etcd-keyfile string
用于保护 etcd 通信的 SSL 密钥文件。
--etcd-prefix string     默认值:"/registry"
要在 etcd 中所有资源路径之前添加的前缀。
--etcd-readycheck-timeout 时长     默认值: 2s

检查 etcd 是否就绪时使用的超时

--etcd-servers strings
要连接的 etcd 服务器列表(scheme://ip:port),以逗号分隔。
--etcd-servers-overrides strings
etcd 服务器针对每个资源的重载设置,以逗号分隔。 单个替代格式:组/资源#服务器(group/resource#servers), 其中服务器是 URL,以分号分隔。 注意,此选项仅适用于编译进此服务器二进制文件的资源。
--event-ttl duration     默认值:1h0m0s
事件的保留时长。
--external-hostname string
为此主机生成外部化 UR L时要使用的主机名(例如 Swagger API 文档或 OpenID 发现)。
--feature-gates < 逗号分隔的 'key=True|False' 键值对>

一组 key=value 对,用来描述测试性/试验性功能的特性门控。可选项有:
APIListChunking=true|false (BETA - 默认值=true)
APIPriorityAndFairness=true|false (BETA - 默认值=true)
APIResponseCompression=true|false (BETA - 默认值=true)
APISelfSubjectReview=true|false (ALPHA - 默认值=false)
APIServerIdentity=true|false (BETA - 默认值=true)
APIServerTracing=true|false (ALPHA - 默认值=false)
AggregatedDiscoveryEndpoint=true|false (ALPHA - 默认值=false)
AllAlpha=true|false (ALPHA - 默认值=false)
AllBeta=true|false (BETA - 默认值=false)
AnyVolumeDataSource=true|false (BETA - 默认值=true)
AppArmor=true|false (BETA - 默认值=true)
CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
CPUManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
CPUManagerPolicyOptions=true|false (BETA - 默认值=true)
CSIMigrationPortworx=true|false (BETA - 默认值=false)
CSIMigrationRBD=true|false (ALPHA - 默认值=false)
CSINodeExpandSecret=true|false (ALPHA - 默认值=false)
CSIVolumeHealth=true|false (ALPHA - 默认值=false)
ComponentSLIs=true|false (ALPHA - 默认值=false)
ContainerCheckpoint=true|false (ALPHA - 默认值=false)
ContextualLogging=true|false (ALPHA - 默认值=false)
CronJobTimeZone=true|false (BETA - 默认值=true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
CustomResourceValidationExpressions=true|false (BETA - 默认值=true)
DisableCloudProviders=true|false (ALPHA - 默认值=false)
DisableKubeletCloudCredentialProviders=true|false (ALPHA - 默认值=false)
DownwardAPIHugePages=true|false (BETA - 默认值=true)
DynamicResourceAllocation=true|false (ALPHA - 默认值=false)
EventedPLEG=true|false (ALPHA - 默认值=false)
ExpandedDNSConfig=true|false (BETA - 默认值=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false)
GRPCContainerProbe=true|false (BETA - 默认值=true)
GracefulNodeShutdown=true|false (BETA - 默认值=true) GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值=true)
HPAContainerMetrics=true|false (ALPHA - 默认值=false)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值=false)
IPTablesOwnershipCleanup=true|false (ALPHA - 默认值=false)
InTreePluginAWSUnregister=true|false (ALPHA - 默认值=false)
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值=false)
InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值=false)
InTreePluginGCEUnregister=true|false (ALPHA - 默认值=false)
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值=false)
InTreePluginPortworxUnregister=true|false (ALPHA - 默认值=false)
InTreePluginRBDUnregister=true|false (ALPHA - 默认值=false)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)
JobMutableNodeSchedulingDirectives=true|false (BETA - 默认值=true)
JobPodFailurePolicy=true|false (BETA - 默认值=true)
JobReadyPods=true|false (BETA - 默认值=true)
KMSv2=true|false (ALPHA - 默认值=false)
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)
KubeletPodResources=true|false (BETA - 默认值=true)
KubeletPodResourcesGetAllocatable=true|false (BETA - 默认值=true)
KubeletTracing=true|false (ALPHA - 默认值=false)
LegacyServiceAccountTokenTracking=true|false (ALPHA - 默认值=false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
LogarithmicScaleDown=true|false (BETA - 默认值=true)
LoggingAlphaOptions=true|false (ALPHA - 默认值=false)
LoggingBetaOptions=true|false (BETA - 默认值=true)
MatchLabelKeysInPodTopologySpread=true|false (ALPHA - 默认值=false)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值=false)
MemoryManager=true|false (BETA - 默认值=true)
MemoryQoS=true|false (ALPHA - 默认值=false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值=false)
MinimizeIPTablesRestore=true|false (ALPHA - 默认值=false)
MultiCIDRRangeAllocator=true|false (ALPHA - 默认值=false)
NetworkPolicyStatus=true|false (ALPHA - 默认值=false)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值=true)
NodeOutOfServiceVolumeDetach=true|false (BETA - 默认值=true)
NodeSwap=true|false (ALPHA - 默认值=false)
OpenAPIEnums=true|false (BETA - 默认值=true)
OpenAPIV3=true|false (BETA - 默认值=true)
PDBUnhealthyPodEvictionPolicy=true|false (ALPHA - 默认值=false)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值=false)
PodDeletionCost=true|false (BETA - 默认值=true)
PodDisruptionConditions=true|false (BETA - 默认值=true)
PodHasNetworkCondition=true|false (ALPHA - 默认值=false)
PodSchedulingReadiness=true|false (ALPHA - 默认值=false)
ProbeTerminationGracePeriod=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
ProxyTerminatingEndpoints=true|false (BETA - 默认值=true)
QOSReserved=true|false (ALPHA - 默认值=false)
ReadWriteOncePod=true|false (ALPHA - 默认值=false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值=false)
RemainingItemCount=true|false (BETA - 默认值=true)
RetroactiveDefaultStorageClass=true|false (BETA - 默认值=true)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
SELinuxMountReadWriteOncePod=true|false (ALPHA - 默认值=false)
SeccompDefault=true|false (BETA - 默认值=true)
ServerSideFieldValidation=true|false (BETA - 默认值=true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)
StatefulSetAutoDeletePVC=true|false (ALPHA - 默认值=false)
StatefulSetStartOrdinal=true|false (ALPHA - 默认值=false)
StorageVersionAPI=true|false (ALPHA - 默认值=false)
StorageVersionHash=true|false (BETA - 默认值=true)
TopologyAwareHints=true|false (BETA - 默认值=true)
TopologyManager=true|false (BETA - 默认值=true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值=false)
TopologyManagerPolicyOptions=true|false (ALPHA - 默认值=false)
UserNamespacesStatelessPodsSupport=true|false (ALPHA - 默认值=false)
ValidatingAdmissionPolicy=true|false (ALPHA - 默认值=false)
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (BETA - 默认值=true)
WindowsHostNetwork=true|false (ALPHA - 默认值=true)

--goaway-chance float
为防止 HTTP/2 客户端卡在单个 API 服务器上,可启用随机关闭连接(GOAWAY)。 客户端的其他运行中请求将不会受到影响,并且客户端将重新连接, 可能会在再次通过负载平衡器后登陆到其他 API 服务器上。 此参数设置将发送 GOAWAY 的请求的比例。 具有单个 API 服务器或不使用负载平衡器的集群不应启用此功能。 最小值为0(关闭),最大值为 .02(1/50 请求);建议使用 .001(1/1000)。
-h, --help
kube-apiserver 的帮助命令
--http2-max-streams-per-connection int
服务器为客户端提供的 HTTP/2 连接中最大流数的限制。 零表示使用 GoLang 的默认值。
--kubelet-certificate-authority string
证书颁发机构的证书文件的路径。
--kubelet-client-certificate string
TLS 的客户端证书文件的路径。
--kubelet-client-key string
TLS 客户端密钥文件的路径。
--kubelet-preferred-address-types strings     默认值:Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP
用于 kubelet 连接的首选 NodeAddressTypes 列表。
--kubelet-timeout duration     默认值:5s
kubelet 操作超时时间。
--kubernetes-service-node-port int
如果非零,那么 Kubernetes 主服务(由 apiserver 创建/维护)将是 NodePort 类型, 使用它作为端口的值。 如果为零,则 Kubernetes 主服务将为 ClusterIP 类型。
--lease-reuse-duration-seconds int     默认值:60
每个租约被重用的时长。 如果此值比较低,可以避免大量对象重用此租约。 注意,如果此值过小,可能导致存储层出现性能问题。
--livez-grace-period duration
此选项代表 API 服务器完成启动序列并生效所需的最长时间。 从 API 服务器的启动时间到这段时间为止, /livez 将假定未完成的启动后钩子将成功完成,因此返回 true。
--log-flush-frequency duration     默认值:5s
两次日志刷新之间的最大秒数
--logging-format string     默认值:"text"

设置日志格式。允许的格式:"text"。

--master-service-namespace string     默认值:"default"
已废弃:应该从其中将 Kubernetes 主服务注入到 Pod 中的名字空间。
--max-connection-bytes-per-sec int
如果不为零,则将每个用户连接限制为该数(字节数/秒)。 当前仅适用于长时间运行的请求。
--max-mutating-requests-inflight int     默认值:200
如果 --enable-priority-and-fairness 为 true,那么此值和 --max-requests-inflight 的和将确定服务器的总并发限制(必须是正数)。 否则,该值限制进行中变更类型请求的最大个数,零表示无限制。
--max-requests-inflight int     默认值:400
如果 --enable-priority-and-fairness 为 true,那么此值和 --max-mutating-requests-inflight 的和将确定服务器的总并发限制(必须是正数)。 否则,该值限制进行中非变更类型请求的最大个数,零表示无限制。
--min-request-timeout int     默认值:1800
可选字段,表示处理程序在请求超时前,必须保持其处于打开状态的最小秒数。 当前只对监听(Watch)请求的处理程序有效,它基于这个值选择一个随机数作为连接超时值, 以达到分散负载的目的。
--oidc-ca-file string
如果设置该值,将会使用 oidc-ca-file 中的机构之一对 OpenID 服务的证书进行验证, 否则将会使用主机的根 CA 对其进行验证。
--oidc-client-id string
OpenID 连接客户端的要使用的客户 ID,如果设置了 oidc-issuer-url,则必须设置这个值。
--oidc-groups-claim string
如果提供该值,这个自定义 OpenID 连接声明将被用来设定用户组。 该声明值需要是一个字符串或字符串数组。 此标志为实验性的,请查阅身份认证相关文档进一步了解详细信息。
--oidc-groups-prefix string
如果提供了此值,则所有组都将以该值作为前缀,以防止与其他身份认证策略冲突。
--oidc-issuer-url string
OpenID 颁发者 URL,只接受 HTTPS 方案。 如果设置该值,它将被用于验证 OIDC JSON Web Token(JWT)。
--oidc-required-claim <逗号分隔的 'key=value' 键值对列表>
描述 ID 令牌中必需声明的键值对。 如果设置此值,则会验证 ID 令牌中存在与该声明匹配的值。 重复此标志以指定多个声明。
--oidc-signing-algs strings     默认值:RS256
允许的 JOSE 非对称签名算法的逗号分隔列表。 具有收支持 "alg" 标头值的 JWTs 有:RS256、RS384、RS512、ES256、ES384、ES512、PS256、PS384、PS512。 取值依据 RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1 定义。
--oidc-username-claim string     默认值:"sub"
要用作用户名的 OpenID 声明。 请注意,除默认声明("sub")以外的其他声明不能保证是唯一且不可变的。 此标志是实验性的,请参阅身份认证文档以获取更多详细信息。
--oidc-username-prefix string
如果提供,则所有用户名都将以该值作为前缀。 如果未提供,则除 "email" 之外的用户名声明都会添加颁发者 URL 作为前缀,以避免冲突。 要略过添加前缀处理,请设置值为 "-"。
--permit-address-sharing

若此标志为 true,则使用 SO_REUSEADDR 来绑定端口。 这样设置可以同时绑定到用通配符表示的类似 0.0.0.0 这种 IP 地址, 以及特定的 IP 地址。也可以避免等待内核释放 TIME_WAIT 状态的套接字。[默认值=false]

--permit-port-sharing
如果为 true,则在绑定端口时将使用 SO_REUSEPORT, 这样多个实例可以绑定到同一地址和端口上。[默认值=false]
--profiling     默认值:true
通过 Web 接口 host:port/debug/pprof/ 启用性能分析。
--proxy-client-cert-file string
当必须调用外部程序以处理请求时,用于证明聚合器或者 kube-apiserver 的身份的客户端证书。 包括代理转发到用户 api-server 的请求和调用 Webhook 准入控制插件的请求。 Kubernetes 期望此证书包含来自于 --requestheader-client-ca-file 标志中所给 CA 的签名。 该 CA 在 kube-system 命名空间的 "extension-apiserver-authentication" ConfigMap 中公开。 从 kube-aggregator 收到调用的组件应该使用该 CA 进行各自的双向 TLS 验证。
--proxy-client-key-file string
当必须调用外部程序来处理请求时,用来证明聚合器或者 kube-apiserver 的身份的客户端私钥。 这包括代理转发给用户 api-server 的请求和调用 Webhook 准入控制插件的请求。
--request-timeout duration     默认值:1m0s
可选字段,指示处理程序在超时之前必须保持打开请求的持续时间。 这是请求的默认请求超时,但对于特定类型的请求,可能会被 --min-request-timeout等标志覆盖。
--requestheader-allowed-names strings
此值为客户端证书通用名称(Common Name)的列表;表中所列的表项可以用来提供用户名, 方式是使用 --requestheader-username-headers 所指定的头部。 如果为空,能够通过 --requestheader-client-ca-file 中机构 认证的客户端证书都是被允许的。
--requestheader-client-ca-file string
在信任请求头中以 --requestheader-username-headers 指示的用户名之前, 用于验证接入请求中客户端证书的根证书包。 警告:一般不要假定传入请求已被授权。
--requestheader-extra-headers-prefix strings
用于查验请求头部的前缀列表。建议使用 X-Remote-Extra-
--requestheader-group-headers strings
用于查验用户组的请求头部列表。建议使用 X-Remote-Group
--requestheader-username-headers strings
用于查验用户名的请求头头列表。建议使用 X-Remote-User
--runtime-config <逗号分隔的 'key=value' 对列表>
一组启用或禁用内置 API 的键值对。支持的选项包括:
v1=true|false(针对核心 API 组)
<group>/<version>=true|false(针对特定 API 组和版本,例如:apps/v1=true)
api/all=true|false 控制所有 API 版本
api/ga=true|false 控制所有 v[0-9]+ API 版本
api/beta=true|false 控制所有 v[0-9]+beta[0-9]+ API 版本
api/alpha=true|false 控制所有 v[0-9]+alpha[0-9]+ API 版本
api/legacy 已弃用,并将在以后的版本中删除
--secure-port int     默认值:6443
带身份验证和鉴权机制的 HTTPS 服务端口。 不能用 0 关闭。
--service-account-extend-token-expiration     默认值:true
在生成令牌时,启用投射服务帐户到期时间扩展, 这有助于从旧版令牌安全地过渡到绑定的服务帐户令牌功能。 如果启用此标志,则准入插件注入的令牌的过期时间将延长至 1 年,以防止过渡期间发生意外故障, 并忽略 service-account-max-token-expiration 的值。
--service-account-issuer strings
服务帐号令牌颁发者的标识符。 颁发者将在已颁发令牌的 "iss" 声明中检查此标识符。 此值为字符串或 URI。 如果根据 OpenID Discovery 1.0 规范检查此选项不是有效的 URI,则即使特性门控设置为 true, ServiceAccountIssuerDiscovery 功能也将保持禁用状态。 强烈建议该值符合 OpenID 规范: https://openid.net/specs/openid-connect-discovery-1_0.html 。 实践中,这意味着 service-account-issuer 取值必须是 HTTPS URL。 还强烈建议此 URL 能够在 {service-account-issuer}/.well-known/openid-configuration 处提供 OpenID 发现文档。 当此值被多次指定时,第一次的值用于生成令牌,所有的值用于确定接受哪些发行人。
--service-account-jwks-uri string
覆盖 /.well-known/openid-configuration 提供的发现文档中 JSON Web 密钥集的 URI。 如果发现文档和密钥集是通过 API 服务器外部 (而非自动检测到或被外部主机名覆盖)之外的 URL 提供给依赖方的,则此标志很有用。
--service-account-key-file strings
包含 PEM 编码的 x509 RSA 或 ECDSA 私钥或公钥的文件,用于验证 ServiceAccount 令牌。 指定的文件可以包含多个键,并且可以使用不同的文件多次指定标志。 如果未指定,则使用 --tls-private-key-file。 提供 --service-account-signing-key-file 时必须指定。
--service-account-lookup     默认值:true
如果为 true,则在身份认证时验证 etcd 中是否存在 ServiceAccount 令牌。
--service-account-max-token-expiration duration
服务帐户令牌发布者创建的令牌的最长有效期。 如果请求有效期大于此值的有效令牌请求,将使用此值的有效期颁发令牌。
--service-account-signing-key-file string
包含服务帐户令牌颁发者当前私钥的文件的路径。 颁发者将使用此私钥签署所颁发的 ID 令牌。
--service-cluster-ip-range string
CIDR 表示的 IP 范围用来为服务分配集群 IP。 此地址不得与指定给节点或 Pod 的任何 IP 范围重叠。 最多允许两个双栈 CIDR。
--service-node-port-range <形式为 'N1-N2' 的字符串>     默认值:30000-32767

保留给具有 NodePort 可见性的服务的端口范围。 不得与节点上的临时端口范围重叠。 例如:"30000-32767"。范围的两端都包括在内。

--show-hidden-metrics-for-version string
你要显示隐藏指标的先前版本。仅先前的次要版本有意义,不允许其他值。 格式为 <major>.<minor>,例如:"1.16"。 这种格式的目的是确保你有机会注意到下一个版本是否隐藏了其他指标, 而不是在此之后将它们从发行版中永久删除时感到惊讶。
--shutdown-delay-duration duration
延迟终止时间。在此期间,服务器将继续正常处理请求。 端点 /healthz 和 /livez 将返回成功,但是 /readyz 立即返回失败。 在此延迟过去之后,将开始正常终止。 这可用于允许负载平衡器停止向该服务器发送流量。
--shutdown-send-retry-after
值为 true 表示 HTTP 服务器将继续监听直到耗尽所有非长时间运行的请求, 在此期间,所有传入请求将被拒绝,状态码为 429,响应头为 "Retry-After", 此外,设置 "Connection: close" 响应头是为了在空闲时断开 TCP 链接。
--storage-backend string
持久化存储后端。选项:"etcd3"(默认)。
--storage-media-type string     默认值:"application/vnd.kubernetes.protobuf"

用于在存储中存储对象的媒体类型。某些资源或存储后端可能仅支持特定的媒体类型,并且将忽略此设置。 支持的媒体类型:[application/json, application/yaml, application/vnd.kubernetes.protobuf]

--strict-transport-security-directives strings

为 HSTS 所设置的指令列表,用逗号分隔。 如果此列表为空,则不会添加 HSTS 指令。 例如:'max-age=31536000,includeSubDomains,preload'

--tls-cert-file string
包含用于 HTTPS 的默认 x509 证书的文件。(CA 证书(如果有)在服务器证书之后并置)。 如果启用了 HTTPS 服务,并且未提供 --tls-cert-file--tls-private-key-file, 为公共地址生成一个自签名证书和密钥,并将其保存到 --cert-dir 指定的目录中。
--tls-cipher-suites strings
服务器的密码套件的列表,以逗号分隔。如果省略,将使用默认的 Go 密码套件。
首选值: TLS_AES_128_GCM_SHA256、TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256、TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384。 不安全的值有: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_RC4_128_SHA、TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_RC4_128_SHA、TLS_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_RC4_128_SHA。
--tls-min-version string
支持的最低 TLS 版本。可能的值:VersionTLS10,VersionTLS11,VersionTLS12,VersionTLS13
--tls-private-key-file string
包含匹配 --tls-cert-file 的 x509 证书私钥的文件。
--tls-sni-cert-key string     默认值:[]
一对 x509 证书和私钥文件路径,(可选)后缀为全限定域名的域名模式列表,可以使用带有通配符的前缀。 域模式也允许使用 IP 地址,但仅当 apiserver 对客户端请求的IP地址具有可见性时,才应使用 IP。 如果未提供域模式,则提取证书的名称。 非通配符匹配优先于通配符匹配,显式域模式优先于提取出的名称。 对于多个密钥/证书对,请多次使用 --tls-sni-cert-key。 示例:"example.crt,example.key" 或 "foo.crt,foo.key:\*.foo.com,foo.com"。
--token-auth-file string
如果设置该值,这个文件将被用于通过令牌认证来保护 API 服务的安全端口。
--tracing-config-file string
包含 API 服务器跟踪配置的文件。
-v, --v int
日志级别详细程度的数字。
--version version[=true]
打印版本信息并退出
--vmodule pattern=N,...
以逗号分隔的 pattern=N 设置列表,用于文件过滤的日志记录(仅适用于 text 日志格式)。
--watch-cache     默认值:true
在 API 服务器中启用监视缓存。
--watch-cache-sizes strings

某些资源(Pod、Node 等)的监视缓存大小设置,以逗号分隔。 每个资源对应的设置格式:resource[.group]#size,其中 resource 为小写复数(无版本), 对于 apiVersion v1(旧版核心 API)的资源要省略 group, 对其它资源要给出 groupsize 为一个数字。 此选项仅对 API 服务器中的内置资源生效,对 CRD 定义的资源或从外部服务器接入的资源无效。 启用 watch-cache 时仅查询此选项。 这里能生效的 size 设置只有 0,意味着禁用关联资源的 watch-cache。 所有的非零值都等效,意味着不禁用该资源的watch-cache

5 - kube-controller-manager

简介

Kubernetes 控制器管理器是一个守护进程,内嵌随 Kubernetes 一起发布的核心控制回路。 在机器人和自动化的应用中,控制回路是一个永不休止的循环,用于调节系统状态。 在 Kubernetes 中,每个控制器是一个控制回路,通过 API 服务器监视集群的共享状态, 并尝试进行更改以将当前状态转为期望状态。 目前,Kubernetes 自带的控制器例子包括副本控制器、节点控制器、命名空间控制器和服务账号控制器等。

kube-controller-manager [flags]

选项

--allocate-node-cidrs
基于云驱动来为 Pod 分配和设置子网掩码。
--allow-metric-labels stringToString     默认值:[]

从度量值标签到准许值列表的映射。键名的格式为<MetricName>,<LabelName>。 准许值的格式为<allowed_value>,<allowed_value>...。 例如,metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3', metric2,label='v1,v2,v3'

--attach-detach-reconcile-sync-period duration     默认值:1m0s
协调器(reconciler)在相邻两次对存储卷进行挂载和解除挂载操作之间的等待时间。 此时长必须长于 1 秒钟。此值设置为大于默认值时,可能导致存储卷无法与 Pod 匹配。
--authentication-kubeconfig string
此标志值为一个 kubeconfig 文件的路径名。该文件中包含与某 Kubernetes “核心” 服务器相关的信息,并支持足够的权限以创建 tokenreviews.authentication.k8s.io。 此选项是可选的。如果设置为空值,则所有令牌请求都会被认作匿名请求, Kubernetes 也不再在集群中查找客户端的 CA 证书信息。
--authentication-skip-lookup
此值为 false 时,通过 authentication-kubeconfig 参数所指定的文件会被用来检索集群中缺失的身份认证配置信息。
--authentication-token-webhook-cache-ttl duration     默认值:10s
对 Webhook 令牌认证设施返回结果的缓存时长。
--authentication-tolerate-lookup-failure
此值为 true 时,即使无法从集群中检索到缺失的身份认证配置信息也无大碍。 需要注意的是,这样设置可能导致所有请求都被视作匿名请求。
--authorization-always-allow-paths strings     默认值:"/healthz,/readyz,/livez"
鉴权过程中会忽略的一个 HTTP 路径列表。 换言之,控制器管理器会对列表中路径的访问进行授权,并且无须征得 Kubernetes “核心” 服务器同意。
--authorization-kubeconfig string
包含 Kubernetes “核心” 服务器信息的 kubeconfig 文件路径, 所包含信息具有创建 subjectaccessreviews.authorization.k8s.io 的足够权限。 此参数是可选的。如果配置为空字符串,未被鉴权模块所忽略的请求都会被禁止。
--authorization-webhook-cache-authorized-ttl duration     默认值:10s
对 Webhook 形式鉴权组件所返回的“已授权(Authorized)”响应的缓存时长。
--authorization-webhook-cache-unauthorized-ttl duration     默认值:10s
对 Webhook 形式鉴权组件所返回的“未授权(Unauthorized)”响应的缓存时长。
--azure-container-registry-config string
指向包含 Azure 容器仓库配置信息的文件的路径名。
--bind-address string     默认值:0.0.0.0
针对 --secure-port 端口上请求执行监听操作的 IP 地址。 所对应的网络接口必须从集群中其它位置可访问(含命令行及 Web 客户端)。 如果此值为空或者设定为非特定地址(0.0.0.0::), 意味着所有网络接口都在监听范围。
--cert-dir string
TLS 证书所在的目录。如果提供了 --tls-cert-file--tls-private-key-file,此标志会被忽略。
--cidr-allocator-type string     默认值:"RangeAllocator"
要使用的 CIDR 分配器类型。
--client-ca-file string
如果设置了此标志,对于所有能够提供客户端证书的请求,若该证书由 --client-ca-file 中所给机构之一签署, 则该请求会被成功认证为客户端证书中 CommonName 所标识的实体。
--cloud-config string
云驱动程序配置文件的路径。空字符串表示没有配置文件。
--cloud-provider string
云服务的提供者。空字符串表示没有对应的提供者(驱动)。
--cluster-cidr string
集群中 Pod 的 CIDR 范围。要求 --allocate-node-cidrs 标志为 true。
--cluster-name string     默认值:"kubernetes"
集群实例的前缀。
--cluster-signing-cert-file string
包含 PEM 编码格式的 X509 CA 证书的文件名。该证书用来发放集群范围的证书。 如果设置了此标志,则不能指定更具体的 --cluster-signing-* 标志。
--cluster-signing-duration duration     默认值:8760h0m0s
所签名证书的有效期限。每个 CSR 可以通过设置 spec.expirationSeconds 来请求更短的证书。
--cluster-signing-key-file string
包含 PEM 编码的 RSA 或 ECDSA 私钥的文件名。该私钥用来对集群范围证书签名。 若指定了此选项,则不可再设置 --cluster-signing-* 参数。
--cluster-signing-kube-apiserver-client-cert-file string
包含 PEM 编码的 X509 CA 证书的文件名, 该证书用于为 kubernetes.io/kube-apiserver-client 签署者颁发证书。 如果指定,则不得设置 --cluster-signing-{cert,key}-file
--cluster-signing-kube-apiserver-client-key-file string
包含 PEM 编码的 RSA 或 ECDSA 私钥的文件名, 该私钥用于为 kubernetes.io/kube-apiserver-client 签署者签名证书。 如果指定,则不得设置 --cluster-signing-{cert,key}-file
--cluster-signing-kubelet-client-cert-file string
包含 PEM 编码的 X509 CA 证书的文件名, 该证书用于为 kubernetes.io/kube-apiserver-client-kubelet 签署者颁发证书。 如果指定,则不得设置 --cluster-signing-{cert,key}-file
--cluster-signing-kubelet-client-key-file string
包含 PEM 编码的 RSA 或 ECDSA 私钥的文件名, 该私钥用于为 kubernetes.io/kube-apiserver-client-kubelet 签署者签名证书。 如果指定,则不得设置 --cluster-signing-{cert,key}-file
--cluster-signing-kubelet-serving-cert-file string
包含 PEM 编码的 X509 CA 证书的文件名, 该证书用于为 kubernetes.io/kubelet-serving 签署者颁发证书。 如果指定,则不得设置 --cluster-signing-{cert,key}-file。
--cluster-signing-kubelet-serving-key-file string
包含 PEM 编码的 RSA或ECDSA 私钥的文件名, 该私钥用于对 kubernetes.io/kubelet-serving 签署者的证书进行签名。 如果指定,则不得设置 --cluster-signing-{cert,key}-file
--cluster-signing-legacy-unknown-cert-file string
包含 PEM 编码的 X509 CA 证书的文件名, 用于为 kubernetes.io/legacy-unknown 签署者颁发证书。 如果指定,则不得设置 --cluster-signing-{cert,key}-file
--cluster-signing-legacy-unknown-key-file string
包含 PEM 编码的 RSA 或 ECDSA 私钥的文件名, 用于为 kubernetes.io/legacy-unknown 签署者签名证书。 如果指定,则不得设置 --cluster-signing-{cert,key}-file
--concurrent-deployment-syncs int32     默认值:5
可以并发同步的 Deployment 对象个数。数值越大意味着对 Deployment 的响应越及时, 同时也意味着更大的 CPU(和网络带宽)压力。
--concurrent-endpoint-syncs int32     默认值:5
可以并发执行的 Endpoints 同步操作个数。数值越大意味着更快的 Endpoints 更新操作, 同时也意味着更大的 CPU (和网络)压力。
--concurrent-ephemeralvolume-syncs int32     默认值:5
可以并发执行的 EphemeralVolume 同步操作个数。数值越大意味着更快的 EphemeralVolume 更新操作, 同时也意味着更大的 CPU (和网络)压力。
--concurrent-gc-syncs int32     默认值:20
可以并发同步的垃圾收集工作线程个数。

允许并发执行的、对水平 Pod 自动扩缩器对象进行同步的数量。 更大的数字 = 响应更快的水平 Pod 自动缩放器对象处理,但需要更高的 CPU(和网络)负载。

--concurrent-namespace-syncs int32     默认值:10
可以并发同步的 Namespace 对象个数。较大的数值意味着更快的名字空间终结操作, 不过也意味着更多的 CPU (和网络)占用。
--concurrent-rc-syncs int32     默认值:5

可以并发同步的副本控制器对象个数。较大的数值意味着更快的副本管理操作, 不过也意味着更多的 CPU (和网络)占用。

--concurrent-replicaset-syncs int32     默认值:5
可以并发同步的 ReplicaSet 个数。数值越大意味着副本管理的响应速度越快, 同时也意味着更多的 CPU (和网络)占用。
--concurrent-resource-quota-syncs int32     默认值:5
可以并发同步的 ResourceQuota 对象个数。数值越大,配额管理的响应速度越快, 不过对 CPU (和网络)的占用也越高。
--concurrent-service-endpoint-syncs int32     默认值:5
可以并发执行的服务端点同步操作个数。数值越大,端点片段(Endpoint Slice) 的更新速度越快,不过对 CPU (和网络)的占用也越高。默认值为 5。
--concurrent-service-syncs int32     默认值:1
可以并发同步的 Service 对象个数。数值越大,服务管理的响应速度越快, 不过对 CPU (和网络)的占用也越高。
--concurrent-serviceaccount-token-syncs int32     默认值:5
可以并发同步的服务账号令牌对象个数。数值越大,令牌生成的速度越快, 不过对 CPU (和网络)的占用也越高。
--concurrent-statefulset-syncs int32     默认值:5
可以并发同步的 StatefulSet 对象个数。数值越大,StatefulSet 管理的响应速度越快, 不过对 CPU (和网络)的占用也越高。
--concurrent-ttl-after-finished-syncs int32     默认值:5
可以并发同步的 TTL-after-finished 控制器线程个数。
--configure-cloud-routes     默认值:true
决定是否由 --allocate-node-cidrs 所分配的 CIDR 要通过云驱动程序来配置。
--contention-profiling
在启用了性能分析(profiling)时,也启用锁竞争情况分析。
--controller-start-interval duration
在两次启动控制器管理器之间的时间间隔。
--controllers strings     默认值:*
要启用的控制器列表。* 表示启用所有默认启用的控制器; foo 启用名为 foo 的控制器; -foo 表示禁用名为 foo 的控制器。
控制器的全集:attachdetach、bootstrapsigner、cloud-node-lifecycle、clusterrole-aggregation、cronjob、csrapproving、csrcleaner、csrsigning、daemonset、deployment、disruption、endpoint、endpointslice、endpointslicemirroring、ephemeral-volume、garbagecollector、horizontalpodautoscaling、job、namespace、nodeipam、nodelifecycle、persistentvolume-binder、persistentvolume-expander、podgc、pv-protection、pvc-protection、replicaset、replicationcontroller、resourcequota、root-ca-cert-publisher、route、service、serviceaccount、serviceaccount-token、statefulset、tokencleaner、ttl、ttl-after-finished
默认禁用的控制器有:bootstrapsigner 和 tokencleaner。
--disable-attach-detach-reconcile-sync
禁用卷挂接/解挂调节器的同步。禁用此同步可能导致卷存储与 Pod 之间出现错位。 请小心使用。
--disabled-metrics strings

此标志提供对行为异常的度量值的防控措施。你必须提供度量值的完全限定名称才能将其禁用。 声明:禁用度量值的操作比显示隐藏度量值的操作优先级高。

--enable-dynamic-provisioning     默认值:true
在环境允许的情况下启用动态卷制备。
--enable-garbage-collector     默认值:true
启用通用垃圾收集器。必须与 kube-apiserver 中对应的标志一致。
--enable-hostpath-provisioner
在没有云驱动程序的情况下,启用 HostPath 持久卷的制备。 此参数便于对卷供应功能进行开发和测试。HostPath 卷的制备并非受支持的功能特性, 在多节点的集群中也无法工作,因此除了开发和测试环境中不应使用 HostPath 卷的制备。
--enable-leader-migration

此标志决定是否启用控制器领导者迁移。

--endpoint-updates-batch-period duration
端点(Endpoint)批量更新周期时长。对 Pod 变更的处理会被延迟, 以便将其与即将到来的更新操作合并,从而减少端点更新操作次数。 较大的数值意味着端点更新的迟滞时间会增长,也意味着所生成的端点版本个数会变少。
--endpointslice-updates-batch-period duration
端点片段(Endpoint Slice)批量更新周期时长。对 Pod 变更的处理会被延迟, 以便将其与即将到来的更新操作合并,从而减少端点更新操作次数。 较大的数值意味着端点更新的迟滞时间会增长,也意味着所生成的端点版本个数会变少。
--external-cloud-volume-plugin string
当云驱动程序设置为 external 时要使用的插件名称。此字符串可以为空。 只能在云驱动程序为 external 时设置。 目前用来保证节点控制器和卷控制器能够在三种云驱动上正常工作。
--feature-gates <逗号分隔的 'key=True|False' 对列表>

一组 key=value 对,用来描述测试性/试验性功能的特性门控。可选项有:
APIListChunking=true|false (BETA - 默认值=true)
APIPriorityAndFairness=true|false (BETA - 默认值=true)
APIResponseCompression=true|false (BETA - 默认值=true)
APISelfSubjectReview=true|false (ALPHA - 默认值=false)
APIServerIdentity=true|false (BETA - 默认值=true)
APIServerTracing=true|false (ALPHA - 默认值=false)
AggregatedDiscoveryEndpoint=true|false (ALPHA - 默认值=false)
AllAlpha=true|false (ALPHA - 默认值=false)
AllBeta=true|false (BETA - 默认值=false)
AnyVolumeDataSource=true|false (BETA - 默认值=true)
AppArmor=true|false (BETA - 默认值=true)
CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
CPUManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
CPUManagerPolicyOptions=true|false (BETA - 默认值=true)
CSIMigrationPortworx=true|false (BETA - 默认值=false)
CSIMigrationRBD=true|false (ALPHA - 默认值=false)
CSINodeExpandSecret=true|false (ALPHA - 默认值=false)
CSIVolumeHealth=true|false (ALPHA - 默认值=false)
ComponentSLIs=true|false (ALPHA - 默认值=false)
ContainerCheckpoint=true|false (ALPHA - 默认值=false)
ContextualLogging=true|false (ALPHA - 默认值=false)
CronJobTimeZone=true|false (BETA - 默认值=true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
CustomResourceValidationExpressions=true|false (BETA - 默认值=true)
DisableCloudProviders=true|false (ALPHA - 默认值=false)
DisableKubeletCloudCredentialProviders=true|false (ALPHA - 默认值=false)
DownwardAPIHugePages=true|false (BETA - 默认值=true)
DynamicResourceAllocation=true|false (ALPHA - 默认值=false)
EventedPLEG=true|false (ALPHA - 默认值=false)
ExpandedDNSConfig=true|false (BETA - 默认值=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false)
GRPCContainerProbe=true|false (BETA - 默认值=true)
GracefulNodeShutdown=true|false (BETA - 默认值=true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值=true)
HPAContainerMetrics=true|false (ALPHA - 默认值=false)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值=false)
IPTablesOwnershipCleanup=true|false (ALPHA - 默认值=false)
InTreePluginAWSUnregister=true|false (ALPHA - 默认值=false)
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值=false)
InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值=false)
InTreePluginGCEUnregister=true|false (ALPHA - 默认值=false)
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值=false)
InTreePluginPortworxUnregister=true|false (ALPHA - 默认值=false)
InTreePluginRBDUnregister=true|false (ALPHA - 默认值=false)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)
JobMutableNodeSchedulingDirectives=true|false (BETA - 默认值=true)
JobPodFailurePolicy=true|false (BETA - 默认值=true)
JobReadyPods=true|false (BETA - 默认值=true)
KMSv2=true|false (ALPHA - 默认值=false)
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)
KubeletPodResources=true|false (BETA - 默认值=true)
KubeletPodResourcesGetAllocatable=true|false (BETA - 默认值=true)
KubeletTracing=true|false (ALPHA - 默认值=false)
LegacyServiceAccountTokenTracking=true|false (ALPHA - 默认值=false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
LogarithmicScaleDown=true|false (BETA - 默认值=true)
LoggingAlphaOptions=true|false (ALPHA - 默认值=false)
LoggingBetaOptions=true|false (BETA - 默认值=true)
MatchLabelKeysInPodTopologySpread=true|false (ALPHA - 默认值=false)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值=false)
MemoryManager=true|false (BETA - 默认值=true)
MemoryQoS=true|false (ALPHA - 默认值=false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值=false)
MinimizeIPTablesRestore=true|false (ALPHA - 默认值=false)
MultiCIDRRangeAllocator=true|false (ALPHA - 默认值=false)
NetworkPolicyStatus=true|false (ALPHA - 默认值=false)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值=true)
NodeOutOfServiceVolumeDetach=true|false (BETA - 默认值=true)
NodeSwap=true|false (ALPHA - 默认值=false)
OpenAPIEnums=true|false (BETA - 默认值=true)
OpenAPIV3=true|false (BETA - 默认值=true)
PDBUnhealthyPodEvictionPolicy=true|false (ALPHA - 默认值=false)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值=false)
PodDeletionCost=true|false (BETA - 默认值=true)
PodDisruptionConditions=true|false (BETA - 默认值=true)
PodHasNetworkCondition=true|false (ALPHA - 默认值=false)
PodSchedulingReadiness=true|false (ALPHA - 默认值=false)
ProbeTerminationGracePeriod=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
ProxyTerminatingEndpoints=true|false (BETA - 默认值=true)
QOSReserved=true|false (ALPHA - 默认值=false)
ReadWriteOncePod=true|false (ALPHA - 默认值=false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值=false)
RemainingItemCount=true|false (BETA - 默认值=true)
RetroactiveDefaultStorageClass=true|false (BETA - 默认值=true)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
SELinuxMountReadWriteOncePod=true|false (ALPHA - 默认值=false)
SeccompDefault=true|false (BETA - 默认值=true)
ServerSideFieldValidation=true|false (BETA - 默认值=true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)
StatefulSetAutoDeletePVC=true|false (ALPHA - 默认值=false)
StatefulSetStartOrdinal=true|false (ALPHA - 默认值=false)
StorageVersionAPI=true|false (ALPHA - 默认值=false)
StorageVersionHash=true|false (BETA - 默认值=true)
TopologyAwareHints=true|false (BETA - 默认值=true)
TopologyManager=true|false (BETA - 默认值=true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值=false)
TopologyManagerPolicyOptions=true|false (ALPHA - 默认值=false)
UserNamespacesStatelessPodsSupport=true|false (ALPHA - 默认值=false)
ValidatingAdmissionPolicy=true|false (ALPHA - 默认值=false)
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (BETA - 默认值=true)
WindowsHostNetwork=true|false (ALPHA - 默认值=true)

--flex-volume-plugin-dir string     默认值:"/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"
FlexVolume 插件要搜索第三方卷插件的目录路径全名。
-h, --help
kube-controller-manager 的帮助信息。
--horizontal-pod-autoscaler-cpu-initialization-period duration     默认值:5m0s
Pod 启动之后可以忽略 CPU 采样值的时长。
--horizontal-pod-autoscaler-downscale-stabilization duration     默认值:5m0s
自动扩缩程序的回溯时长。 自动扩缩程序不会基于在给定的时长内所建议的规模对负载执行缩容操作。
--horizontal-pod-autoscaler-initial-readiness-delay duration     默认值:30s
Pod 启动之后,在此值所给定的时长内,就绪状态的变化都不会作为初始的就绪状态。
--horizontal-pod-autoscaler-sync-period duration     默认值:15s
水平 Pod 扩缩器对 Pod 数目执行同步操作的周期。
--horizontal-pod-autoscaler-tolerance float     默认值:0.1
此值为目标值与实际值的比值与 1.0 的差值。只有超过此标志所设的阈值时, HPA 才会考虑执行缩放操作。
--http2-max-streams-per-connection int
服务器为客户端所设置的 HTTP/2 连接中流式连接个数上限。 此值为 0 表示采用 Go 语言库所设置的默认值。
--kube-api-burst int32     默认值:30
与 Kubernetes API 服务器通信时突发峰值请求个数上限。
--kube-api-content-type string     默认值:"application/vnd.kubernetes.protobuf"
向 API 服务器发送请求时使用的内容类型(Content-Type)。
--kube-api-qps float     默认值:20
与 API 服务器通信时每秒请求数(QPS)限制。
--kubeconfig string
指向 kubeconfig 文件的路径。该文件中包含主控节点位置以及鉴权凭据信息。
--large-cluster-size-threshold int32     默认值:50
节点控制器在执行 Pod 驱逐操作逻辑时, 基于此标志所设置的节点个数阈值来判断所在集群是否为大规模集群。 当集群规模小于等于此规模时, --secondary-node-eviction-rate 会被隐式重设为 0。
--leader-elect     默认值:true
在执行主循环之前,启动领导选举(Leader Election)客户端,并尝试获得领导者身份。 在运行多副本组件时启用此标志有助于提高可用性。
--leader-elect-lease-duration duration     默认值:15s
对于未获得领导者身份的节点, 在探测到领导者身份需要更迭时需要等待此标志所设置的时长, 才能尝试去获得曾经是领导者但尚未续约的席位。本质上, 这个时长也是现有领导者节点在被其他候选节点替代之前可以停止的最长时长。 只有集群启用了领导者选举机制时,此标志才起作用。
--leader-elect-renew-deadline duration     默认值:10s
当前执行领导者角色的节点在被停止履行领导职责之前可多次尝试续约领导者身份; 此标志给出相邻两次尝试之间的间歇时长。 此值必须小于租期时长(Lease Duration)。 仅在集群启用了领导者选举时有效。
--leader-elect-resource-lock string     默认值:"leases"
在领导者选举期间用于锁定的资源对象的类型。 支持的选项为 leasesendpointsleasesconfigmapsleases
--leader-elect-resource-name string     默认值:"kube-controller-manager"
在领导者选举期间,用来执行锁操作的资源对象名称。
--leader-elect-resource-namespace string     默认值:"kube-system"
在领导者选举期间,用来执行锁操作的资源对象的名字空间。
--leader-elect-retry-period duration     默认值:2s
尝试获得领导者身份时,客户端在相邻两次尝试之间要等待的时长。 此标志仅在启用了领导者选举的集群中起作用。
--leader-migration-config string

控制器领导者迁移所用的配置文件路径。 此值为空意味着使用控制器管理器的默认配置。 配置文件应该是 controllermanager.config.k8s.io 组、 v1alpha1 版本的 LeaderMigrationConfiguration 结构。

--log-flush-frequency duration     默认值:5s
将内存中日志数据清除到日志文件中时,相邻两次清除操作之间最大间隔秒数。
--logging-format string     默认值:"text"

设置日志格式。允许的格式:"text"。

--master string
Kubernetes API 服务器的地址。此值会覆盖 kubeconfig 文件中所给的地址。
--max-endpoints-per-slice int32     默认值:100
每个 EndpointSlice 中可以添加的端点个数上限。每个片段中端点个数越多, 得到的片段个数越少,但是片段的规模会变得更大。默认值为 100。
--min-resync-period duration     默认值:12h0m0s
自省程序的重新同步时隔下限。实际时隔长度会在 min-resync-period2 * min-resync-period 之间。
--mirroring-concurrent-service-endpoint-syncs int32     默认值:5
EndpointSliceMirroring 控制器将同时执行的服务端点同步操作数。 较大的数量 = 更快的端点切片更新,但 CPU(和网络)负载更多。 默认为 5。
--mirroring-endpointslice-updates-batch-period duration
EndpointSlice 的长度更新了 EndpointSliceMirroring 控制器的批处理周期。 EndpointSlice 更改的处理将延迟此持续时间, 以使它们与潜在的即将进行的更新结合在一起,并减少 EndpointSlice 更新的总数。 较大的数量 = 较高的端点编程延迟,但是生成的端点修订版本数量较少
--mirroring-max-endpoints-per-subset int32     默认值:1000
EndpointSliceMirroring 控制器将添加到 EndpointSlice 的最大端点数。 每个分片的端点越多,端点分片越少,但资源越大。默认为 100。
--namespace-sync-period duration     默认值:5m0s
对名字空间对象进行同步的周期。
--node-cidr-mask-size int32
集群中节点 CIDR 的掩码长度。对 IPv4 而言默认为 24;对 IPv6 而言默认为 64。
--node-cidr-mask-size-ipv4 int32
在双堆栈(同时支持 IPv4 和 IPv6)的集群中,节点 IPV4 CIDR 掩码长度。默认为 24。
--node-cidr-mask-size-ipv6 int32
在双堆栈(同时支持 IPv4 和 IPv6)的集群中,节点 IPv6 CIDR 掩码长度。默认为 64。
--node-eviction-rate float     默认值:0.1
当某区域健康时,在节点故障的情况下每秒删除 Pods 的节点数。 请参阅 --unhealthy-zone-threshold 以了解“健康”的判定标准。 这里的区域(zone)在集群并不跨多个区域时指的是整个集群。
--node-monitor-grace-period duration     默认值:40s
在将一个 Node 标记为不健康之前允许其无响应的时长上限。 必须比 kubelet 的 nodeStatusUpdateFrequency 大 N 倍; 这里 N 指的是 kubelet 发送节点状态的重试次数。
--node-monitor-period duration     默认值:5s
节点控制器对节点状态进行同步的重复周期。
--node-startup-grace-period duration     默认值:1m0s
在节点启动期间,节点可以处于无响应状态; 但超出此标志所设置的时长仍然无响应则该节点被标记为不健康。
--permit-address-sharing

如果此标志为 true,则在绑定端口时使用 SO_REUSEADDR。 这就意味着可以同时绑定到 0.0.0.0 和特定的 IP 地址, 并且避免等待内核释放处于 TIME_WAITE 状态的套接字。[默认值=false]。

--permit-port-sharing
如果为 true,则在绑定端口时将使用 SO_REUSEPORT, 这允许多个实例在同一地址和端口上进行绑定。[默认值=false]。
--profiling     默认值:true
通过位于 host:port/debug/pprof/ 的 Web 接口启用性能分析。
--pv-recycler-increment-timeout-nfs int32     默认值:30
NFS 清洗 Pod 在清洗用过的卷时,根据此标志所设置的秒数, 为每清洗 1 GiB 数据增加对应超时时长,作为 activeDeadlineSeconds。
--pv-recycler-minimum-timeout-hostpath int32     默认值:60
对于 HostPath 回收器 Pod,设置其 activeDeadlineSeconds 参数下限。 此参数仅用于开发和测试目的,不适合在多节点集群中使用。
--pv-recycler-minimum-timeout-nfs int32     默认值:300
NFS 回收器 Pod 要使用的 activeDeadlineSeconds 参数下限。
--pv-recycler-pod-template-filepath-hostpath string
对 HostPath 持久卷进行回收利用时,用作模板的 Pod 定义文件所在路径。 此标志仅用于开发和测试目的,不适合多节点集群中使用。
--pv-recycler-pod-template-filepath-nfs string
对 NFS 卷执行回收利用时,用作模板的 Pod 定义文件所在路径。
--pv-recycler-timeout-increment-hostpath int32     默认值:30
HostPath 清洗器 Pod 在清洗对应类型持久卷时,为每 GiB 数据增加此标志所设置的秒数, 作为其 activeDeadlineSeconds 参数。此标志仅用于开发和测试环境,不适合多节点集群环境。
--pvclaimbinder-sync-period duration     默认值:15s
持久卷(PV)和持久卷申领(PVC)对象的同步周期。
--requestheader-allowed-names strings
标志值是客户端证书中的 Common Names 列表。其中所列的名称可以通过 --requestheader-username-headers 所设置的 HTTP 头部来提供用户名。 如果此标志值为空表,则被 --requestheader-client-ca-file 中机构所验证过的所有客户端证书都是允许的。
--requestheader-client-ca-file string
根证书包文件名。在信任通过 --requestheader-username-headers 所指定的任何用户名之前,要使用这里的证书来检查请求中的客户证书。 警告:一般不要依赖对请求所作的鉴权结果。
--requestheader-extra-headers-prefix strings     默认值:"x-remote-extra-"
要插入的请求头部前缀。建议使用 X-Remote-Exra-
--requestheader-group-headers strings     默认值:"x-remote-group"
用来检查用户组名的请求头部名称列表。建议使用 X-Remote-Group
--requestheader-username-headers strings     默认值:"x-remote-user"
用来检查用户名的请求头部名称列表。建议使用 X-Remote-User
--resource-quota-sync-period duration     默认值:5m0s
对系统中配额用量信息进行同步的周期。
--root-ca-file string
如果此标志非空,则在服务账号的令牌 Secret 中会包含此根证书机构。 所指定标志值必须是一个合法的 PEM 编码的 CA 证书包。
--route-reconciliation-period duration     默认值:10s
对云驱动为节点所创建的路由信息进行调解的周期。
--secondary-node-eviction-rate float32     默认值:0.01
当一个区域不健康造成节点失效时,每秒钟从此标志所给的节点上删除 Pod 的节点个数。 参见 --unhealthy-zone-threshold 以了解“健康与否”的判定标准。 在只有一个区域的集群中,区域指的是整个集群。如果集群规模小于 --large-cluster-size-threshold 所设置的节点个数时, 此值被隐式地重设为 0。
--secure-port int     默认值:10257
在此端口上提供 HTTPS 身份认证和鉴权操作。若此标志值为 0,则不提供 HTTPS 服务。
--service-account-private-key-file string
包含 PEM 编码的 RSA 或 ECDSA 私钥数据的文件名,这些私钥用来对服务账号令牌签名。
--service-cluster-ip-range string
集群中 Service 对象的 CIDR 范围。要求 --allocate-node-cidrs 标志为 true。
--show-hidden-metrics-for-version string
你希望展示隐藏度量值的上一个版本。只有上一个次版本号有意义,其他值都是不允许的。 字符串格式为 "<major>.<minor>"。例如:"1.16"。 此格式的目的是确保你能够有机会注意到下一个版本隐藏了一些额外的度量值, 而不是在更新版本中某些度量值被彻底删除时措手不及。
--terminated-pod-gc-threshold int32     默认值:12500
在已终止 Pod 垃圾收集器删除已终止 Pod 之前,可以保留的已终止 Pod 的个数上限。 若此值小于等于 0,则相当于禁止垃圾回收已终止的 Pod。
--tls-cert-file string
包含 HTTPS 所用的默认 X509 证书的文件。如果有 CA 证书,会被串接在服务器证书之后。 若启用了 HTTPS 服务且 --tls-cert-file--tls-private-key-file 标志未设置, 则为节点的公开地址生成自签名的证书和密钥,并保存到 --cert-dir 所给的目录中。
--tls-cipher-suites strings
供服务器使用的加密包的逗号分隔列表。若忽略此标志,则使用 Go 语言默认的加密包。
可选值包括:TLS_AES_128_GCM_SHA256、TLS_AES_256_GCM_SHA384、TLS_CHACHA20_POLY1305_SHA256、TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305、TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256、TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305、TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256、TLS_RSA_WITH_AES_128_CBC_SHA、TLS_RSA_WITH_AES_128_GCM_SHA256、TLS_RSA_WITH_AES_256_CBC_SHA、TLS_RSA_WITH_AES_256_GCM_SHA384。
不安全的值: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_ECDSA_WITH_RC4_128_SHA、TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA、TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256、TLS_ECDHE_RSA_WITH_RC4_128_SHA、TLS_RSA_WITH_3DES_EDE_CBC_SHA、TLS_RSA_WITH_AES_128_CBC_SHA256、TLS_RSA_WITH_RC4_128_SHA。
--tls-min-version string
可支持的最低 TLS 版本。可选值包括: “VersionTLS10”、“VersionTLS11”、“VersionTLS12”、“VersionTLS13”。
--tls-private-key-file string
包含与 --tls-cert-file 对应的默认 X509 私钥的文件。
--tls-sni-cert-key string
X509 证书和私钥文件路径的耦对。作为可选项,可以添加域名模式的列表, 其中每个域名模式都是可以带通配片段前缀的全限定域名(FQDN)。 域名模式也可以使用 IP 地址字符串, 不过只有 API 服务器在所给 IP 地址上对客户端可见时才可以使用 IP 地址。 在未提供域名模式时,从证书中提取域名。 如果有非通配方式的匹配,则优先于通配方式的匹配;显式的域名模式优先于提取的域名。 当存在多个密钥/证书耦对时,可以多次使用 --tls-sni-cert-key 标志。 例如:example.crt,example.keyfoo.crt,foo.key:\*.foo.com,foo.com
--unhealthy-zone-threshold float32     默认值:0.55
仅当给定区域中处于非就绪状态的节点(最少 3 个)的占比高于此值时, 才将该区域视为不健康。
--use-service-account-credentials
当此标志为 true 时,为每个控制器单独使用服务账号凭据。
-v, --v int
日志级别详细程度取值。
--version version[=true]
打印版本信息之后退出。
--vmodule pattern=N,...
由逗号分隔的列表,每一项都是 pattern=N 格式,用来执行根据文件过滤的日志行为(仅适用于 text 日志格式)。
--volume-host-allow-local-loopback     默认值:true
此标志为 false 时,禁止本地回路 IP 地址和 --volume-host-cidr-denylist 中所指定的 CIDR 范围。
--volume-host-cidr-denylist strings
用逗号分隔的一个 CIDR 范围列表,禁止使用这些地址上的卷插件。

6 - kube-proxy

简介

Kubernetes 网络代理在每个节点上运行。网络代理反映了每个节点上 Kubernetes API 中定义的服务,并且可以执行简单的 TCP、UDP 和 SCTP 流转发,或者在一组后端进行 循环 TCP、UDP 和 SCTP 转发。 当前可通过 Docker-links-compatible 环境变量找到服务集群 IP 和端口, 这些环境变量指定了服务代理打开的端口。 有一个可选的插件,可以为这些集群 IP 提供集群 DNS。 用户必须使用 apiserver API 创建服务才能配置代理。

kube-proxy [flags]

选项

--add_dir_header

如果为 true,将文件目录添加到日志消息的头部

--alsologtostderr

设置为 true 表示将日志输出到文件的同时输出到 stderr(当 --logtostderr=true 时不生效)

--bind-address string     默认值:0.0.0.0

代理服务器的 IP 地址(所有 IPv4 接口设置为 “0.0.0.0”,所有 IPv6 接口设置为 “::”)。 如果配置文件由 --config 指定,则忽略此参数。

--bind-address-hard-fail

如果为 true,kube-proxy 会将无法绑定端口的失败操作视为致命错误并退出。

--boot_id_file string     默认值:"/proc/sys/kernel/random/boot_id"

逗号分隔的文件列表,用于检查 boot-id。使用第一个存在的文件。

--cleanup

如果为 true,清理 iptables 和 ipvs 规则并退出。

--cluster-cidr string

集群中 Pod 的 CIDR 范围。配置后,将从该范围之外发送到服务集群 IP 的流量被伪装,从 Pod 发送到外部 LoadBalancer IP 的流量将被重定向到相应的集群 IP。 对于双协议栈集群,接受一个逗号分隔的列表, 每个 IP 协议族(IPv4 和 IPv6)至少包含一个 CIDR。 如果配置文件由 --config 指定,则忽略此参数。

--config string

配置文件的路径。

--config-sync-period duration     默认值:15m0s

来自 apiserver 的配置的刷新频率。必须大于 0。

--conntrack-max-per-core int32     默认值:32768

每个 CPU 核跟踪的最大 NAT 连接数(0 表示保留当前限制并忽略 conntrack-min 设置)。

--conntrack-min int32     默认值:131072

无论 conntrack-max-per-core 多少,要分配的 conntrack 条目的最小数量(将 conntrack-max-per-core 设置为 0 即可 保持当前的限制)。

--conntrack-tcp-timeout-close-wait duration     默认值:1h0m0s

处于 CLOSE_WAIT 状态的 TCP 连接的 NAT 超时。

--conntrack-tcp-timeout-established duration     默认值:24h0m0s

已建立的 TCP 连接的空闲超时(0 保持当前设置)。

--detect-local-mode LocalMode

用于检测本地流量的模式。 如果配置文件由 --config 指定,则忽略此参数。

--feature-gates <逗号分隔的 'key=True|False' 对>

一组 key=value 对,用来描述测试性/试验性功能的特性门控。可选项有:
APIListChunking=true|false (BETA - 默认值=true)
APIPriorityAndFairness=true|false (BETA - 默认值=true)
APIResponseCompression=true|false (BETA - 默认值=true)
APISelfSubjectReview=true|false (ALPHA - 默认值=false)
APIServerIdentity=true|false (BETA - 默认值=true)
APIServerTracing=true|false (ALPHA - 默认值=false)
AggregatedDiscoveryEndpoint=true|false (ALPHA - 默认值=false)
AllAlpha=true|false (ALPHA - 默认值=false)
AllBeta=true|false (BETA - 默认值=false)
AnyVolumeDataSource=true|false (BETA - 默认值=true)
AppArmor=true|false (BETA - 默认值=true)
CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
CPUManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
CPUManagerPolicyOptions=true|false (BETA - 默认值=true)
CSIMigrationPortworx=true|false (BETA - 默认值=false)
CSIMigrationRBD=true|false (ALPHA - 默认值=false)
CSINodeExpandSecret=true|false (ALPHA - 默认值=false)
CSIVolumeHealth=true|false (ALPHA - 默认值=false)
ComponentSLIs=true|false (ALPHA - 默认值=false)
ContainerCheckpoint=true|false (ALPHA - 默认值=false)
CronJobTimeZone=true|false (BETA - 默认值=true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
CustomResourceValidationExpressions=true|false (BETA - 默认值=true)
DisableCloudProviders=true|false (ALPHA - 默认值=false)
DisableKubeletCloudCredentialProviders=true|false (ALPHA - 默认值=false)
DownwardAPIHugePages=true|false (BETA - 默认值=true)
DynamicResourceAllocation=true|false (ALPHA - 默认值=false)
EventedPLEG=true|false (ALPHA - 默认值=false)
ExpandedDNSConfig=true|false (BETA - 默认值=true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值=false)
GRPCContainerProbe=true|false (BETA - 默认值=true)
GracefulNodeShutdown=true|false (BETA - 默认值=true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值=true)
HPAContainerMetrics=true|false (ALPHA - 默认值=false)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值=false)
IPTablesOwnershipCleanup=true|false (ALPHA - 默认值=false)
InTreePluginAWSUnregister=true|false (ALPHA - 默认值=false)
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值=false)
InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值=false)
InTreePluginGCEUnregister=true|false (ALPHA - 默认值=false)
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值=false)
InTreePluginPortworxUnregister=true|false (ALPHA - 默认值=false)
InTreePluginRBDUnregister=true|false (ALPHA - 默认值=false)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)
JobMutableNodeSchedulingDirectives=true|false (BETA - 默认值=true)
JobPodFailurePolicy=true|false (BETA - 默认值=true)
JobReadyPods=true|false (BETA - 默认值=true)
KMSv2=true|false (ALPHA - 默认值=false)
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)
KubeletPodResources=true|false (BETA - 默认值=true)
KubeletPodResourcesGetAllocatable=true|false (BETA - 默认值=true)
KubeletTracing=true|false (ALPHA - 默认值=false)
LegacyServiceAccountTokenTracking=true|false (ALPHA - 默认值=false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
LogarithmicScaleDown=true|false (BETA - 默认值=true)
MatchLabelKeysInPodTopologySpread=true|false (ALPHA - 默认值=false)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值=false)
MemoryManager=true|false (BETA - 默认值=true)
MemoryQoS=true|false (ALPHA - 默认值=false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值=false)
MinimizeIPTablesRestore=true|false (ALPHA - 默认值=false)
MultiCIDRRangeAllocator=true|false (ALPHA - 默认值=false)
NetworkPolicyStatus=true|false (ALPHA - 默认值=false)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值=true)
NodeOutOfServiceVolumeDetach=true|false (BETA - 默认值=true)
NodeSwap=true|false (ALPHA - 默认值=false)
OpenAPIEnums=true|false (BETA - 默认值=true)
OpenAPIV3=true|false (BETA - 默认值=true)
PDBUnhealthyPodEvictionPolicy=true|false (ALPHA - 默认值=false)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值=false)
PodDeletionCost=true|false (BETA - 默认值=true)
PodDisruptionConditions=true|false (BETA - 默认值=true)
PodHasNetworkCondition=true|false (ALPHA - 默认值=false)
PodSchedulingReadiness=true|false (ALPHA - 默认值=false)
ProbeTerminationGracePeriod=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
ProxyTerminatingEndpoints=true|false (BETA - 默认值=true)
QOSReserved=true|false (ALPHA - 默认值=false)
ReadWriteOncePod=true|false (ALPHA - 默认值=false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值=false)
RemainingItemCount=true|false (BETA - 默认值=true)
RetroactiveDefaultStorageClass=true|false (BETA - 默认值=true)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
SELinuxMountReadWriteOncePod=true|false (ALPHA - 默认值=false)
SeccompDefault=true|false (BETA - 默认值=true)
ServerSideFieldValidation=true|false (BETA - 默认值=true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)
StatefulSetAutoDeletePVC=true|false (ALPHA - 默认值=false)
StatefulSetStartOrdinal=true|false (ALPHA - 默认值=false)
StorageVersionAPI=true|false (ALPHA - 默认值=false)
StorageVersionHash=true|false (BETA - 默认值=true)
TopologyAwareHints=true|false (BETA - 默认值=true)
TopologyManager=true|false (BETA - 默认值=true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值=false)
TopologyManagerPolicyOptions=true|false (ALPHA - 默认值=false)
UserNamespacesStatelessPodsSupport=true|false (ALPHA - 默认值=false)
ValidatingAdmissionPolicy=true|false (ALPHA - 默认值=false)
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (BETA - 默认值=true)
WindowsHostNetwork=true|false (ALPHA - 默认值=true)
如果配置文件由 --config 指定,则忽略此参数。

--healthz-bind-address 0.0.0.0     默认值:0.0.0.0:10256

服务健康状态检查的 IP 地址和端口(设置为 '0.0.0.0:10256' 表示使用所有 IPv4 接口,设置为 '[::]:10256' 表示使用所有 IPv6 接口); 设置为空则禁用。 如果配置文件由 --config 指定,则忽略此参数。

-h, --help

kube-proxy 操作的帮助命令。

--hostname-override string

如果非空,将使用此字符串而不是实际的主机名作为标识。

--iptables-localhost-nodeports     默认值:true

如果设为 false,Kube-proxy 将禁用允许通过本地主机访问 NodePort 服务的传统行为, 这仅适用于 iptables 模式和 ipv4。

--iptables-masquerade-bit int32     默认值:14

在使用纯 iptables 代理时,用来设置 fwmark 空间的 bit,标记需要 SNAT 的数据包。必须在 [0,31] 范围内。

--iptables-min-sync-period duration     默认值:1s

iptables 规则可以随着端点和服务的更改而刷新的最小间隔(例如 '5s'、'1m'、'2h22m')。

--iptables-sync-period duration     默认值:30s

刷新 iptables 规则的最大间隔(例如 '5s'、'1m'、'2h22m')。必须大于 0。

--ipvs-exclude-cidrs strings

逗号分隔的 CIDR 列表,ipvs 代理在清理 IPVS 规则时不会此列表中的地址范围。

--ipvs-min-sync-period duration

ipvs 规则可以随着端点和服务的更改而刷新的最小间隔(例如 '5s'、'1m'、'2h22m')。

--ipvs-scheduler string

代理模式为 ipvs 时所选的 ipvs 调度器类型。

--ipvs-strict-arp

通过将 arp_ignore 设置为 1 并将 arp_announce 设置为 2 启用严格的 ARP。

--ipvs-sync-period duration     默认值:30s

刷新 ipvs 规则的最大间隔(例如 '5s'、'1m'、'2h22m')。必须大于 0。

--ipvs-tcp-timeout duration

空闲 IPVS TCP 连接的超时时间,0 保持连接(例如 '5s'、'1m'、'2h22m')。

--ipvs-tcpfin-timeout duration

收到 FIN 数据包后,IPVS TCP 连接的超时,0 保持当前设置不变。(例如 '5s'、'1m'、'2h22m')。

--ipvs-udp-timeout duration

IPVS UDP 数据包的超时,0 保持当前设置不变。(例如 '5s'、'1m'、'2h22m')。

--kube-api-burst int32     默认值:10

与 kubernetes apiserver 通信的突发数量。

--kube-api-content-type string     默认值:"application/vnd.kubernetes.protobuf"

发送到 apiserver 的请求的内容类型。

--kube-api-qps float32     默认值:5

与 kubernetes apiserver 交互时使用的 QPS。

--kubeconfig string

包含鉴权信息的 kubeconfig 文件的路径(主控节点位置由 master 标志设置)。

--log_backtrace_at <“file:N” 格式的字符串>     默认值:0

当日志命中 file:N,触发一次堆栈追踪

--log_dir string

如果非空,则在此目录中写入日志文件(当 --logtostderr=true 时不生效)

--log_file string

如果非空,使用此日志文件(当 --logtostderr=true 时不生效)

--log_file_max_size uint     默认值:1800

定义日志文件可以增长到的最大大小(当 --logtostderr=true 时不生效)。 单位是兆字节。如果值为 0,则最大文件大小不受限制。

--logtostderr     默认值:true

日志输出到 stderr 而不是文件。

--machine_id_file string     默认值:"/etc/machine-id,/var/lib/dbus/machine-id"

用来检查 Machine-ID 的文件列表,用逗号分隔。 使用找到的第一个文件。

--masquerade-all

如果使用纯 iptables 代理,则对通过服务集群 IP 发送的所有流量 进行 SNAT(通常不需要)。

--master string

Kubernetes API 服务器的地址(覆盖 kubeconfig 中的相关值)。

--metrics-bind-address ipport     默认值:127.0.0.1:10249

metrics 服务器要使用的 IP 地址和端口 (设置为 '0.0.0.0:10249' 则使用所有 IPv4 接口,设置为 '[::]:10249' 则使用所有 IPv6 接口) 设置为空则禁用。 如果配置文件由 --config 指定,则忽略此参数。

--nodeport-addresses strings

一个字符串值,指定用于 NodePort 服务的地址。 值可以是有效的 IP 块(例如 1.2.3.0/24, 1.2.3.4/32)。 默认的空字符串切片([])表示使用所有本地地址。 如果配置文件由 --config 指定,则忽略此参数。

--one_output

如果为 true,则仅将日志写入其本身的严重性级别 (而不是写入每个较低的严重性级别;当 --logtostderr=true 时不生效)。

--oom-score-adj int32     默认值:-999

kube-proxy 进程中的 oom-score-adj 值,必须在 [-1000,1000] 范围内。 如果配置文件由 --config 指定,则忽略此参数。

--pod-bridge-interface string
集群中的一个桥接接口名称。 Kube-proxy 将来自与该值匹配的桥接接口的流量视为本地流量。 如果 DetectLocalMode 设置为 BridgeInterface,则应设置该参数。
--pod-interface-name-prefix string
集群中的一个接口前缀。 Kube-proxy 将来自与给定前缀匹配的接口的流量视为本地流量。 如果 DetectLocalMode 设置为 InterfaceNamePrefix,则应设置该参数。
--profiling

如果为 true,则通过 Web 接口 /debug/pprof 启用性能分析。 如果配置文件由 --config 指定,则忽略此参数。

--proxy-mode ProxyMode

使用哪种代理模式:在 Linux 上可以是 'iptables'(默认)或 'ipvs'。 在 Windows 上唯一支持的值是 'kernelspace'。 如果配置文件由 --config 指定,则忽略此参数。

--proxy-port-range port-range

可以用来代理服务流量的主机端口范围(包括'起始端口-结束端口'、 '单个端口'、'起始端口+偏移'几种形式)。 如果未指定或者设置为 0(或 0-0),则随机选择端口。

--show-hidden-metrics-for-version string

要显示隐藏指标的先前版本。 仅先前的次要版本有意义,不允许其他值。 格式为 <major>.<minor>,例如 '1.16'。 这种格式的目的是确保你有机会注意到下一个发行版是否隐藏了其他指标, 而不是在之后将其永久删除时感到惊讶。 如果配置文件由 --config 指定,则忽略此参数。

--skip_headers

如果为 true,则避免在日志消息中使用头部前缀

--skip_log_headers

如果为 true,则在打开日志文件时避免使用头部(当 --logtostderr=true 时不生效)

--stderrthreshold int     默认值:2

当写入到文件或 stderr 时设置严重程度达到或超过此阈值的日志输出到 stderr (当 --logtostderr=true--alsologtostderr=false 时不生效)。

-v, --v int

设置日志级别详细程度的数值。

--version version[=true]

打印版本信息并退出。

--vmodule <逗号分割的 “pattern=N” 设置>

以逗号分割的 pattern=N 设置的列表,用于文件过滤日志

--write-config-to string

如果设置,将默认配置信息写入此文件并退出。

7 - kube-scheduler

简介

Kubernetes 调度器是一个控制面进程,负责将 Pods 指派到节点上。 调度器基于约束和可用资源为调度队列中每个 Pod 确定其可合法放置的节点。 调度器之后对所有合法的节点进行排序,将 Pod 绑定到一个合适的节点。 在同一个集群中可以使用多个不同的调度器;kube-scheduler 是其参考实现。 参阅调度以获得关于调度和 kube-scheduler 组件的更多信息。

kube-scheduler [flags]

选项

--allow-metric-labels stringToString      默认值:[]
这个键值映射表设置度量标签所允许设置的值。 其中键的格式是 <MetricName>,<LabelName>。 值的格式是 <allowed_value>,<allowed_value>。 例如:metric1,label1='v1,v2,v3', metric1,label2='v1,v2,v3' metric2,label1='v1,v2,v3'。
--authentication-kubeconfig string
指向具有足够权限以创建 tokenaccessreviews.authentication.k8s.io 的 Kubernetes 核心服务器的 kubeconfig 文件。 这是可选的。如果为空,则所有令牌请求均被视为匿名请求,并且不会在集群中查找任何客户端 CA。
--authentication-skip-lookup
如果为 false,则 authentication-kubeconfig 将用于从集群中查找缺少的身份验证配置。
--authentication-token-webhook-cache-ttl duration     默认值:10s
缓存来自 Webhook 令牌身份验证器的响应的持续时间。
--authentication-tolerate-lookup-failure     默认值:true
如果为 true,则无法从集群中查找缺少的身份验证配置是致命的。 请注意,这可能导致身份验证将所有请求视为匿名。
--authorization-always-allow-paths strings     默认值:"/healthz,/readyz,/livez"
在授权过程中跳过的 HTTP 路径列表,即在不联系 “core” kubernetes 服务器的情况下被授权的 HTTP 路径。
--authorization-kubeconfig string
指向具有足够权限以创建 subjectaccessreviews.authorization.k8s.io 的 Kubernetes 核心服务器的 kubeconfig 文件。这是可选的。 如果为空,则所有未被鉴权机制略过的请求都会被禁止。
--authorization-webhook-cache-authorized-ttl duration     默认值:10s
缓存来自 Webhook 授权者的 “authorized” 响应的持续时间。
--authorization-webhook-cache-unauthorized-ttl duration     默认值:10s
缓存来自 Webhook 授权者的 “unauthorized” 响应的持续时间。
--azure-container-registry-config string
包含 Azure 容器仓库配置信息的文件的路径。
--bind-address string     默认值:0.0.0.0
监听 --secure-port 端口的 IP 地址。 集群的其余部分以及 CLI/ Web 客户端必须可以访问关联的接口。 如果为空,将使用所有接口(0.0.0.0 表示使用所有 IPv4 接口,“::” 表示使用所有 IPv6 接口)。 如果为空或未指定地址 (0.0.0.0 或 ::),所有接口将被使用。
--cert-dir string
TLS 证书所在的目录。如果提供了--tls-cert-file 和 --tls private-key-file, 则将忽略此参数。
--client-ca-file string
如果已设置,由 client-ca-file 中的证书机构签名的客户端证书的任何请求都将使用 与客户端证书的 CommonName 对应的身份进行身份验证。
--config string
配置文件的路径。
--contention-profiling     默认值:true
已弃用: 如果启用了性能分析,则启用锁竞争分析。 如果 --config 指定了一个配置文件,那么这个参数将被忽略。
--disabled-metrics strings
这个标志提供了一个规避不良指标的选项。你必须提供完整的指标名称才能禁用它。 免责声明:禁用指标的优先级比显示隐藏的指标更高。
--feature-gates <逗号分隔的 'key=True|False' 对>
一组 key=value 对,描述了 alpha/experimental 特性门控开关。选项包括:
APIListChunking=true|false (BETA - 默认值为 true)
APIPriorityAndFairness=true|false (BETA - 默认值为 true)
APIResponseCompression=true|false (BETA - 默认值为 true)
APISelfSubjectReview=true|false (ALPHA - 默认值为 false)
APIServerIdentity=true|false (BETA - 默认值为 true)
APIServerTracing=true|false (ALPHA - 默认值为 false)
AggregatedDiscoveryEndpoint=true|false (ALPHA - 默认值为 false)
AllAlpha=true|false (ALPHA - 默认值为 false)
AllBeta=true|false (BETA - 默认值为 false)
AnyVolumeDataSource=true|false (BETA - 默认值为 true)
AppArmor=true|false (BETA - 默认值为 true)
CPUManagerPolicyAlphaOptions=true|false (ALPHA - 默认值为 false)
CPUManagerPolicyBetaOptions=true|false (BETA - 默认值为 true)
CPUManagerPolicyOptions=true|false (BETA - 默认值为 true)
CSIMigrationPortworx=true|false (BETA - 默认值为 false)
CSIMigrationRBD=true|false (ALPHA - 默认值为 false)
CSINodeExpandSecret=true|false (ALPHA - 默认值为 false)
CSIVolumeHealth=true|false (ALPHA - 默认值为 false)
ComponentSLIs=true|false (ALPHA - 默认值为 false)
ContainerCheckpoint=true|false (ALPHA - 默认值为 false)
ContextualLogging=true|false (ALPHA - 默认值为 false)
CronJobTimeZone=true|false (BETA - 默认值为 true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值为 false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值为 false)
CustomResourceValidationExpressions=true|false (BETA - 默认值为 true)
DisableCloudProviders=true|false (ALPHA - 默认值为 false)
DisableKubeletCloudCredentialProviders=true|false (ALPHA - 默认值为 false)
DownwardAPIHugePages=true|false (BETA - 默认值为 true)
DynamicResourceAllocation=true|false (ALPHA - 默认值为 false)
EventedPLEG=true|false (ALPHA - 默认值为 false)
ExpandedDNSConfig=true|false (BETA - 默认值为 true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值为 false)
GRPCContainerProbe=true|false (BETA - 默认值为 true)
GracefulNodeShutdown=true|false (BETA - 默认值为 true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值为 true)
HPAContainerMetrics=true|false (ALPHA - 默认值为 false)
HPAScaleToZero=true|false (ALPHA - 默认值为 false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值为 false)
IPTablesOwnershipCleanup=true|false (ALPHA - 默认值为 false)
InTreePluginAWSUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginAzureDiskUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginAzureFileUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginGCEUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginOpenStackUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginPortworxUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginRBDUnregister=true|false (ALPHA - 默认值为 false)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值为 false)
JobMutableNodeSchedulingDirectives=true|false (BETA - 默认值为 true)
JobPodFailurePolicy=true|false (BETA - 默认值为 true)
JobReadyPods=true|false (BETA - 默认值为 true)
KMSv2=true|false (ALPHA - 默认值为 false)
KubeletInUserNamespace=true|false (ALPHA - 默认值为 false)
KubeletPodResources=true|false (BETA - 默认值为 true)
KubeletPodResourcesGetAllocatable=true|false (BETA - 默认值为 true)
KubeletTracing=true|false (ALPHA - 默认值为 false)
LegacyServiceAccountTokenTracking=true|false (ALPHA - 默认值为 false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值为 false)
LogarithmicScaleDown=true|false (BETA - 默认值为 true)
LoggingAlphaOptions=true|false (ALPHA - 默认值为 false)
LoggingBetaOptions=true|false (BETA - 默认值为 true)
MatchLabelKeysInPodTopologySpread=true|false (ALPHA - 默认值为 false)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值为 false)
MemoryManager=true|false (BETA - 默认值为 true)
MemoryQoS=true|false (ALPHA - 默认值为 false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值为 false)
MinimizeIPTablesRestore=true|false (ALPHA - 默认值为 false)
MultiCIDRRangeAllocator=true|false (ALPHA - 默认值为 false)
NetworkPolicyStatus=true|false (ALPHA - 默认值为 false)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值为 true)
NodeOutOfServiceVolumeDetach=true|false (BETA - 默认值为 true)
NodeSwap=true|false (ALPHA - 默认值为 false)
OpenAPIEnums=true|false (BETA - 默认值为 true)
OpenAPIV3=true|false (BETA - 默认值为 true)
PDBUnhealthyPodEvictionPolicy=true|false (ALPHA - 默认值为 false)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值为 false)
PodDeletionCost=true|false (BETA - 默认值为 true)
PodDisruptionConditions=true|false (BETA - 默认值为 true)
PodHasNetworkCondition=true|false (ALPHA - 默认值为 false)
PodSchedulingReadiness=true|false (ALPHA - 默认值为 false)
ProbeTerminationGracePeriod=true|false (BETA - 默认值为 true)
ProcMountType=true|false (ALPHA - 默认值为 false)
ProxyTerminatingEndpoints=true|false (BETA - 默认值为 true)
QOSReserved=true|false (ALPHA - 默认值为 false)
ReadWriteOncePod=true|false (ALPHA - 默认值为 false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值为 false)
RemainingItemCount=true|false (BETA - 默认值为 true)
RetroactiveDefaultStorageClass=true|false (BETA - 默认值为 true)
RotateKubeletServerCertificate=true|false (BETA - 默认值为 true)
SELinuxMountReadWriteOncePod=true|false (ALPHA - 默认值为 false)
SeccompDefault=true|false (BETA - 默认值为 true)
ServerSideFieldValidation=true|false (BETA - 默认值为 true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值为 true)
StatefulSetAutoDeletePVC=true|false (ALPHA - 默认值为 false)
StatefulSetStartOrdinal=true|false (ALPHA - 默认值为 false)
StorageVersionAPI=true|false (ALPHA - 默认值为 false)
StorageVersionHash=true|false (BETA - 默认值为 true)
TopologyAwareHints=true|false (BETA - 默认值为 true)
TopologyManager=true|false (BETA - 默认值为 true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值为 false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值为 false)
TopologyManagerPolicyOptions=true|false (ALPHA - 默认值为 false)
UserNamespacesStatelessPodsSupport=true|false (ALPHA - 默认值为 false)
ValidatingAdmissionPolicy=true|false (ALPHA - 默认值为 false)
VolumeCapacityPriority=true|false (ALPHA - 默认值为 false)
WinDSR=true|false (ALPHA - 默认值为 false)
WinOverlay=true|false (BETA - 默认值为 true)
WindowsHostNetwork=true|false (ALPHA - 默认值为 true)
-h, --help
kube-scheduler 帮助命令
--http2-max-streams-per-connection int
服务器为客户端提供的 HTTP/2 连接最大限制。零表示使用 Golang 的默认值。
--kube-api-burst int32     默认值:100
已弃用: 与 kubernetes API 通信时使用的突发请求个数限值。 如果 --config 指定了一个配置文件,那么这个参数将被忽略。
--kube-api-content-type string     默认值:"application/vnd.kubernetes.protobuf"
已弃用: 发送到 API 服务器的请求的内容类型。 如果 --config 指定了一个配置文件,那么这个参数将被忽略。
--kube-api-qps float     默认值:50
已弃用: 与 kubernetes apiserver 通信时要使用的 QPS 如果 --config 指定了一个配置文件,那么这个参数将被忽略。
--kubeconfig string
已弃用: 包含鉴权和主节点位置信息的 kubeconfig 文件的路径。 如果 --config 指定了一个配置文件,那么这个参数将被忽略。
--leader-elect     默认值:true
在执行主循环之前,开始领导者选举并选出领导者。 使用多副本来实现高可用性时,可启用此标志。
--leader-elect-lease-duration duration     默认值:15s
非领导者候选人在观察到领导者更新后将等待直到试图获得领导但未更新的领导者职位的等待时间。 这实际上是领导者在被另一位候选人替代之前可以停止的最大持续时间。 该情况仅在启用了领导者选举的情况下才适用。
--leader-elect-renew-deadline duration     默认值:10s
领导者尝试在停止领导之前更新领导职位的间隔时间。该时间必须小于租赁期限。 仅在启用了领导者选举的情况下才适用。
--leader-elect-resource-lock string     默认值:"leases"
在领导者选举期间用于锁定的资源对象的类型。支持的选项有 `leases`、`endpointleases` 和 `configmapsleases`。
--leader-elect-resource-name string     默认值:"kube-scheduler"
在领导者选举期间用于锁定的资源对象的名称。
--leader-elect-resource-namespace string     默认值:"kube-system"
在领导者选举期间用于锁定的资源对象的命名空间。
--leader-elect-retry-period duration     默认值:2s
客户应在尝试获取和更新领导之间等待的时间。仅在启用了领导者选举的情况下才适用。
--lock-object-name string     默认值:"kube-scheduler"
已弃用: 定义锁对象的名称。将被删除以便使用 --leader-elect-resource-name。 如果 --config 指定了一个配置文件,那么这个参数将被忽略。
--lock-object-namespace string     默认值:"kube-system"
已弃用: 定义锁对象的命名空间。将被删除以便使用 leader-elect-resource-namespace。 如果 --config 指定了一个配置文件,那么这个参数将被忽略。
--log-flush-frequency duration     默认值:5s
两次日志刷新之间的最大秒数。
--logging-format string     默认值:“text”
设置日志格式。可选格式:“text”。
--logtostderr     默认值:true
日志记录到标准错误输出而不是文件。
--master string
Kubernetes API 服务器的地址(覆盖 kubeconfig 中的任何值)。
--permit-address-sharing
如果为 true,在绑定端口时将使用 SO_REUSEADDR。 这将允许同时绑定诸如 0.0.0.0 这类通配符 IP和特定 IP, 并且它避免等待内核释放处于 TIME_WAIT 状态的套接字。 默认值:false
--permit-port-sharing
如果此标志为 true,在绑定端口时会使用 SO_REUSEPORT,从而允许不止一个 实例绑定到同一地址和端口。 默认值:false
--pod-max-in-unschedulable-pods-duration duration     默认值:5m0s
已弃用:Pod 可以在 unschedulablePods 中停留的最长时间。 如果 Pod 在 unschedulablePods 中停留的时间超过此值,则该 pod 将被从 unschedulablePods 移动到 backoffQ 或 activeQ。 此标志已弃用,将在 1.2 中删除。
--profiling     默认值:true
已弃用: 通过 Web 界面主机启用配置文件:host:port/debug/pprof/。 如果 --config 指定了一个配置文件,这个参数将被忽略。
--requestheader-allowed-names stringSlice
客户端证书通用名称列表,允许在 --requestheader-username-headers 指定的头部中提供用户名。如果为空,则允许任何由 --requestheader-client-ca-file 中证书机构验证的客户端证书。
--requestheader-client-ca-file string
在信任 --requestheader-username-headers 指定的头部中的用户名之前 用于验证传入请求上的客户端证书的根证书包。 警告:通常不应假定传入请求已经完成鉴权。
--requestheader-extra-headers-prefix strings      默认值:"x-remote-extra-"
要检查请求头部前缀列表。建议使用 X-Remote-Extra-
--requestheader-group-headers strings      默认值:"x-remote-group"
用于检查组的请求头部列表。建议使用 X-Remote-Group
--requestheader-username-headers strings      默认值:"x-remote-user"
用于检查用户名的请求头部列表。X-Remote-User 很常用。
--secure-port int     默认值:10259
通过身份验证和授权为 HTTPS 服务的端口。如果为 0,则根本不提供 HTTPS。
--show-hidden-metrics-for-version string
你希望显式隐藏指标的老版本号。只有较早的此版本号有意义,其它值都是不允许的。 格式为 <主版本>.<此版本>,例如:'1.16'。 此格式的目的是确保你有机会注意到是否下一个发行版本中隐藏了一些额外的指标, 而不是当某些指标在该版本之后被彻底移除时感到震惊。
--tls-cert-file string
包含默认的 HTTPS x509 证书的文件。(如果有 CA 证书,在服务器证书之后并置)。 如果启用了 HTTPS 服务,并且未提供 --tls-cert-file--tls-private-key-file,则会为公共地址生成一个自签名证书和密钥, 并将其保存到 --cert-dir 指定的目录中。
--tls-cipher-suites strings
服务器的密码套件列表,以逗号分隔。如果省略,将使用默认的 Go 密码套件。 优先考虑的值: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384.
不安全的值: TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_RC4_128_SHA.
--tls-min-version string
支持的最低 TLS 版本。可能的值:VersionTLS10, VersionTLS11, VersionTLS12, VersionTLS13
--tls-private-key-file string
包含与 --tls-cert-file 匹配的默认 x509 私钥的文件。
--tls-sni-cert-key string
一对 x509 证书和私钥文件路径,也可以包含由全限定域名构成的域名模式列表作为后缀, 并可能带有前缀的通配符段。域名匹配还允许是 IP 地址, 但是只有当 apiserver 对客户端请求的 IP 地址可见时,才能使用 IP。 如果未提供域名匹配模式,则提取证书名称。 非通配符匹配优先于通配符匹配,显式域名匹配优先于提取而来的名称。 若有多个密钥/证书对,可多次使用 --tls-sni-cert-key。 例如: "example.crt,example.key" 或者 "foo.crt,foo.key:*.foo.com,foo.com"。
-v, --v int
设置日志级别详细程度的数字
--version version[=true]
打印版本信息并退出。
--vmodule pattern=N,...
以逗号分隔的 “pattern=N” 设置列表,用于文件过滤的日志记录(仅适用于文本日志格式)。
--write-config-to string
如果设置此参数,将配置值写入此文件并退出。