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 状态的特性门控
Feature Default Stage Since Until
AdmissionWebhookMatchConditions false Alpha 1.27 1.27
AdmissionWebhookMatchConditions true Beta 1.28
AggregatedDiscoveryEndpoint false Alpha 1.26 1.26
AggregatedDiscoveryEndpoint true Beta 1.27
AnyVolumeDataSource false Alpha 1.18 1.23
AnyVolumeDataSource true Beta 1.24
APIResponseCompression false Alpha 1.7 1.15
APIResponseCompression true Beta 1.16
APIServerIdentity false Alpha 1.20 1.25
APIServerIdentity true Beta 1.26
APIServerTracing false Alpha 1.22 1.26
APIServerTracing true Beta 1.27
AppArmor true Beta 1.4
CloudControllerManagerWebhook false Alpha 1.27
CloudDualStackNodeIPs false Alpha 1.27 1.28
CloudDualStackNodeIPs true Beta 1.29
ClusterTrustBundle false Alpha 1.27
ClusterTrustBundleProjection false Alpha 1.29
ComponentSLIs false Alpha 1.26 1.26
ComponentSLIs true Beta 1.27
ConsistentListFromCache false Alpha 1.28
ContainerCheckpoint false Alpha 1.25
ContextualLogging false Alpha 1.24
CPUManagerPolicyAlphaOptions false Alpha 1.23
CPUManagerPolicyBetaOptions true Beta 1.23
CPUManagerPolicyOptions false Alpha 1.22 1.22
CPUManagerPolicyOptions true Beta 1.23
CRDValidationRatcheting false Alpha 1.28
CronJobsScheduledAnnotation true Beta 1.28
CrossNamespaceVolumeDataSource false Alpha 1.26
CSIMigrationPortworx false Alpha 1.23 1.24
CSIMigrationPortworx false Beta 1.25
CSIVolumeHealth false Alpha 1.21
CustomCPUCFSQuotaPeriod false Alpha 1.12
DevicePluginCDIDevices false Alpha 1.28 1.28
DevicePluginCDIDevices true Beta 1.29
DisableCloudProviders false Alpha 1.22 1.28
DisableCloudProviders true Beta 1.29
DisableKubeletCloudCredentialProviders false Alpha 1.23 1.28
DisableKubeletCloudCredentialProviders true Beta 1.29
DisableNodeKubeProxyVersion false Alpha 1.29
DynamicResourceAllocation false Alpha 1.26
ElasticIndexedJob true Beta 1.27
EventedPLEG false Alpha 1.26 1.26
EventedPLEG false Beta 1.27
GracefulNodeShutdown false Alpha 1.20 1.20
GracefulNodeShutdown true Beta 1.21
GracefulNodeShutdownBasedOnPodPriority false Alpha 1.23 1.23
GracefulNodeShutdownBasedOnPodPriority true Beta 1.24
HonorPVReclaimPolicy false Alpha 1.23
HPAContainerMetrics false Alpha 1.20 1.26
HPAContainerMetrics true Beta 1.27
HPAScaleToZero false Alpha 1.16
ImageMaximumGCAge false Alpha 1.29
InPlacePodVerticalScaling false Alpha 1.27
InTreePluginAWSUnregister false Alpha 1.21
InTreePluginAzureDiskUnregister false Alpha 1.21
InTreePluginAzureFileUnregister false Alpha 1.21
InTreePluginGCEUnregister false Alpha 1.21
InTreePluginOpenStackUnregister false Alpha 1.21
InTreePluginPortworxUnregister false Alpha 1.23
InTreePluginvSphereUnregister false Alpha 1.21
JobBackoffLimitPerIndex false Alpha 1.28 1.28
JobBackoffLimitPerIndex true Beta 1.29
JobPodFailurePolicy false Alpha 1.25 1.25
JobPodFailurePolicy true Beta 1.26
JobPodReplacementPolicy false Alpha 1.28 1.28
JobPodReplacementPolicy true Beta 1.29
KubeletCgroupDriverFromCRI false Alpha 1.28
KubeletInUserNamespace false Alpha 1.22
KubeletPodResourcesDynamicResources false Alpha 1.27
KubeletPodResourcesGet false Alpha 1.27
KubeletSeparateDiskGC false Alpha 1.29
KubeletTracing false Alpha 1.25 1.26
KubeletTracing true Beta 1.27
KubeProxyDrainingTerminatingNodes false Alpha 1.28
LegacyServiceAccountTokenCleanUp false Alpha 1.28 1.28
LegacyServiceAccountTokenCleanUp true Beta 1.29
LoadBalancerIPMode false Alpha 1.29
LocalStorageCapacityIsolationFSQuotaMonitoring false Alpha 1.15
LogarithmicScaleDown false Alpha 1.21 1.21
LogarithmicScaleDown true Beta 1.22
LoggingAlphaOptions false Alpha 1.24
LoggingBetaOptions true Beta 1.24
MatchLabelKeysInPodAffinity false Alpha 1.29
MatchLabelKeysInPodTopologySpread false Alpha 1.25 1.26
MatchLabelKeysInPodTopologySpread true Beta 1.27
MaxUnavailableStatefulSet false Alpha 1.24
MemoryManager false Alpha 1.21 1.21
MemoryManager true Beta 1.22
MemoryQoS false Alpha 1.22
MinDomainsInPodTopologySpread false Alpha 1.24 1.24
MinDomainsInPodTopologySpread false Beta 1.25 1.26
MinDomainsInPodTopologySpread true Beta 1.27
MultiCIDRServiceAllocator false Alpha 1.27
NewVolumeManagerReconstruction false Beta 1.27 1.27
NewVolumeManagerReconstruction true Beta 1.28
NFTablesProxyMode false Alpha 1.29
NodeInclusionPolicyInPodTopologySpread false Alpha 1.25 1.25
NodeInclusionPolicyInPodTopologySpread true Beta 1.26
NodeLogQuery false Alpha 1.27
NodeSwap false Alpha 1.22 1.27
NodeSwap false Beta 1.28
OpenAPIEnums false Alpha 1.23 1.23
OpenAPIEnums true Beta 1.24
PDBUnhealthyPodEvictionPolicy false Alpha 1.26 1.26
PDBUnhealthyPodEvictionPolicy true Beta 1.27
PersistentVolumeLastPhaseTransitionTime false Alpha 1.28 1.28
PersistentVolumeLastPhaseTransitionTime true Beta 1.29
PodAndContainerStatsFromCRI false Alpha 1.23
PodDeletionCost false Alpha 1.21 1.21
PodDeletionCost true Beta 1.22
PodDisruptionConditions false Alpha 1.25 1.25
PodDisruptionConditions true Beta 1.26
PodHostIPs false Alpha 1.28 1.28
PodHostIPs true Beta 1.29
PodIndexLabel true Beta 1.28
PodLifecycleSleepAction false Alpha 1.29
PodReadyToStartContainersCondition false Alpha 1.28 1.28
PodReadyToStartContainersCondition true Beta 1.29
PodSchedulingReadiness false Alpha 1.26 1.26
PodSchedulingReadiness true Beta 1.27
ProcMountType false Alpha 1.12
QOSReserved false Alpha 1.11
RecoverVolumeExpansionFailure false Alpha 1.23
SchedulerQueueingHints true Beta 1.28 1.28
SchedulerQueueingHints false Beta 1.29
SecurityContextDeny false Alpha 1.27
SELinuxMountReadWriteOncePod false Alpha 1.25 1.26
SELinuxMountReadWriteOncePod false Beta 1.27 1.27
SELinuxMountReadWriteOncePod true Beta 1.28
SeparateTaintEvictionController true Beta 1.29
ServiceAccountTokenJTI false Alpha 1.29
ServiceAccountTokenNodeBinding false Alpha 1.29
ServiceAccountTokenNodeBindingValidation false Alpha 1.29
ServiceAccountTokenPodNodeInfo false Alpha 1.29
SidecarContainers false Alpha 1.28 1.28
SidecarContainers true Beta 1.29
SizeMemoryBackedVolumes false Alpha 1.20 1.21
SizeMemoryBackedVolumes true Beta 1.22
StableLoadBalancerNodeSet true Beta 1.27
StatefulSetAutoDeletePVC false Alpha 1.23 1.26
StatefulSetAutoDeletePVC true Beta 1.27
StatefulSetStartOrdinal false Alpha 1.26 1.26
StatefulSetStartOrdinal true Beta 1.27
StorageVersionAPI false Alpha 1.20
StorageVersionHash false Alpha 1.14 1.14
StorageVersionHash true Beta 1.15
StructuredAuthenticationConfiguration false Alpha 1.29
StructuredAuthorizationConfiguration false Alpha 1.29
TopologyAwareHints false Alpha 1.21 1.22
TopologyAwareHints false Beta 1.23 1.23
TopologyAwareHints true Beta 1.24
TopologyManagerPolicyAlphaOptions false Alpha 1.26
TopologyManagerPolicyBetaOptions false Beta 1.26 1.27
TopologyManagerPolicyBetaOptions true Beta 1.28
TopologyManagerPolicyOptions false Alpha 1.26 1.27
TopologyManagerPolicyOptions true Beta 1.28
TranslateStreamCloseWebsocketRequests false Alpha 1.29
UnauthenticatedHTTP2DOSMitigation false Beta 1.28 1.28
UnauthenticatedHTTP2DOSMitigation true Beta 1.29
UnknownVersionInteroperabilityProxy false Alpha 1.28
UserNamespacesPodSecurityStandards false Alpha 1.29
UserNamespacesSupport false Alpha 1.28
ValidatingAdmissionPolicy false Alpha 1.26 1.27
ValidatingAdmissionPolicy false Beta 1.28
VolumeAttributesClass false Alpha 1.29
VolumeCapacityPriority false Alpha 1.21
WatchList false Alpha 1.27
WindowsHostNetwork true Alpha 1.26
WinDSR false Alpha 1.14
WinOverlay false Alpha 1.14 1.19
WinOverlay true Beta 1.20
ZeroLimitedNominalConcurrencyShares false Beta 1.29

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

已毕业或已废弃的特性门控
Feature Default Stage Since Until
APIListChunking false Alpha 1.8 1.8
APIListChunking true Beta 1.9 1.28
APIListChunking true GA 1.29
APIPriorityAndFairness false Alpha 1.18 1.19
APIPriorityAndFairness true Beta 1.20 1.28
APIPriorityAndFairness true GA 1.29
APISelfSubjectReview false Alpha 1.26 1.26
APISelfSubjectReview true Beta 1.27 1.27
APISelfSubjectReview true GA 1.28
ConsistentHTTPGetHandlers true GA 1.25
CPUManager false Alpha 1.8 1.9
CPUManager true Beta 1.10 1.25
CPUManager true GA 1.26
CSIMigrationAzureFile false Alpha 1.15 1.20
CSIMigrationAzureFile false Beta 1.21 1.23
CSIMigrationAzureFile true Beta 1.24 1.25
CSIMigrationAzureFile true GA 1.26
CSIMigrationRBD false Alpha 1.23 1.27
CSIMigrationRBD false Deprecated 1.28
CSINodeExpandSecret false Alpha 1.25 1.26
CSINodeExpandSecret true Beta 1.27 1.28
CSINodeExpandSecret true GA 1.29
CustomResourceValidationExpressions false Alpha 1.23 1.24
CustomResourceValidationExpressions true Beta 1.25 1.28
CustomResourceValidationExpressions true GA 1.29
DefaultHostNetworkHostPortsInPodTemplates false Deprecated 1.28
EfficientWatchResumption false Alpha 1.20 1.20
EfficientWatchResumption true Beta 1.21 1.23
EfficientWatchResumption true GA 1.24
ExecProbeTimeout true GA 1.20
ExpandedDNSConfig false Alpha 1.22 1.25
ExpandedDNSConfig true Beta 1.26 1.27
ExpandedDNSConfig true GA 1.28
ExperimentalHostUserNamespaceDefaulting false Beta 1.5 1.27
ExperimentalHostUserNamespaceDefaulting false Deprecated 1.28
InTreePluginRBDUnregister false Alpha 1.23 1.27
InTreePluginRBDUnregister false Deprecated 1.28
IPTablesOwnershipCleanup false Alpha 1.25 1.26
IPTablesOwnershipCleanup true Beta 1.27 1.27
IPTablesOwnershipCleanup true GA 1.28
JobReadyPods false Alpha 1.23 1.23
JobReadyPods true Beta 1.24 1.28
JobReadyPods true GA 1.29
KMSv1 true Deprecated 1.28 1.28
KMSv1 false Deprecated 1.29
KMSv2 false Alpha 1.25 1.26
KMSv2 true Beta 1.27 1.28
KMSv2 true GA 1.29
KMSv2KDF false Beta 1.28 1.28
KMSv2KDF true GA 1.29
KubeletPodResources false Alpha 1.13 1.14
KubeletPodResources true Beta 1.15 1.27
KubeletPodResources true GA 1.28
KubeletPodResourcesGetAllocatable false Alpha 1.21 1.22
KubeletPodResourcesGetAllocatable true Beta 1.23 1.27
KubeletPodResourcesGetAllocatable true GA 1.28
LegacyServiceAccountTokenTracking false Alpha 1.26 1.26
LegacyServiceAccountTokenTracking true Beta 1.27 1.27
LegacyServiceAccountTokenTracking true GA 1.28
MinimizeIPTablesRestore false Alpha 1.26 1.26
MinimizeIPTablesRestore true Beta 1.27 1.27
MinimizeIPTablesRestore true GA 1.28
NodeOutOfServiceVolumeDetach false Alpha 1.24 1.25
NodeOutOfServiceVolumeDetach true Beta 1.26 1.27
NodeOutOfServiceVolumeDetach true GA 1.28
ProxyTerminatingEndpoints false Alpha 1.22 1.25
ProxyTerminatingEndpoints true Beta 1.26 1.27
ProxyTerminatingEndpoints true GA 1.28
ReadWriteOncePod false Alpha 1.22 1.26
ReadWriteOncePod true Beta 1.27 1.28
ReadWriteOncePod true GA 1.29
RemainingItemCount false Alpha 1.15 1.15
RemainingItemCount true Beta 1.16 1.28
RemainingItemCount true GA 1.29
RemoveSelfLink false Alpha 1.16 1.19
RemoveSelfLink true Beta 1.20 1.23
RemoveSelfLink true GA 1.24
ServerSideApply false Alpha 1.14 1.15
ServerSideApply true Beta 1.16 1.21
ServerSideApply true GA 1.22
ServerSideFieldValidation false Alpha 1.23 1.24
ServerSideFieldValidation true Beta 1.25 1.26
ServerSideFieldValidation true GA 1.27
ServiceNodePortStaticSubrange false Alpha 1.27 1.27
ServiceNodePortStaticSubrange true Beta 1.28 1.28
ServiceNodePortStaticSubrange true GA 1.29
SkipReadOnlyValidationGCE false Alpha 1.28 1.28
SkipReadOnlyValidationGCE true Deprecated 1.29
WatchBookmark false Alpha 1.15 1.15
WatchBookmark true Beta 1.16 1.16
WatchBookmark true GA 1.17

使用特性

特性阶段

处于 AlphaBetaGA 阶段的特性。

Alpha 特性代表:

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

Beta 特性代表:

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

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

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

特性门控列表

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

  • AdmissionWebhookMatchConditions:

    在变更性质和合法性检查性质的准入 Webhook 上启用匹配状况

  • AggregatedDiscoveryEndpoint:

    启用单个 HTTP 端点 /discovery/<version>, 支持用 ETag 进行原生 HTTP 缓存,包含 API 服务器已知的所有 APIResource。

  • AnyVolumeDataSource:

    允许使用任何自定义的资源来作为 PVC 中的 dataSource

  • APIListChunking:

    允许 API 客户端以块的形式从 API 服务器检索(LISTGET)资源。

  • APIPriorityAndFairness:

    在每个服务器上启用优先级和公平性来管理请求的并发度(由 RequestManagement 重命名而来)。

  • APIResponseCompression:

    压缩 LISTGET 请求的 API 响应。

  • APISelfSubjectReview:

    激活 SelfSubjectReview API,允许用户查看请求主体的身份认证信息。 更多细节请参阅 API 访问客户端的身份认证信息

  • APIServerIdentity:

    使用 Lease(租约)为集群中的每个 API 服务器赋予一个 ID。

  • APIServerTracing:

    在 API 服务器中添加对分布式跟踪的支持。 更多细节参阅针对 Kubernetes 系统组件的追踪

  • AppArmor:

    在 Linux 节点上为 Pod 启用 AppArmor 机制的强制访问控制。 更多细节参阅 AppArmor 教程

  • CloudControllerManagerWebhook:

    启用在云控制器管理器中的 Webhook。

  • CloudDualStackNodeIPs:

    允许在外部云驱动中通过 kubelet --node-ip 设置双协议栈。 有关更多详细信息,请参阅配置 IPv4/IPv6 双栈

  • ClusterTrustBundle:

    启用 ClusterTrustBundle 对象和 kubelet 集成。

  • ClusterTrustBundleProjection:

    clusterTrustBundle 投射卷源

  • ComponentSLIs:

    在 kubelet、kube-scheduler、kube-proxy、kube-controller-manager、cloud-controller-manager 等 Kubernetes 组件上启用 /metrics/slis 端点,从而允许你抓取健康检查指标。

  • ConsistentHTTPGetHandlers:

    使用探测器为生命周期处理程序规范化 HTTP get URL 和标头传递。

  • ConsistentListFromCache:

    允许 API 服务器从缓存中提供一致的 list 操作。

  • ContainerCheckpoint:

    启用 kubelet checkpoint API。 详情见 Kubelet Checkpoint API

  • ContextualLogging:

    当你启用这个特性门控,支持日志上下文记录的 Kubernetes 组件会为日志输出添加额外的详细内容。

  • CPUManager:

    启用容器级别的 CPU 亲和性支持,有关更多详细信息,请参见 CPU 管理策略

  • CPUManagerPolicyAlphaOptions:

    允许对 CPU 管理器策略进行微调,针对试验性的、Alpha 质量级别的选项。 此特性门控用来保护一组质量级别为 Alpha 的 CPU 管理器选项。 此特性门控永远不会被升级为 Beta 或者稳定版本。

  • CPUManagerPolicyBetaOptions:

    允许对 CPU 管理器策略进行微调,针对试验性的、Beta 质量级别的选项。 此特性门控用来保护一组质量级别为 Beta 的 CPU 管理器选项。 此特性门控永远不会被升级为稳定版本。

  • CPUManagerPolicyOptions:

    允许微调 CPU 管理器策略。

  • CRDValidationRatcheting:

    如果资源更新的冲突部分未发生变化,则启用对自定义资源的更新以包含对 OpenAPI 模式的违规条目。 详情参见验证递进

  • CronJobsScheduledAnnotation:

    将调度作业的时间设置为代表 CronJob 创建的作业上的一个 注解

  • CrossNamespaceVolumeDataSource:

    启用跨名字空间卷数据源,以允许你在 PersistentVolumeClaim 的 dataSourceRef 字段中指定一个源名字空间。

  • CSIMigrationAzureFile:

    启用封装和转换逻辑,将卷操作从 AzureFile 内嵌插件路由到 AzureFile CSI 插件。对于禁用了此特性的节点或者没有安装并配置 AzureFile CSI 插件的节点,支持回退到内嵌(in-tree)AzureFile 插件来执行卷挂载操作。 不支持回退到内嵌插件来执行卷制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。

  • CSIMigrationPortworx:

    启用封装和转换逻辑,将卷操作从 Portworx 内嵌插件路由到 Portworx CSI 插件。需要在集群中安装并配置 Portworx CSI 插件.

  • CSIMigrationRBD:

    启用封装和转换逻辑,将卷操作从 RBD 的内嵌插件路由到 Ceph RBD CSI 插件。 此特性要求 CSIMigration 和 csiMigrationRBD 特性标志均被启用, 且集群中安装并配置了 Ceph CSI 插件。 此标志已被弃用,以鼓励使用 InTreePluginRBDUnregister 特性标志。 后者会禁止注册内嵌的 RBD 插件。

  • CSINodeExpandSecret:

    允许在 NodeExpandVolume CSI 操作期间, 将保密的身份验证数据传递到 CSI 驱动以供后者使用。

  • CSIVolumeHealth:

    启用对节点上的 CSI 卷运行状况监控的支持。

  • CustomCPUCFSQuotaPeriod:

    使节点能够更改 kubelet 配置 中的 cpuCFSQuotaPeriod

  • CustomResourceValidationExpressions:

    启用 CRD 中的表达式语言合法性检查, 基于 x-kubernetes-validations 扩展中所书写的合法性检查规则来验证定制资源。

  • DefaultHostNetworkHostPortsInPodTemplates:

    更改何时设置 PodSpec.containers[*].ports[*].hostPort 的默认值。 默认仅在 Pod 中设置默认值。

    启用此特性意味着即使在嵌套的 PodSpec(例如 Deployment 中)中也会设置默认值, 这是以前的默认行为。

  • DevicePluginCDIDevices:

    启用设备插件 API 对 CDI 设备 ID 的支持。

  • DisableCloudProviders:

    禁用 kube-apiserverkube-controller-managerkubelet 中与 --cloud-provider 组件标志相关的所有功能。

  • DisableKubeletCloudCredentialProviders:

    禁用 kubelet 中为拉取镜像内置的凭据机制, 该凭据用于向云提供商的容器镜像仓库进行身份认证。

  • DisableNodeKubeProxyVersion:

    禁止设置 Node 的 kubeProxyVersion 字段。

  • DynamicResourceAllocation:

    启用对具有自定义参数和独立于 Pod 生命周期的资源的支持。

  • EfficientWatchResumption:

    允许将存储发起的书签(进度通知)事件传递给用户。这仅适用于 watch(监视)操作。

  • ElasticIndexedJob:

    允许通过同时改变 spec.completionsspec.parallelism 使得 spec.completions == spec.parallelism 来对带索引的 Job 执行扩容或缩容。 更多细节请参阅弹性索引 Job 文档。

  • EventedPLEG:

    启用此特性后,kubelet 能够通过 CRI 扩展从容器运行时接收容器生命周期事件。 (PLEG 是 “Pod lifecycle event generator” 的缩写,即 Pod 生命周期事件生成器)。 要使用此特性,你还需要在集群中运行的每个容器运行时中启用对容器生命周期事件的支持。 如果容器运行时未宣布支持容器生命周期事件,即使你已启用了此特性门控, kubelet 也会自动切换到原有的通用 PLEG 机制。

  • ExecProbeTimeout:

    确保 kubelet 会遵从 exec 探针的超时值设置。 此特性门控的主要目的是方便你处理现有的、依赖于已被修复的缺陷的工作负载; 该缺陷导致 Kubernetes 会忽略 exec 探针的超时值设置。 参阅就绪态探针.

  • ExpandedDNSConfig:

    在 kubelet 和 kube-apiserver 上启用后, 允许使用更多的 DNS 搜索域和搜索域列表。此功能特性需要容器运行时 (containerd v1.5.6 或更高,CRI-O v1.22 或更高)的支持。 参阅扩展 DNS 配置.

  • ExperimentalHostUserNamespaceDefaulting:

    启用主机默认的用户名字空间。 这适用于使用其他主机名字空间、主机安装的容器,或具有特权或使用特定的非名字空间功能 (例如 MKNODESYS_MODULE 等)的容器。 如果在 Docker 守护程序中启用了用户名字空间重新映射,则启用此选项。

  • GracefulNodeShutdown:

    在 kubelet 中启用体面地关闭节点的支持。 在系统关闭时,kubelet 会尝试监测该事件并体面地终止节点上运行的 Pod。 参阅体面地关闭节点以了解更多细节。

  • GracefulNodeShutdownBasedOnPodPriority:

    允许 kubelet 在体面终止节点时检查 Pod 的优先级。

  • HonorPVReclaimPolicy:

    无论 PV 和 PVC 的删除顺序如何,当持久卷回收策略为 Delete 时都要遵守该策略。更多细节参阅 PersistentVolume 删除保护终结器文档。

  • HPAContainerMetrics:

    启用 HorizontalPodAutoscaler 基于目标 Pod 中单个容器的指标进行扩缩。

  • HPAScaleToZero:

    使用自定义指标或外部指标时,可将 HorizontalPodAutoscaler 资源的 minReplicas 设置为 0。

  • ImageMaximumGCAge:

    启用 kubelet 配置字段 imageMaximumGCAge,允许管理员指定多久之后镜像将被垃圾收集。

  • InPlacePodVerticalScaling:

    启用就地 Pod 垂直扩缩。

  • 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 内嵌插件。

  • IPTablesOwnershipCleanup:

    这使得 kubelet 不再创建传统的 iptables 规则。

  • JobBackoffLimitPerIndex:

    允许在索引作业中指定每个索引的最大 Pod 重试次数。

  • JobPodFailurePolicy:

    允许用户根据容器退出码和 Pod 状况来指定 Pod 失效的处理方法。

  • JobPodReplacementPolicy:

    允许你在 Job 中为终止的 Pod 指定替代 Pod。

  • JobReadyPods:

    允许跟踪状况Ready 的 Pod 的个数。Ready 的 Pod 记录在 Job 对象的 status 字段中。

  • KMSv1:

    启用 KMS v1 API 以实现静态加密。 详情参见使用 KMS 驱动进行数据加密

  • KMSv2:

    启用 KMS v2 API 以实现静态加密。 详情参见使用 KMS 驱动进行数据加密

  • KMSv2KDF:

    启用 KMS v2 以生成一次性数据加密密钥。 详情参见使用 KMS 驱动进行数据加密。 如果 KMSv2 特性门控在你的集群未被启用,则 KMSv2KDF 特性门控的值不会产生任何影响。

  • KubeletCgroupDriverFromCRI:

    启用检测来自 CRI 的 kubelet cgroup 驱动配置选项。你可以在支持该特性门控的 kubelet 节点上使用此特性门控, 也可以在支持 RuntimeConfig CRI 调用的 CRI 容器运行时所在节点上使用此特性门控。 如果 CRI 和 kubelet 都支持此特性,kubelet 将忽略 cgroupDriver 配置设置(或已弃用的 --cgroup-driver 命令行参数)。 如果你启用此特性门控但容器运行时不支持它,则 kubelet 将回退到使用通过 cgroupDriver 配置设置进行配置的驱动。 详情参见配置 cgroup 驱动

  • KubeletInUserNamespace:

    支持在用户名字空间里运行 kubelet。 请参见以非 root 用户身份运行 Kubernetes 节点组件

  • KubeletPodResources:

    启用 kubelet 上 Pod 资源 gRPC 端点。 详情参见支持设备监控

  • KubeletPodResourcesDynamicResources:

    扩展 kubelet 的 Pod 资源 gRPC 端点以包括通过 DynamicResourceAllocation API 在 ResourceClaims 中分配的资源。 详情参见资源分配报告。 包含有关可分配资源的信息,使客户端能够正确跟踪节点上的可用计算资源。

  • KubeletPodResourcesGet:

    在 kubelet 上为 Pod 资源启用 Get gRPC 端点。 此 API 增强了资源分配报告

  • KubeletPodResourcesGetAllocatable:

    启用 kubelet 的 Pod 资源的 GetAllocatableResources 功能。 此 API 增强了资源分配报告

  • KubeletSeparateDiskGC:

    启用 kubelet,即使在容器镜像和容器位于独立文件系统的情况下,也能进行垃圾回收。

  • KubeletTracing:

    新增在 kubelet 中对分布式追踪的支持。 启用时,kubelet CRI 接口和经身份验证的 http 服务器被插桩以生成 OpenTelemetry 追踪 span。 详情参见追踪 Kubernetes 系统组件

  • KubeProxyDrainingTerminatingNodes:

    externalTrafficPolicy: Cluster 服务实现终止节点的连接排空。

  • LegacyServiceAccountTokenCleanUp:

    当服务账号令牌在指定时间内(默认为一年)未被使用时, 允许基于 Secret 清理服务账号令牌

  • LegacyServiceAccountTokenTracking:

    跟踪基于 Secret 的服务账号令牌的使用情况。

  • LoadBalancerIPMode:

    当 Service 的 typeLoadBalancer 时,可设置该 Service 的 ipMode。 更多细节请参阅指定负载均衡器状态的 IPMode

  • LocalStorageCapacityIsolationFSQuotaMonitoring:

    如果本地临时存储启用了 LocalStorageCapacityIsolation,并且 emptyDir 卷所使用的文件系统支持项目配额, 并且启用了这些配额,将使用项目配额来监视 emptyDir 卷的存储消耗而不是遍历文件系统, 以此获得更好的性能和准确性。

  • LogarithmicScaleDown:

    启用 Pod 的半随机选择,控制器将根据 Pod 时间戳的对数桶按比例缩小来驱逐 Pod。

  • LoggingAlphaOptions:

    允许微调实验性的、Alpha 级别的日志选项。

  • LoggingBetaOptions:

    允许微调实验性的、Beta 级别的日志选项。

  • MatchLabelKeysInPodAffinity:

    Pod(反)亲和性启用 matchLabelKeysmismatchLabelKeys 字段。

  • MatchLabelKeysInPodTopologySpread:

    Pod 拓扑分布约束启用 matchLabelKeys 字段。

  • MaxUnavailableStatefulSet:

    允许为 StatefulSet 的滚动更新策略设置 maxUnavailable 字段。此字段指定更新过程中不可用 Pod 个数的上限。

  • MemoryManager:

    允许基于 NUMA 拓扑为容器设置内存亲和性。

  • MemoryQoS:

    使用 cgroup v2 内存控制器为 Pod 或容器启用内存保护和使用限制。

  • MinDomainsInPodTopologySpread:

    Pod 拓扑分布约束中启用 minDomains

  • MinimizeIPTablesRestore:

    启用 kube-proxy iptables 模式中的性能改进逻辑。

  • MultiCIDRServiceAllocator:

    使用 IPAddress 对象跟踪为 Service 的集群 IP 分配的 IP 地址。

  • NewVolumeManagerReconstruction:

    在 kubelet 启动期间启用改进的挂载卷的发现。由于这段代码已经进行了重大重构, 我们允许用户不采用这一逻辑,以免 kubelet 在启动时被卡住,或者未能为已终止的 Pod 卸载卷。 请注意,此重构是作为 Kubernetes 1.25 中的 SELinuxMountReadWriteOncePod Alpha 特性门控的一部分完成的。

    允许使用 nftables 模式运行 kube-proxy。

  • NodeInclusionPolicyInPodTopologySpread:

    在计算 Pod 拓扑分布偏差时允许在 Pod 拓扑分布约束中使用 nodeAffinityPolicynodeTaintsPolicy

  • NodeLogQuery:

    允许使用 /logs 端点来查询节点服务的日志。

  • NodeOutOfServiceVolumeDetach:

    当使用 node.kubernetes.io/out-of-service 污点将节点标记为无法提供服务时,节点上不能容忍这个污点的 Pod 将被强制删除, 并且针对此节点上被终止的 Pod 将立即执行解除卷挂接操作。 被删除的 Pod 可以很快在不同的节点上恢复。

  • NodeSwap:

    允许 kubelet 为节点上的 Kubernetes 工作负载分配交换内存。 必须将 KubeletConfiguration.failSwapOn 设置为 false 才能使用此能力。 更多细节请参见交换内存

  • OpenAPIEnums:

    允许在从 API 服务器返回的 spec 中填充 OpenAPI 模式的 "enum" 字段。

  • PDBUnhealthyPodEvictionPolicy:

    启用 PodDisruptionBudgetunhealthyPodEvictionPolicy 字段。 此字段指定何时应考虑驱逐不健康的 Pod。 更多细节请参阅不健康 Pod 驱逐策略

  • PersistentVolumeLastPhaseTransitionTime:

    为 PersistentVolume 添加一个新字段,用于保存卷上一次转换阶段的时间戳。

  • PodAndContainerStatsFromCRI:

    将 kubelet 配置为从 CRI 容器运行时收集容器和 Pod 的统计信息,而不是从 cAdvisor 收集统计信息。 从 1.26 版本开始,这还包括从 CRI 收集指标并通过 /metrics/cadvisor 进行发布(而不是直接由 cAdvisor 发布)。

  • PodDeletionCost:

    启用 Pod 删除开销特性, 允许用户影响 ReplicaSet 的缩容顺序。

  • PodDisruptionConditions:

    启用支持追加一个专用的 Pod 状况,以表示 Pod 由于某个干扰正在被删除。

  • PodHostIPs:

    为 Pod 和 downward API 启用 status.hostIPs 字段。此字段允许你将主机 IP 地址暴露给工作负载。

  • PodIndexLabel:

    在创建新的 Pod 时允许 Job 控制器和 StatefulSet 控制器将 Pod 索引添加为标签。 详情参见 Job 完成模式文档StatefulSet Pod 索引标签文档

  • PodLifecycleSleepAction:

    在 Container 生命周期钩子中启用 sleep 操作。

  • PodReadyToStartContainersCondition:

    使得 kubelet 能在 Pod 上标记 PodReadyToStartContainers 状况。

    此特性门控先前称为 PodHasNetworkCondition,关联的状况称为 PodHasNetwork

  • PodSchedulingReadiness:

    允许设置 schedulingGates 字段以控制 Pod 的调度就绪状态

  • 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 的一部分,但始终不设置。

  • SchedulerQueueingHints:

    启用调度器的排队提示增强功能, 有助于减少无效的重新排队。 调度器会在集群中发生可能导致 Pod 被重新调度的变化时,尝试重新进行 Pod 的调度。 排队提示是一些内部信号, 用于帮助调度器基于先前的调度尝试来筛选集群中与未调度的 Pod 相关的变化。

  • SecurityContextDeny:

    此门控表示 SecurityContextDeny 准入控制器已弃用。

  • SELinuxMountReadWriteOncePod:

    通过允许 kubelet 直接用正确的 SELinux 标签为 Pod 挂载卷而不是以递归方式更改这些卷上的每个文件来加速容器启动。 最初的实现侧重 ReadWriteOncePod 卷。

  • SeparateTaintEvictionController:

    允许运行 TaintEvictionController,该控制器可在 NodeLifecycleController 之外执行基于污点的驱逐。 此特性启用时,用户可以在 kube-controller-manager 上设置 --controllers=-taint-eviction-controller 标志, 可选择禁用基于污点的驱逐。

  • ServerSideApply:

    在 API 服务器上启用服务器端应用(SSA)

  • ServerSideFieldValidation:

    启用服务器端字段验证。这意味着资源模式的验证发生在 API 服务器端而不是客户端 (例如,kubectl createkubectl apply 命令行)。

  • ServiceAccountTokenJTI:

    控制是否将 JTI(UUID)嵌入到生成的服务账号令牌中, 以及对于这些令牌未来的请求,是否将这些 JTI 记录到 Kubernetes 审计日志中。

  • ServiceAccountTokenNodeBinding:

    控制 API 服务器是否允许将服务账号令牌绑定到 Node 对象。

  • ServiceAccountTokenNodeBindingValidation:

    控制 API 服务器是否会验证服务账号令牌中的 Node 引用。

  • ServiceAccountTokenPodNodeInfo:

    控制 API 服务器在颁发绑定到 Pod 对象的服务账号令牌时, 是否嵌入关联 Node 的名称和 uid

  • ServiceNodePortStaticSubrange:

    允许对 NodePort Service 使用不同的端口分配策略。 有关更多详细信息, 请参阅保留 NodePort 范围以避免冲突

  • SidecarContainers:

    允许将 Init 容器的 restartPolicy 设置为 Always, 以便该容器成为一个边车容器(可重启的 Init 容器)。 详情参见边车容器和 restartPolicy

  • SizeMemoryBackedVolumes:

    允许 kubelet 检查基于内存制备的卷的尺寸约束(目前主要针对 emptyDir 卷)。

  • SkipReadOnlyValidationGCE:

    跳过对 GCE 的验证,将在下个版本中启用。

  • StableLoadBalancerNodeSet:

    允许服务控制器(KCCM)减少根据节点状态变化来对负载均衡器作重新配置的操作。

  • StatefulSetAutoDeletePVC:

    允许使用可选字段 .spec.persistentVolumeClaimRetentionPolicy, 以便根据 StatefulSet 的生命周期来控制 PVC 的删除。 详情参见 PersistentVolumeClaim 保留

  • StatefulSetStartOrdinal:

    允许在 StatefulSet 中配置起始序号。 详情参见起始序号

  • StorageVersionAPI:

    启用存储版本 API

  • StorageVersionHash:

    允许 API 服务器在版本发现中公开存储版本的哈希值。

  • StructuredAuthenticationConfiguration:

    为 API 服务器启用结构化身份验证配置

  • StructuredAuthorizationConfiguration:

    启用结构化授权配置,以便集群管理员可以在 API 服务器处理程序链中指定多个授权 Webhook

  • TopologyAwareHints:

    在 EndpointSlice 中启用基于拓扑提示的拓扑感知路由。 更多细节参见拓扑感知路由

  • TopologyManagerPolicyAlphaOptions:

    允许微调拓扑管理器策略的实验性的、Alpha 质量的选项。 此特性门控守护一组质量级别为 Alpha 的拓扑管理器选项。 此特性门控绝对不会进阶至 Beta 或稳定版。

  • TopologyManagerPolicyBetaOptions:

    允许微调拓扑管理器策略的实验性的、Beta 质量的选项。 此特性门控守护一组质量级别为 Beta 的拓扑管理器选项。 此特性门控绝对不会进阶至稳定版。

  • TopologyManagerPolicyOptions:

    允许对拓扑管理器策略进行微调。

  • TranslateStreamCloseWebsocketRequests:

    允许从请求 v5 子协议版本的客户端处通过 WebSocket 流式传输远程命令子协议(execcpattach)。

  • UnauthenticatedHTTP2DOSMitigation:

    启用了针对未认证客户端的 HTTP/2 拒绝服务(DoS)防护措施。 Kubernetes v1.28.0 至 v1.28.2 版本并未包括这项特性门控。

  • UnknownVersionInteroperabilityProxy:

    当存在多个不同版本的 kube-apiserver 时,将资源请求代理到正确的对等 kube-apiserver。 更多信息请参见混合版本代理

  • UserNamespacesPodSecurityStandards:

    启用 Pod 安全标准策略的放宽措施,适用于在命名空间中运行的 Pod。 你需要在集群的所有节点上统一设置此特性门控,并且必须启用 UserNamespacesSupport 才能使用此功能。

  • UserNamespacesSupport:

    为 Pod 启用用户命名空间支持。

  • ValidatingAdmissionPolicy:

    在准入控制中启用 ValidatingAdmissionPolicy 以支持 CEL 合法性检查。

  • VolumeAttributesClass:

    启用对 VolumeAttributesClasses 的支持。 更多细节参见卷属性类

  • VolumeCapacityPriority:

    启用基于可用 PV 容量对不同拓扑域下节点进行优先级排序的支持。

  • WatchBookmark:

    启用对监听书签事件的支持。

  • WatchList:

    启用对监听请求中流式传输对象初始状态的支持。

  • WindowsHostNetwork:

    启用对 Windows 容器接入主机网络名字空间的支持。

  • WinDSR:

    允许 kube-proxy 为 Windows 创建 DSR(Direct Server Return,直接服务器返回)负载均衡器。

  • WinOverlay:

    允许 kube-proxy 以覆盖模式在 Windows 上运行。

  • ZeroLimitedNominalConcurrencyShares:

    允许 API 服务器中的优先级和公平性使用 limited 部分的 nominalConcurrencyShares 字段的零值作为优先级。

接下来

  • 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 Default Stage From To
Accelerators false Alpha 1.6 1.10
Accelerators Deprecated 1.11 1.11
AdvancedAuditing false Alpha 1.7 1.7
AdvancedAuditing true Beta 1.8 1.11
AdvancedAuditing true GA 1.12 1.27
AffinityInAnnotations false Alpha 1.6 1.7
AffinityInAnnotations Deprecated 1.8 1.8
AllowExtTrafficLocalEndpoints false Beta 1.4 1.6
AllowExtTrafficLocalEndpoints true GA 1.7 1.9
AllowInsecureBackendProxy true Beta 1.17 1.20
AllowInsecureBackendProxy true GA 1.21 1.25
AttachVolumeLimit false Alpha 1.11 1.11
AttachVolumeLimit true Beta 1.12 1.16
AttachVolumeLimit true GA 1.17 1.21
BalanceAttachedNodeVolumes false Alpha 1.11 1.21
BalanceAttachedNodeVolumes false Deprecated 1.22 1.22
BlockVolume false Alpha 1.9 1.12
BlockVolume true Beta 1.13 1.17
BlockVolume true GA 1.18 1.21
BoundServiceAccountTokenVolume false Alpha 1.13 1.20
BoundServiceAccountTokenVolume true Beta 1.21 1.21
BoundServiceAccountTokenVolume true GA 1.22 1.23
ConfigurableFSGroupPolicy false Alpha 1.18 1.19
ConfigurableFSGroupPolicy true Beta 1.20 1.22
ConfigurableFSGroupPolicy true GA 1.23 1.25
ControllerManagerLeaderMigration false Alpha 1.21 1.21
ControllerManagerLeaderMigration true Beta 1.22 1.23
ControllerManagerLeaderMigration true GA 1.24 1.26
CRIContainerLogRotation false Alpha 1.10 1.10
CRIContainerLogRotation true Beta 1.11 1.20
CRIContainerLogRotation true GA 1.21 1.22
CronJobControllerV2 false Alpha 1.20 1.20
CronJobControllerV2 true Beta 1.21 1.21
CronJobControllerV2 true GA 1.22 1.23
CronJobTimeZone false Alpha 1.24 1.24
CronJobTimeZone true Beta 1.25 1.26
CronJobTimeZone true GA 1.27 1.28
CSIBlockVolume false Alpha 1.11 1.13
CSIBlockVolume true Beta 1.14 1.17
CSIBlockVolume true GA 1.18 1.21
CSIDriverRegistry false Alpha 1.12 1.13
CSIDriverRegistry true Beta 1.14 1.17
CSIDriverRegistry true GA 1.18 1.21
CSIInlineVolume false Alpha 1.15 1.15
CSIInlineVolume true Beta 1.16 1.24
CSIInlineVolume true GA 1.25 1.26
CSIMigration false Alpha 1.14 1.16
CSIMigration true Beta 1.17 1.24
CSIMigration true GA 1.25 1.26
CSIMigrationAWS false Alpha 1.14 1.16
CSIMigrationAWS false Beta 1.17 1.22
CSIMigrationAWS true Beta 1.23 1.24
CSIMigrationAWS true GA 1.25 1.26
CSIMigrationAWSComplete false Alpha 1.17 1.20
CSIMigrationAWSComplete Deprecated 1.21 1.21
CSIMigrationAzureDisk false Alpha 1.15 1.18
CSIMigrationAzureDisk false Beta 1.19 1.22
CSIMigrationAzureDisk true Beta 1.23 1.23
CSIMigrationAzureDisk true GA 1.24 1.26
CSIMigrationAzureDiskComplete false Alpha 1.17 1.20
CSIMigrationAzureDiskComplete Deprecated 1.21 1.21
CSIMigrationAzureFileComplete false Alpha 1.17 1.20
CSIMigrationAzureFileComplete Deprecated 1.21 1.21
CSIMigrationGCE false Alpha 1.14 1.16
CSIMigrationGCE false Beta 1.17 1.22
CSIMigrationGCE true Beta 1.23 1.24
CSIMigrationGCE true GA 1.25 1.27
CSIMigrationGCEComplete false Alpha 1.17 1.20
CSIMigrationGCEComplete Deprecated 1.21 1.21
CSIMigrationOpenStack false Alpha 1.14 1.17
CSIMigrationOpenStack true Beta 1.18 1.23
CSIMigrationOpenStack true GA 1.24 1.25
CSIMigrationOpenStackComplete false Alpha 1.17 1.20
CSIMigrationOpenStackComplete Deprecated 1.21 1.21
CSIMigrationvSphere false Alpha 1.18 1.18
CSIMigrationvSphere false Beta 1.19 1.24
CSIMigrationvSphere true Beta 1.25 1.25
CSIMigrationvSphere true GA 1.26 1.28
CSIMigrationvSphereComplete false Beta 1.19 1.21
CSIMigrationvSphereComplete Deprecated 1.22 1.22
CSINodeInfo false Alpha 1.12 1.13
CSINodeInfo true Beta 1.14 1.16
CSINodeInfo true GA 1.17 1.22
CSIPersistentVolume false Alpha 1.9 1.9
CSIPersistentVolume true Beta 1.10 1.12
CSIPersistentVolume true GA 1.13 1.16
CSIServiceAccountToken false Alpha 1.20 1.20
CSIServiceAccountToken true Beta 1.21 1.21
CSIServiceAccountToken true GA 1.22 1.24
CSIStorageCapacity false Alpha 1.19 1.20
CSIStorageCapacity true Beta 1.21 1.23
CSIStorageCapacity true GA 1.24 1.27
CSIVolumeFSGroupPolicy false Alpha 1.19 1.19
CSIVolumeFSGroupPolicy true Beta 1.20 1.22
CSIVolumeFSGroupPolicy true GA 1.23 1.25
CSRDuration true Beta 1.22 1.23
CSRDuration true GA 1.24 1.25
CustomPodDNS false Alpha 1.9 1.9
CustomPodDNS true Beta 1.10 1.13
CustomPodDNS true GA 1.14 1.16
CustomResourceDefaulting false Alpha 1.15 1.15
CustomResourceDefaulting true Beta 1.16 1.16
CustomResourceDefaulting true GA 1.17 1.18
CustomResourcePublishOpenAPI false Alpha 1.14 1.14
CustomResourcePublishOpenAPI true Beta 1.15 1.15
CustomResourcePublishOpenAPI true GA 1.16 1.18
CustomResourceSubresources false Alpha 1.10 1.10
CustomResourceSubresources true Beta 1.11 1.15
CustomResourceSubresources true GA 1.16 1.18
CustomResourceValidation false Alpha 1.8 1.8
CustomResourceValidation true Beta 1.9 1.15
CustomResourceValidation true GA 1.16 1.18
CustomResourceWebhookConversion false Alpha 1.13 1.14
CustomResourceWebhookConversion true Beta 1.15 1.15
CustomResourceWebhookConversion true GA 1.16 1.18
DaemonSetUpdateSurge false Alpha 1.21 1.21
DaemonSetUpdateSurge true Beta 1.22 1.24
DaemonSetUpdateSurge true GA 1.25 1.28
DefaultPodTopologySpread false Alpha 1.19 1.19
DefaultPodTopologySpread true Beta 1.20 1.23
DefaultPodTopologySpread true GA 1.24 1.25
DelegateFSGroupToCSIDriver false Alpha 1.22 1.22
DelegateFSGroupToCSIDriver true Beta 1.23 1.25
DelegateFSGroupToCSIDriver true GA 1.26 1.27
DevicePlugins false Alpha 1.8 1.9
DevicePlugins true Beta 1.10 1.25
DevicePlugins true GA 1.26 1.27
DisableAcceleratorUsageMetrics false Alpha 1.19 1.19
DisableAcceleratorUsageMetrics true Beta 1.20 1.24
DisableAcceleratorUsageMetrics true GA 1.25 1.27
DownwardAPIHugePages false Alpha 1.20 1.20
DownwardAPIHugePages false Beta 1.21 1.21
DownwardAPIHugePages true Beta 1.22 1.26
DownwardAPIHugePages true GA 1.27 1.28
DryRun false Alpha 1.12 1.12
DryRun true Beta 1.13 1.18
DryRun true GA 1.19 1.27
DynamicAuditing false Alpha 1.13 1.18
DynamicAuditing Deprecated 1.19 1.19
DynamicKubeletConfig false Alpha 1.4 1.10
DynamicKubeletConfig true Beta 1.11 1.21
DynamicKubeletConfig false Deprecated 1.22 1.25
DynamicProvisioningScheduling false Alpha 1.11 1.11
DynamicProvisioningScheduling Deprecated 1.12
DynamicVolumeProvisioning true Alpha 1.3 1.7
DynamicVolumeProvisioning true GA 1.8 1.12
EnableAggregatedDiscoveryTimeout true Deprecated 1.16 1.17
EnableEquivalenceClassCache false Alpha 1.8 1.12
EnableEquivalenceClassCache Deprecated 1.13 1.23
EndpointSlice false Alpha 1.16 1.16
EndpointSlice false Beta 1.17 1.17
EndpointSlice true Beta 1.18 1.20
EndpointSlice true GA 1.21 1.24
EndpointSliceNodeName false Alpha 1.20 1.20
EndpointSliceNodeName true GA 1.21 1.24
EndpointSliceProxying false Alpha 1.18 1.18
EndpointSliceProxying true Beta 1.19 1.21
EndpointSliceProxying true GA 1.22 1.24
EndpointSliceTerminatingCondition false Alpha 1.20 1.21
EndpointSliceTerminatingCondition true Beta 1.22 1.25
EndpointSliceTerminatingCondition true GA 1.26 1.27
EphemeralContainers false Alpha 1.16 1.22
EphemeralContainers true Beta 1.23 1.24
EphemeralContainers true GA 1.25 1.26
EvenPodsSpread false Alpha 1.16 1.17
EvenPodsSpread true Beta 1.18 1.18
EvenPodsSpread true GA 1.19 1.21
ExpandCSIVolumes false Alpha 1.14 1.15
ExpandCSIVolumes true Beta 1.16 1.23
ExpandCSIVolumes true GA 1.24 1.26
ExpandInUsePersistentVolumes false Alpha 1.11 1.14
ExpandInUsePersistentVolumes true Beta 1.15 1.23
ExpandInUsePersistentVolumes true GA 1.24 1.26
ExpandPersistentVolumes false Alpha 1.8 1.10
ExpandPersistentVolumes true Beta 1.11 1.23
ExpandPersistentVolumes true GA 1.24 1.26
ExperimentalCriticalPodAnnotation false Alpha 1.5 1.12
ExperimentalCriticalPodAnnotation false Deprecated 1.13 1.16
ExternalPolicyForExternalIP true GA 1.18 1.22
GCERegionalPersistentDisk true Beta 1.10 1.12
GCERegionalPersistentDisk true GA 1.13 1.16
GenericEphemeralVolume false Alpha 1.19 1.20
GenericEphemeralVolume true Beta 1.21 1.22
GenericEphemeralVolume true GA 1.23 1.24
GRPCContainerProbe false Alpha 1.23 1.23
GRPCContainerProbe true Beta 1.24 1.26
GRPCContainerProbe true GA 1.27 1.28
HugePages false Alpha 1.8 1.9
HugePages true Beta 1.10 1.13
HugePages true GA 1.14 1.16
HugePageStorageMediumSize false Alpha 1.18 1.18
HugePageStorageMediumSize true Beta 1.19 1.21
HugePageStorageMediumSize true GA 1.22 1.24
HyperVContainer false Alpha 1.10 1.19
HyperVContainer false Deprecated 1.20 1.20
IdentifyPodOS false Alpha 1.23 1.23
IdentifyPodOS true Beta 1.24 1.24
IdentifyPodOS true GA 1.25 1.26
ImmutableEphemeralVolumes false Alpha 1.18 1.18
ImmutableEphemeralVolumes true Beta 1.19 1.20
ImmutableEphemeralVolumes true GA 1.21 1.24
IndexedJob false Alpha 1.21 1.21
IndexedJob true Beta 1.22 1.23
IndexedJob true GA 1.24 1.25
IngressClassNamespacedParams false Alpha 1.21 1.21
IngressClassNamespacedParams true Beta 1.22 1.22
IngressClassNamespacedParams true GA 1.23 1.24
Initializers false Alpha 1.7 1.13
Initializers Deprecated 1.14 1.14
IPv6DualStack false Alpha 1.15 1.20
IPv6DualStack true Beta 1.21 1.22
IPv6DualStack true GA 1.23 1.24
JobMutableNodeSchedulingDirectives true Beta 1.23 1.26
JobMutableNodeSchedulingDirectives true GA 1.27 1.28
JobTrackingWithFinalizers false Alpha 1.22 1.22
JobTrackingWithFinalizers false Beta 1.23 1.24
JobTrackingWithFinalizers true Beta 1.25 1.25
JobTrackingWithFinalizers true GA 1.26 1.28
KubeletConfigFile false Alpha 1.8 1.9
KubeletConfigFile Deprecated 1.10 1.10
KubeletCredentialProviders false Alpha 1.20 1.23
KubeletCredentialProviders true Beta 1.24 1.25
KubeletCredentialProviders true GA 1.26 1.28
KubeletPluginsWatcher false Alpha 1.11 1.11
KubeletPluginsWatcher true Beta 1.12 1.12
KubeletPluginsWatcher true GA 1.13 1.16
LegacyNodeRoleBehavior false Alpha 1.16 1.18
LegacyNodeRoleBehavior true Beta 1.19 1.20
LegacyNodeRoleBehavior false GA 1.21 1.22
LegacyServiceAccountTokenNoAutoGeneration true Beta 1.24 1.25
LegacyServiceAccountTokenNoAutoGeneration true GA 1.26 1.28
LocalStorageCapacityIsolation false Alpha 1.7 1.9
LocalStorageCapacityIsolation true Beta 1.10 1.24
LocalStorageCapacityIsolation true GA 1.25 1.26
MixedProtocolLBService false Alpha 1.20 1.23
MixedProtocolLBService true Beta 1.24 1.25
MixedProtocolLBService true GA 1.26 1.27
MountContainers false Alpha 1.9 1.16
MountContainers false Deprecated 1.17 1.17
MountPropagation false Alpha 1.8 1.9
MountPropagation true Beta 1.10 1.11
MountPropagation true GA 1.12 1.14
MultiCIDRRangeAllocator false Alpha 1.25 1.28
NamespaceDefaultLabelName true Beta 1.21 1.21
NamespaceDefaultLabelName true GA 1.22 1.23
NetworkPolicyEndPort false Alpha 1.21 1.21
NetworkPolicyEndPort true Beta 1.22 1.24
NetworkPolicyEndPort true GA 1.25 1.26
NetworkPolicyStatus false Alpha 1.24 1.27
NodeDisruptionExclusion false Alpha 1.16 1.18
NodeDisruptionExclusion true Beta 1.19 1.20
NodeDisruptionExclusion true GA 1.21 1.22
NodeLease false Alpha 1.12 1.13
NodeLease true Beta 1.14 1.16
NodeLease true GA 1.17 1.23
NonPreemptingPriority false Alpha 1.15 1.18
NonPreemptingPriority true Beta 1.19 1.23
NonPreemptingPriority true GA 1.24 1.25
OpenAPIV3 false Alpha 1.23 1.23
OpenAPIV3 true Beta 1.24 1.26
OpenAPIV3 true GA 1.27 1.28
PersistentLocalVolumes false Alpha 1.7 1.9
PersistentLocalVolumes true Beta 1.10 1.13
PersistentLocalVolumes true GA 1.14 1.16
PodAffinityNamespaceSelector false Alpha 1.21 1.21
PodAffinityNamespaceSelector true Beta 1.22 1.23
PodAffinityNamespaceSelector true GA 1.24 1.25
PodDisruptionBudget false Alpha 1.3 1.4
PodDisruptionBudget true Beta 1.5 1.20
PodDisruptionBudget true GA 1.21 1.25
PodHasNetworkCondition false Alpha 1.25 1.27
PodOverhead false Alpha 1.16 1.17
PodOverhead true Beta 1.18 1.23
PodOverhead true GA 1.24 1.25
PodPriority false Alpha 1.8 1.10
PodPriority true Beta 1.11 1.13
PodPriority true GA 1.14 1.18
PodReadinessGates false Alpha 1.11 1.11
PodReadinessGates true Beta 1.12 1.13
PodReadinessGates true GA 1.14 1.16
PodSecurity false Alpha 1.22 1.22
PodSecurity true Beta 1.23 1.24
PodSecurity true GA 1.25 1.27
PodShareProcessNamespace false Alpha 1.10 1.11
PodShareProcessNamespace true Beta 1.12 1.16
PodShareProcessNamespace true GA 1.17 1.19
PreferNominatedNode false Alpha 1.21 1.21
PreferNominatedNode true Beta 1.22 1.23
PreferNominatedNode true GA 1.24 1.25
ProbeTerminationGracePeriod false Alpha 1.21 1.21
ProbeTerminationGracePeriod false Beta 1.22 1.24
ProbeTerminationGracePeriod true Beta 1.25 1.27
ProbeTerminationGracePeriod true GA 1.28 1.28
PVCProtection false Alpha 1.9 1.9
PVCProtection Deprecated 1.10 1.10
ReadOnlyAPIDataVolumes true Beta 1.8 1.9
ReadOnlyAPIDataVolumes GA 1.10 1.10
RequestManagement false Alpha 1.15 1.16
RequestManagement Deprecated 1.17 1.17
ResourceLimitsPriorityFunction false Alpha 1.9 1.18
ResourceLimitsPriorityFunction Deprecated 1.19 1.19
ResourceQuotaScopeSelectors false Alpha 1.11 1.11
ResourceQuotaScopeSelectors true Beta 1.12 1.16
ResourceQuotaScopeSelectors true GA 1.17 1.18
ScheduleDaemonSetPods false Alpha 1.11 1.11
ScheduleDaemonSetPods true Beta 1.12 1.16
ScheduleDaemonSetPods true GA 1.17 1.18
SCTPSupport false Alpha 1.12 1.18
SCTPSupport true Beta 1.19 1.19
SCTPSupport true GA 1.20 1.22
SeccompDefault false Alpha 1.22 1.24
SeccompDefault true Beta 1.25 1.26
SeccompDefault true GA 1.27 1.28
SelectorIndex false Alpha 1.18 1.18
SelectorIndex true Beta 1.19 1.19
SelectorIndex true GA 1.20 1.25
ServiceAccountIssuerDiscovery false Alpha 1.18 1.19
ServiceAccountIssuerDiscovery true Beta 1.20 1.20
ServiceAccountIssuerDiscovery true GA 1.21 1.23
ServiceAppProtocol false Alpha 1.18 1.18
ServiceAppProtocol true Beta 1.19 1.19
ServiceAppProtocol true GA 1.20 1.22
ServiceInternalTrafficPolicy false Alpha 1.21 1.21
ServiceInternalTrafficPolicy true Beta 1.22 1.25
ServiceInternalTrafficPolicy true GA 1.26 1.27
ServiceIPStaticSubrange false Alpha 1.24 1.24
ServiceIPStaticSubrange true Beta 1.25 1.25
ServiceIPStaticSubrange true GA 1.26 1.27
ServiceLBNodePortControl false Alpha 1.20 1.21
ServiceLBNodePortControl true Beta 1.22 1.23
ServiceLBNodePortControl true GA 1.24 1.25
ServiceLoadBalancerClass false Alpha 1.21 1.21
ServiceLoadBalancerClass true Beta 1.22 1.23
ServiceLoadBalancerClass true GA 1.24 1.25
ServiceLoadBalancerFinalizer false Alpha 1.15 1.15
ServiceLoadBalancerFinalizer true Beta 1.16 1.16
ServiceLoadBalancerFinalizer true GA 1.17 1.20
ServiceNodeExclusion false Alpha 1.8 1.18
ServiceNodeExclusion true Beta 1.19 1.20
ServiceNodeExclusion true GA 1.21 1.22
ServiceTopology false Alpha 1.17 1.19
ServiceTopology false Deprecated 1.20 1.22
SetHostnameAsFQDN false Alpha 1.19 1.19
SetHostnameAsFQDN true Beta 1.20 1.21
SetHostnameAsFQDN true GA 1.22 1.24
StartupProbe false Alpha 1.16 1.17
StartupProbe true Beta 1.18 1.19
StartupProbe true GA 1.20 1.23
StatefulSetMinReadySeconds false Alpha 1.22 1.22
StatefulSetMinReadySeconds true Beta 1.23 1.24
StatefulSetMinReadySeconds true GA 1.25 1.26
StorageObjectInUseProtection true Beta 1.10 1.10
StorageObjectInUseProtection true GA 1.11 1.24
StreamingProxyRedirects false Beta 1.5 1.5
StreamingProxyRedirects true Beta 1.6 1.17
StreamingProxyRedirects true Deprecated 1.18 1.21
StreamingProxyRedirects false Deprecated 1.22 1.24
SupportIPVSProxyMode false Alpha 1.8 1.8
SupportIPVSProxyMode false Beta 1.9 1.9
SupportIPVSProxyMode true Beta 1.10 1.10
SupportIPVSProxyMode true GA 1.11 1.20
SupportNodePidsLimit false Alpha 1.14 1.14
SupportNodePidsLimit true Beta 1.15 1.19
SupportNodePidsLimit true GA 1.20 1.23
SupportPodPidsLimit false Alpha 1.10 1.13
SupportPodPidsLimit true Beta 1.14 1.19
SupportPodPidsLimit true GA 1.20 1.23
SuspendJob false Alpha 1.21 1.21
SuspendJob true Beta 1.22 1.23
SuspendJob true GA 1.24 1.25
Sysctls true Beta 1.11 1.20
Sysctls true GA 1.21 1.22
TaintBasedEvictions false Alpha 1.6 1.12
TaintBasedEvictions true Beta 1.13 1.17
TaintBasedEvictions true GA 1.18 1.20
TaintNodesByCondition false Alpha 1.8 1.11
TaintNodesByCondition true Beta 1.12 1.16
TaintNodesByCondition true GA 1.17 1.18
TokenRequest false Alpha 1.10 1.11
TokenRequest true Beta 1.12 1.19
TokenRequest true GA 1.20 1.21
TokenRequestProjection false Alpha 1.11 1.11
TokenRequestProjection true Beta 1.12 1.19
TokenRequestProjection true GA 1.20 1.21
TopologyManager false Alpha 1.16 1.17
TopologyManager true Beta 1.18 1.26
TopologyManager true GA 1.27 1.28
TTLAfterFinished false Alpha 1.12 1.20
TTLAfterFinished true Beta 1.21 1.22
TTLAfterFinished true GA 1.23 1.24
UserNamespacesStatelessPodsSupport false Alpha 1.25 1.27
ValidateProxyRedirects false Alpha 1.12 1.13
ValidateProxyRedirects true Beta 1.14 1.21
ValidateProxyRedirects true Deprecated 1.22 1.24
VolumePVCDataSource false Alpha 1.15 1.15
VolumePVCDataSource true Beta 1.16 1.17
VolumePVCDataSource true GA 1.18 1.21
VolumeScheduling false Alpha 1.9 1.9
VolumeScheduling true Beta 1.10 1.12
VolumeScheduling true GA 1.13 1.16
VolumeSnapshotDataSource false Alpha 1.12 1.16
VolumeSnapshotDataSource true Beta 1.17 1.19
VolumeSnapshotDataSource true GA 1.20 1.22
VolumeSubpath true GA 1.10 1.24
VolumeSubpathEnvExpansion false Alpha 1.14 1.14
VolumeSubpathEnvExpansion true Beta 1.15 1.16
VolumeSubpathEnvExpansion true GA 1.17 1.24
WarningHeaders true Beta 1.19 1.21
WarningHeaders true GA 1.22 1.24
WindowsEndpointSliceProxying false Alpha 1.19 1.20
WindowsEndpointSliceProxying true Beta 1.21 1.21
WindowsEndpointSliceProxying true GA 1.22 1.24
WindowsGMSA false Alpha 1.14 1.15
WindowsGMSA true Beta 1.16 1.17
WindowsGMSA true GA 1.18 1.20
WindowsHostProcessContainers false Alpha 1.22 1.22
WindowsHostProcessContainers true Beta 1.23 1.25
WindowsHostProcessContainers true GA 1.26 1.27
WindowsRunAsUserName false Alpha 1.16 1.16
WindowsRunAsUserName true Beta 1.17 1.17
WindowsRunAsUserName true GA 1.18 1.20

已移除的特性门控的说明

  • Accelerators:

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

  • AdvancedAuditing:

    启用高级审计

  • 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 标志来关闭扩展令牌。

    更多详情请参见绑定服务账号令牌

  • ConfigurableFSGroupPolicy:

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

  • ControllerManagerLeaderMigration:

    kube-controller-managercloud-controller-manager 启用 Leader 迁移,它允许集群管理者在没有停机的高可用集群环境下,实时把 kube-controller-manager 迁移到外部的 controller-manager (例如 cloud-controller-manager) 中。

  • CRIContainerLogRotation:

    为 CRI 容器运行时启用容器日志轮换。日志文件的默认最大大小为 10MB, 缺省情况下,一个容器允许的最大日志文件数为 5。这些值可以在 kubelet 配置中配置。 更多细节请参见日志架构

  • CronJobControllerV2:

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

  • CronJobTimeZone:

    允许在 CronJobs 中使用 timeZone 可选字段。

  • CSIBlockVolume:

    启用外部 CSI 卷驱动程序用于支持块存储。有关更多详细信息,请参见 csi 原始块卷支持

  • CSIDriverRegistry:

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

  • CSIInlineVolume:

    为 Pod 启用 CSI 内联卷支持。

  • CSIMigration:

    启用封装和转换逻辑,将卷操作从内嵌插件路由到对应的预安装 CSI 插件。

  • CSIMigrationAWS:

    启用封装和转换逻辑,将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 如果节点禁用了此特性门控或者未安装和配置 EBS CSI 插件,支持回退到内嵌 EBS 插件来执行卷挂载操作。 不支持回退到这些插件来执行卷制备操作,因为需要安装并配置 CSI 插件

  • CSIMigrationAWSComplete:

    停止在 kubelet 和卷控制器中注册 EBS 内嵌插件, 并启用封装和转换逻辑,将卷操作从 AWS-EBS 内嵌插件路由到 EBS CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAWS 特性标志,并在集群中的所有节点上安装和配置 EBS CSI 插件。该特性标志已被废弃,取而代之的是 InTreePluginAWSUnregister, 后者会阻止注册 EBS 内嵌插件。

  • CSIMigrationAzureDisk:

    启用封装和转换逻辑,将卷操作从 AzureDisk 内嵌插件路由到 Azure 磁盘 CSI 插件。 对于禁用了此特性的节点或者没有安装并配置 AzureDisk CSI 插件的节点, 支持回退到内嵌(in-tree)AzureDisk 插件来执行磁盘挂载操作。 不支持回退到内嵌插件来执行磁盘制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。

  • CSIMigrationAzureDiskComplete:

    停止在 kubelet 和卷控制器中注册 Azure 磁盘内嵌插件, 并启用封装和转换逻辑,将卷操作从 Azure 磁盘内嵌插件路由到 AzureDisk CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureDisk 特性标志, 并在集群中的所有节点上安装和配置 AzureDisk CSI 插件。该特性标志已被废弃, 取而代之的是能防止注册内嵌 AzureDisk 插件的 InTreePluginAzureDiskUnregister 特性标志。

  • CSIMigrationAzureFileComplete:

    停止在 kubelet 和卷控制器中注册 Azure-File 内嵌插件, 并启用封装和转换逻辑,将卷操作从 Azure-File 内嵌插件路由到 AzureFile CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationAzureFile 特性标志, 并在集群中的所有节点上安装和配置 AzureFile CSI 插件。该特性标志已被废弃, 取而代之的是能防止注册内嵌 AzureDisk 插件的 InTreePluginAzureFileUnregister 特性标志。

  • CSIMigrationGCE:

    启用封装和转换逻辑,将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。 对于禁用了此特性的节点或者没有安装并配置 PD CSI 插件的节点, 支持回退到内嵌GCE 插件来执行卷挂载操作。 不支持回退到内嵌插件来执行卷制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。

  • CSIMigrationGCEComplete:

    停止在 kubelet 和卷控制器中注册 GCE-PD 内嵌插件, 并启用封装和转换逻辑,将卷操作从 GCE-PD 内嵌插件路由到 PD CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationGCE 特性标志,并在集群中的所有节点上安装和配置 PD CSI 插件。该特性标志已被废弃,取而代之的是能防止注册内嵌 GCE PD 插件的 InTreePluginGCEUnregister 特性标志。

  • CSIMigrationOpenStack:

    启用封装和转换逻辑,将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 对于禁用了此特性的节点或者没有安装并配置 Cinder CSI 插件的节点, 支持回退到内嵌 Cinder 插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 此特性需要启用 CSIMigration 特性标志。

  • CSIMigrationOpenStackComplete:

    停止在 kubelet 和卷控制器中注册 Cinder 内嵌插件, 并启用封装和转换逻辑,将卷操作从 Cinder 内嵌插件路由到 Cinder CSI 插件。 这需要启用 CSIMigration 和 CSIMigrationOpenStack 特性标志, 并在集群中的所有节点上安装和配置 Cinder CSI 插件。 该特性标志已被弃用,取而代之的是能防止注册内嵌 OpenStack Cinder 插件的 InTreePluginOpenStackUnregister 特性标志。

  • CSIMigrationvSphere:

    启用封装和转换逻辑,将卷操作从 vSphere 内嵌插件路由到 vSphere CSI 插件。 如果节点禁用了此特性门控或者未安装和配置 vSphere CSI 插件, 则支持回退到 vSphere 内嵌插件来执行挂载操作。 不支持回退到内嵌插件来执行制备操作,因为对应的 CSI 插件必须已安装且正确配置。 这需要启用 CSIMigration 特性标志。

  • 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)

  • CSIStorageCapacity:

    启用 CSI 驱动发布存储容量信息, 以及 Kubernetes 调度器在调度 Pods 时使用该信息。 详情见存储容量。 更多详情请参阅 csi 卷类型文档。

  • CSIVolumeFSGroupPolicy:

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

  • CSRDuration:

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

  • CustomPodDNS:

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

  • CustomResourceDefaulting:

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

  • CustomResourcePublishOpenAPI:

    启用 CustomResourceDefinition OpenAPI 规范的发布。

  • CustomResourceSubresources:

    对于用 CustomResourceDefinition 创建的资源启用其 /status/scale 子资源。

  • CustomResourceValidation:

    对于用 CustomResourceDefinition 创建的资源启用基于模式的验证。

  • CustomResourceWebhookConversion:

    对于用 CustomResourceDefinition 创建的资源启用基于 Webhook 的转换。

  • DaemonSetUpdateSurge:

    使 DaemonSet 工作负载在每个节点的更新期间保持可用性。 参阅对 DaemonSet 执行滚动更新

  • DefaultPodTopologySpread:

    启用 PodTopologySpread 调度插件以执行 默认分布

  • DelegateFSGroupToCSIDriver:

    如果 CSI 驱动程序支持,则通过 NodeStageVolume 和 NodePublishVolume CSI 调用传递 fsGroup, 委托驱动来应用 Pod 的 securityContext 中的 fsGroup

  • DevicePlugins:

    在节点上启用基于设备插件的资源制备。

  • DisableAcceleratorUsageMetrics:

    禁用 kubelet 收集的加速器指标

  • DownwardAPIHugePages:

    允许在下行(Downward)API 中使用巨页信息。

  • DryRun:

    启用在服务器端对请求进行 试运行(Dry Run), 以便在不提交的情况下测试验证、合并和变更。

  • DynamicAuditing:

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

  • DynamicKubeletConfig:

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

  • DynamicProvisioningScheduling:

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

  • DynamicVolumeProvisioning:

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

  • EnableAggregatedDiscoveryTimeout:

    对聚合的发现调用启用五秒钟超时设置。

  • EnableEquivalenceClassCache:

    调度 Pod 时,使调度器缓存节点的等效项。

  • EndpointSlice:

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

  • EndpointSliceNodeName:

    启用 EndpointSlice 的 nodeName 字段。

  • EndpointSliceProxying:

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

  • EndpointSliceTerminatingCondition:

    启用 EndpointSlice 的 terminatingserving 状况字段。

  • EphemeralContainers:

    启用添加临时容器到正在运行的 Pod 的特性。

  • EvenPodsSpread:

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

  • ExpandCSIVolumes:

    启用 CSI 卷的扩展。

  • ExpandInUsePersistentVolumes:

    启用扩充使用中的 PVC 的大小。 请查阅调整使用中的 PersistentVolumeClaim 的大小

  • ExpandPersistentVolumes:

    允许扩展持久卷。 请查阅扩展持久卷申领

  • ExperimentalCriticalPodAnnotation:

    启用将特定 Pod 注解为 关键负载(Critical) 的方式, 用于确保其被调度。 从 v1.13 开始已弃用此特性,转而使用 Pod 优先级和抢占功能。

  • ExternalPolicyForExternalIP:

    修复一个缺陷,该缺陷会导致 ExternalTrafficPolicy 不会应用到 Service 的外部 IP。

  • GCERegionalPersistentDisk:

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

  • GenericEphemeralVolume:

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

  • GRPCContainerProbe:

    为活跃态、就绪态和启动探针启用 gRPC 探针。 参阅配置活跃态、就绪态和启动探针

  • HugePages:

    启用预分配的巨页资源的分配和使用。

  • HugePageStorageMediumSize:

    启用对多种大小的预分配巨页资源的支持。

  • HyperVContainer:

    为 Windows 容器启用 Hyper-V 隔离

  • IdentifyPodOS:

    允许设置 Pod 的 os 字段。这有助于在 API 服务器准入时确定性地辨识 Pod 的 OS。 在 Kubernetes 1.30 中,pod.spec.os.name 的允许值为 windowslinux

  • ImmutableEphemeralVolumes:

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

  • IndexedJob:

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

  • IngressClassNamespacedParams:

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

  • Initializers:

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

  • IPv6DualStack:

    启用双协议栈以支持 IPv6。

  • JobMutableNodeSchedulingDirectives:

    允许更新在 Job 的 Pod 模板中的节点调度指令。

  • JobTrackingWithFinalizers:

    启用跟踪 Job 完成情况,而非总是从集群剩余 Pod 获取信息来判断完成情况。 Job 控制器使用 Pod 终结器(finalizers)和 Job 状态中的一个字段 来跟踪已完成的 Pod 以计算完成度。

  • KubeletConfigFile:

    允许从使用配置文件指定的文件中加载 kubelet 配置。 详情参见通过配置文件设置 kubelet 参数

  • KubeletCredentialProviders:

    启用 kubelet exec 凭据提供程序以获取镜像拉取凭据。

  • KubeletPluginsWatcher:

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

  • LegacyNodeRoleBehavior:

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

  • LegacyServiceAccountTokenNoAutoGeneration:

    停止基于 Secret 自动生成服务账号令牌

  • LocalStorageCapacityIsolation:

    允许使用本地临时存储以及 emptyDir 卷sizeLimit 属性。

  • MixedProtocolLBService:

    允许在同一 LoadBalancer 类型的 Service 实例中使用不同的协议。

  • MountContainers:

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

  • MountPropagation:

    允许将一个容器上挂载的卷共享到其他容器或 Pod。 更多详细信息,请参见挂载传播

  • MultiCIDRRangeAllocator:

    启用 MultiCIDR 网段分配机制。

  • NamespaceDefaultLabelName:

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

  • NetworkPolicyEndPort:

    允许你在 NetworkPolicy 规则中将端口设置为一个端口号范围。

  • NetworkPolicyStatus:

    为 NetworkPolicy 对象启用 status 子资源。

  • NodeDisruptionExclusion:

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

  • NodeLease:

    启用新的 Lease API 以报告节点心跳,节点心跳可用作节点运行状况信号。

  • NonPreemptingPriority:

    为 PriorityClass 和 Pod 启用 preemptionPolicy 字段。

  • OpenAPIV3:

    允许 API 服务器发布 OpenAPI V3。

  • PersistentLocalVolumes:

    允许在 Pod 中使用 local 卷类型。 如果请求 local 卷,则必须指定 Pod 亲和性属性。

  • PodAffinityNamespaceSelector:

    启用 Pod 亲和性名字空间选择算符CrossNamespacePodAffinity 资源配额特性。

  • PodDisruptionBudget:

    启用 PodDisruptionBudget 特性。

  • PodHasNetworkCondition:

    使得 kubelet 能够对 Pod 标记 PodHasNetwork 状况。 此特性在 1.28 中重命名为 PodReadyToStartContainersCondition

  • PodOverhead:

    启用 PodOverhead 特性以计算 Pod 开销。

  • PodPriority:

    允许根据优先级取消调度和抢占 Pod。

  • PodReadinessGates:

    允许设置 podReadinessGate 字段以扩展 Pod 就绪状态评估。更多细节请参见 Pod 就绪状态判别

  • PodSecurity:

    启用 PodSecurity 准入插件。

  • PodShareProcessNamespace:

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

  • PreferNominatedNode:

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

  • ProbeTerminationGracePeriod:

    在 Pod 上启用设置探针级别 terminationGracePeriodSeconds。 更多细节请参见增强提案

  • PVCProtection:

    启用后,可预防仍然有 Pod 正使用的 PersistentVolumeClaim (PVC) 被删除。

  • ReadOnlyAPIDataVolumes:

    请参阅以只读方式挂载的 configMapsecretdownwardAPIprojected 卷。

    自 Kubernetes v1.10 起,这些卷类型始终是只读的,无法选择其它模式。

  • RequestManagement:

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

  • ResourceLimitsPriorityFunction:

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

  • ResourceQuotaScopeSelectors:

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

  • ScheduleDaemonSetPods:

    启用 DaemonSet Pod 由默认调度器而不是 DaemonSet 控制器进行调度。

  • SCTPSupport:

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

  • SeccompDefault:

    启用 RuntimeDefault 作为所有工作负载的默认 seccomp 配置文件。 此 seccomp 配置文件在 Pod 和/或 Container 的 securityContext 中被指定。

  • SelectorIndex:

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

  • ServiceAccountIssuerDiscovery:

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

  • ServiceAppProtocol:

    为 Service 和 Endpoints 启用 appProtocol 字段。

  • ServiceInternalTrafficPolicy:

    为 Service 启用 internalTrafficPolicy 字段。

  • ServiceIPStaticSubrange:

    启用 Service 的 ClusterIP 分配策略,从而细分 ClusterIP 范围。 动态分配的 ClusterIP 地址将优先从较高范围分配, 以允许用户从较低范围分配静态 ClusterIP,进而降低发生冲突的风险。 更多详细信息请参阅避免冲突

  • ServiceLBNodePortControl:

    为 Service 启用 allocateLoadBalancerNodePorts 字段。

  • ServiceLoadBalancerClass:

    为 Service 启用 loadBalancerClass 字段。 有关更多信息,请参见设置负载均衡器实现的类别

  • ServiceLoadBalancerFinalizer:

    为 Service 负载均衡器启用终结器(finalizers)保护。

  • ServiceNodeExclusion:

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

  • ServiceTopology:

    允许 Service 基于集群的节点拓扑进行流量路由。

  • SetHostnameAsFQDN:

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

  • StartupProbe:

    在 kubelet 中启用启动探针

  • StatefulSetMinReadySeconds:

    允许 StatefulSet 控制器遵守 minReadySeconds

  • StorageObjectInUseProtection:

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

  • StreamingProxyRedirects:

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

  • SupportIPVSProxyMode:

    启用使用 IPVS 提供集群内服务负载平衡。 详情参见服务代理

  • SupportNodePidsLimit:

    允许限制 Node 上的 PID 用量。 --system-reserved--kube-reserved 中的参数 pid=<数值> 可以分别用来设定为整个系统所预留的进程 ID 个数, 和为 Kubernetes 系统守护进程预留的进程 ID 个数。

  • SupportPodPidsLimit:

    允许限制 Pod 中的 PID 用量。

  • SuspendJob:

    启用对挂起和恢复 Job 的支持。详情参见 Job 文档

  • Sysctls:

    允许为每个 Pod 设置受命名空间约束的内核参数(sysctl)。详情参见 sysctl

  • TaintBasedEvictions:

    根据节点上的污点和 Pod 上的容忍度启用从节点驱逐 Pod 的特性。 更多细节参见污点和容忍度

  • TaintNodesByCondition:

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

  • TokenRequest:

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

  • TokenRequestProjection:

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

  • TopologyManager:

    启用一种机制来协调 Kubernetes 不同组件的细粒度硬件资源分配。 详见控制节点上的拓扑管理策略

  • TTLAfterFinished:

    允许 TTL 控制器在资源执行完毕后清理资源。

  • UserNamespacesStatelessPodsSupport:

    为无状态 Pod 启用用户命名空间支持。此特性在 Kubernetes v1.28 版本中被 UserNamespacesSupport 特性取代。

  • ValidateProxyRedirects:

    这个标志控制 API 服务器是否检查重定向仅指向相同主机。 仅在启用 StreamingProxyRedirects 标志时被使用。

  • VolumePVCDataSource:

    启用对将现有 PVC 设置为数据源的支持。

  • VolumeScheduling:

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

  • VolumeSnapshotDataSource:

    启用卷快照数据源支持。

  • VolumeSubpath:

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

  • VolumeSubpathEnvExpansion:

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

  • WarningHeaders:

    允许在 API 响应中发送警告头。

  • WindowsEndpointSliceProxying:

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

  • WindowsGMSA:

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

  • WindowsHostProcessContainers:

    启用对 Windows HostProcess 容器的支持。

  • WindowsRunAsUserName:

    启用在 Windows 容器中以非默认用户身份运行应用程序的支持。 详情请参见配置 RunAsUserName

3 - kubelet

简介

kubelet 是在每个节点上运行的主要 “节点代理”。它可以使用以下方式之一向 API 服务器注册:

  • 主机名(hostname);
  • 覆盖主机名的参数;
  • 特定于某云驱动的逻辑。

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

除了来自 API 服务器的 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:: 表示监听所有接口和 IP 地址族)。 (已弃用:应在 --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     默认值: AlwaysAllow
kubelet 服务器的鉴权模式。可选值包括:AlwaysAllow、Webhook。 Webhook 模式使用 SubjectAccessReview API 鉴权。 (已弃用:应在 --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 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--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.25 或更高版本中移除,以便于从 kubelet 中去除云驱动代码。
--cloud-provider string
云服务的提供者。设置为空字符串表示在没有云驱动的情况下运行, 设置为 'external' 表示使用外部云驱动。 如果设置了此标志,则云驱动负责确定节点的名称(参考云提供商文档以确定是否以及如何使用主机名)。
--cluster-dns strings
DNS 服务器的 IP 地址,以逗号分隔。此标志值用于 Pod 中设置了 “dnsPolicy: ClusterFirst” 时为容器提供 DNS 服务。
注意::列表中出现的所有 DNS 服务器必须包含相同的记录组, 否则集群中的名称解析可能无法正常工作。至于名称解析过程中会牵涉到哪些 DNS 服务器, 这一点无法保证。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--cluster-domain string
集群的域名。如果设置了此值,kubelet 除了将主机的搜索域配置到所有容器之外,还会为其 配置所搜这里指定的域名。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--config string
kubelet 将从此标志所指的文件中加载其初始配置。此路径可以是绝对路径,也可以是相对路径。 相对路径按 kubelet 的当前工作目录起计。省略此参数时 kubelet 会使用内置的默认配置值。 命令行参数会覆盖此文件中的配置。
--config-dir string     Default: ''
用于指定插件的目录路径,允许用户通过指定其他配置来覆盖默认值以及 `--config` 标志中指定的内容。
注意:设置 "KUBELET_CONFIG_DROPIN_DIR_ALPHA" 环境变量以指定目录。
--container-log-max-files int32     默认值:5
【警告:Beta 特性】设置容器的日志文件个数上限。此值必须大于等于 2。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--container-log-max-size string     默认值:10Mi
【警告:Beta 特性】设置容器日志文件在轮换生成新文件时之前的最大值(例如,10Mi)。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--container-runtime string     默认值:remote
要使用的容器运行时。目前支持 dockerremote (已弃用:将会在 1.27 版本中移除,因为合法值只有 “remote”)
--container-runtime-endpoint string     Default: "unix:///run/containerd/containerd.sock"
远程运行时服务的端点。目前支持 Linux 系统上的 UNIX 套接字和 Windows 系统上的 npipe 和 TCP 端点。例如: unix:///path/to/runtime.socknpipe:////./pipe/runtime。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--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
一组用于微调 CPU 管理器策略行为的 key=value 选项。如果未提供,保留默认行为。 (已弃用:应在 --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     默认值:100
事件记录的个数的突发峰值上限,在遵从 --event-qps 阈值约束的前提下 临时允许事件记录达到此数目。该数字必须大于等于 0。如果为 0,则使用默认突发值(100)。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--event-qps int32     默认值:50
QPS 用于限制事件创建的速率。该数字必须大于等于 0。如果为 0,则使用默认 QPS 值(50)。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-hard strings     默认值: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 strings
当某资源压力过大时,kubelet 将执行 Pod 驱逐操作。 此参数设置软性驱逐操作需要回收的资源的最小数量(例如:imagefs.available=2Gi)。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-pressure-transition-period duration     默认值:5m0s
kubelet 在驱逐压力状况解除之前的最长等待时间。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-soft strings
设置一组驱逐阈值(例如:memory.available<1.5Gi)。 如果在相应的宽限期内达到该阈值,则会触发 Pod 驱逐操作。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--eviction-soft-grace-period strings
设置一组驱逐宽限期(例如,memory.available=1m30s),对应于触发软性 Pod 驱逐操作之前软性驱逐阈值所需持续的时间长短。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--exit-on-lock-contention
设置为 true 表示当发生锁文件竞争时 kubelet 可以退出。
--experimental-allocatable-ignore-eviction     默认值:false
设置为 true 表示在计算节点可分配资源数量时忽略硬性逐出阈值设置。 参考 相关文档。 已弃用:将在 1.25 或更高版本中移除。
--experimental-mounter-path string     默认值:mount
[实验性特性] 卷挂载器(mounter)的可执行文件的路径。设置为空表示使用默认挂载器 mount。 已弃用:将在 1.24 或更高版本移除以支持 CSI。
--fail-swap-on     默认值:true
设置为 true 表示如果主机启用了交换分区,kubelet 将直接失败。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--feature-gates <一个由 “key=true/false” 组成的对偶>
用于 alpha 实验性特性的特性开关组,每个开关以 key=value 形式表示。当前可用开关包括:
APIResponseCompression=true|false (BETA - 默认值为 true)
APISelfSubjectReview=true|false (BETA - 默认值为 true)
APIServerIdentity=true|false (BETA - 默认值为 true)
APIServerTracing=true|false (BETA - 默认值为 true)
AdmissionWebhookMatchConditions=true|false (BETA - 默认值为 true)
AggregatedDiscoveryEndpoint=true|false (BETA - 默认值为 true)
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)
CRDValidationRatcheting=true|false (ALPHA - 默认值为 false)
CSIMigrationPortworx=true|false (BETA - 默认值为 false)
CSIVolumeHealth=true|false (ALPHA - 默认值为 false)
CloudControllerManagerWebhook=true|false (ALPHA - 默认值为 false)
CloudDualStackNodeIPs=true|false (BETA - 默认值为 true)
ClusterTrustBundle=true|false (ALPHA - 默认值为 false)
ClusterTrustBundleProjection=true|false (ALPHA - 默认值为 false)
ComponentSLIs=true|false (BETA - 默认值为 true)
ConsistentListFromCache=true|false (ALPHA - 默认值为 false)
ContainerCheckpoint=true|false (ALPHA - 默认值为 false)
ContextualLogging=true|false (ALPHA - 默认值为 false)
CronJobsScheduledAnnotation=true|false (BETA - 默认值为 true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值为 false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值为 false)
DevicePluginCDIDevices=true|false (BETA - 默认值为 true)
DisableCloudProviders=true|false (BETA - 默认值为 true)
DisableKubeletCloudCredentialProviders=true|false (BETA - 默认值为 true)
DisableNodeKubeProxyVersion=true|false (ALPHA - 默认值为 false)
DynamicResourceAllocation=true|false (ALPHA - 默认值为 false)
ElasticIndexedJob=true|false (BETA - 默认值为 true)
EventedPLEG=true|false (BETA - 默认值为 false)
GracefulNodeShutdown=true|false (BETA - 默认值为 true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值为 true)
HPAContainerMetrics=true|false (BETA - 默认值为 true)
HPAScaleToZero=true|false (ALPHA - 默认值为 false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值为 false)
ImageMaximumGCAge=true|false (ALPHA - 默认值为 false)
InPlacePodVerticalScaling=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)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值为 false)
JobBackoffLimitPerIndex=true|false (BETA - 默认值为 true)
JobPodFailurePolicy=true|false (BETA - 默认值为 true)
JobPodReplacementPolicy=true|false (BETA - 默认值为 true)
KubeProxyDrainingTerminatingNodes=true|false (ALPHA - 默认值为 false)
KubeletCgroupDriverFromCRI=true|false (ALPHA - 默认值为 false)
KubeletInUserNamespace=true|false (ALPHA - 默认值为 false)
KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认值为 false)
KubeletPodResourcesGet=true|false (ALPHA - 默认值为 false)
KubeletSeparateDiskGC=true|false (ALPHA - 默认值为 false)
KubeletPodResourcesGetAllocatable=true|false (BETA - 默认值为 true)
KubeletTracing=true|false (BETA - 默认值为 true)
LegacyServiceAccountTokenCleanUp=true|false (BETA - 默认值为 true)
LoadBalancerIPMode=true|false (ALPHA - 默认值为 false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值为 false)
LogarithmicScaleDown=true|false (BETA - 默认值为 true)
LoggingAlphaOptions=true|false (ALPHA - 默认值为 false)
LoggingBetaOptions=true|false (BETA - 默认值为 true)
MatchLabelKeysInPodAffinity=true|false (ALPHA - 默认值为 false)
MatchLabelKeysInPodTopologySpread=true|false (BETA - 默认值为 true)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值为 false)
MemoryManager=true|false (BETA - 默认值为 true)
MemoryQoS=true|false (ALPHA - 默认值为 false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值为 true)
MultiCIDRServiceAllocator=true|false (ALPHA - 默认值为 false)
NFTablesProxyMode=true|false (ALPHA - 默认值为 false)
NewVolumeManagerReconstruction=true|false (BETA - 默认值为 true)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值为 true)
NodeLogQuery=true|false (ALPHA - 默认值为 false)
NodeSwap=true|false (BETA - 默认值为 false)
OpenAPIEnums=true|false (BETA - 默认值为 true)
PDBUnhealthyPodEvictionPolicy=true|false (BETA - 默认值为 true)
PersistentVolumeLastPhaseTransitionTime=true|false (BETA - 默认值为 true)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值为 false)
PodDeletionCost=true|false (BETA - 默认值为 true)
PodDisruptionConditions=true|false (BETA - 默认值为 true)
PodHostIPs=true|false (BETA - 默认值为 true)
PodIndexLabel=true|false (BETA - 默认值为 true)
PodLifecycleSleepAction=true|false (ALPHA - 默认值为 false)
PodReadyToStartContainersCondition=true|false (BETA - 默认值为 true)
PodSchedulingReadiness=true|false (BETA - 默认值为 true)
ProcMountType=true|false (ALPHA - 默认值为 false)
QOSReserved=true|false (ALPHA - 默认值为 false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值为 false)
RotateKubeletServerCertificate=true|false (BETA - 默认值为 true)
RuntimeClassInImageCriApi=true|false (ALPHA - 默认值为 false)
SELinuxMountReadWriteOncePod=true|false (BETA - 默认值为 true)
SchedulerQueueingHints=true|false (BETA - 默认值为 false)
SecurityContextDeny=true|false (ALPHA - 默认值为 false)
SeparateTaintEvictionController=true|false (BETA - 默认值为 true)
ServiceAccountTokenJTI=true|false (ALPHA - 默认值为 false)
ServiceAccountTokenNodeBinding=true|false (ALPHA - 默认值为 false)
ServiceAccountTokenNodeBindingValidation=true|false (ALPHA - 默认值为 false)
ServiceAccountTokenPodNodeInfo=true|false (ALPHA - 默认值为 false)
SidecarContainers=true|false (BETA - default=true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值为 true)
StableLoadBalancerNodeSet=true|false (BETA - 默认值为 true)
StatefulSetAutoDeletePVC=true|false (BETA - 默认值为 true)
StatefulSetStartOrdinal=true|false (BETA - 默认值为 true)
StorageVersionAPI=true|false (ALPHA - 默认值为 false)
StorageVersionHash=true|false (BETA - 默认值为 true)
StructuredAuthenticationConfiguration=true|false (ALPHA - 默认值为 false)
StructuredAuthorizationConfiguration=true|false (ALPHA - 默认值为 false)
TopologyAwareHints=true|false (BETA - 默认值为 true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值为 false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值为 true)
TopologyManagerPolicyOptions=true|false (BETA - 默认值为 true)
TranslateStreamCloseWebsocketRequests=true|false (ALPHA - 默认值为 false)
UnauthenticatedHTTP2DOSMitigation=true|false (BETA - 默认值为 true)
UnknownVersionInteroperabilityProxy=true|false (ALPHA - 默认值为 false)
UserNamespacesPodSecurityStandards=true|false (ALPHA - 默认值为 false)
UserNamespacesSupport=true|false (ALPHA - 默认值为 false)
ValidatingAdmissionPolicy=true|false (BETA - 默认值为 false)
VolumeAttributesClass=true|false (ALPHA - 默认值为 false)
VolumeCapacityPriority=true|false (ALPHA - 默认值为 false)
WatchList=true|false (ALPHA - 默认值为 false)
WinDSR=true|false (ALPHA - 默认值为 false)
WinOverlay=true|false (BETA - 默认值为 true)
WindowsHostNetwork=true|false (ALPHA - 默认值为 true)
ZeroLimitedNominalConcurrencyShares=true|false (BETA - 默认值为 false)
已弃用: 应在 --config 所给的配置文件中进行设置。 (进一步了解
--file-check-frequency duration     默认值:20s
检查配置文件中新数据的时间间隔。 (已弃用:应在 --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:: 表示监听所有接口和 IP 协议族。 (已弃用:应在 --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。 (已弃用:应在 --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     默认值:100
每秒发送到 API 服务器 的突发请求数量上限。 该数字必须大于或等于 0。如果为 0,则使用默认的突发值(100)。 不包括事件和节点心跳 API,其速率限制由一组不同的标志控制。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kube-api-content-type string     默认值:application/vnd.kubernetes.protobuf
发送到 apiserver 的请求的内容类型。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kube-api-qps int32     默认值:50
与 apiserver 通信的每秒查询个数(QPS)。 此值必须 >= 0。如果为 0,则使用默认 QPS(50)。 不包含事件和节点心跳 API,它们的速率限制是由一组不同的标志所控制。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--kube-reserved strings     默认值:<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 标志指定的配置文件来设置。 有关详细信息,请参阅 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)的幂。 启用 LoggingAlphaOptions 特性门控来使用此功能。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--log-json-split-stream
[Alpha 特性]以 JSON 格式,将错误消息写入 stderr,将 info 消息写入 stdout。 启用 LoggingAlphaOptions 特性门控来使用此功能。 默认是将单个流写入标准输出。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--logging-format string     默认值:"text"
设置日志格式。允许的格式:json(由 LoggingBetaOptionstext 控制)。 (已弃用:此参数应通过 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 strings
取值为由 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
内存管理器策略使用。可选值:NoneStatic。 (已弃用:应在 --config 所给的配置文件中进行设置。 请参阅 kubelet-config-file 了解更多信息。)
--minimum-container-ttl-duration duration
已结束的容器在被垃圾回收清理之前的最少存活时间。 例如:300ms10s 或者 2h45m。 已弃用:请改用 --eviction-hard 或者 --eviction-soft。 此标志将在未来的版本中删除。
--minimum-image-ttl-duration duration     默认值:2m0s
已结束的容器在被垃圾回收清理之前的最少存活时间。 例如:300ms10s 或者 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
设置主机数据库(即,云驱动)中用来标识节点的唯一标识。
--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
当 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
启用 RuntimeDefault 作为所有工作负载的默认 seccomp 配置文件。
--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'
要使用的拓扑管理器策略,用于微调它们的行为。 可能的取值有:'none''best-effort''restricted''single-numa-node'。 (已弃用:此参数应通过 kubelet 的 --config 标志指定的配置文件设置。请参阅 kubelet-config-file 了解更多信息。)
--topology-manager-policy-options string
设置拓扑管理策略(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 版本信息并退出;--version=vX.Y.Z... 设置报告的版本。
--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 和卷的磁盘用量总值的时间间隔。要禁用磁盘用量计算, 可设置为负数。 (已弃用:应在 --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-metric-labels-manifest string

包含允许列表映射的清单文件的路径。此文件的格式与 --allow-metric-labels 相同。 请注意,--allow-metric-labels 标志将覆盖清单文件。

--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-config string

用于配置 JWT 令牌验证器的身份验证配置文件。注意:此特性自 v1.29 起处于 Alpha 阶段。 需要设置 --feature-gate=StructuredAuthenticationConfiguration=true 才能启用此特性。 此特性与 oidc-* 标志互斥。

--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-config string

用于配置鉴权链的鉴权配置文件。注意:此特性自 v1.29 起处于 Alpha 阶段。 需要将 --feature-gate=StructuredAuthorizationConfiguration=true 特性标志设置为 true 才能启用此特性。 此特性与其他 --authorization-mode和--authorization-webhook-* 标志互斥。

--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::),则将使用所有接口和 IP 地址簇。
--cert-dir string     默认值:"/var/run/kubernetes"
TLS 证书所在的目录。 如果提供了 --tls-cert-file--tls-private-key-file 标志值,则将忽略此标志。
--client-ca-file string
如果已设置,则使用与客户端证书的 CommonName 对应的标识对任何出示由 client-ca 文件中的授权机构之一签名的客户端证书的请求进行身份验证。
--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。 请确保每个表达式与整个主机名相匹配,方法是用'^'锚定开始或包括'//'前缀,同时用'$'锚定结束或包括':'端口分隔符后缀。 有效表达式的例子是'//example.com(:|$)'和'^https://example.com(:|$)'。

--debug-socket-path string

使用位于给定路径的、未受保护的(无身份认证或鉴权的)UNIX 域套接字执行性能分析。

--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、ClusterTrustBundleAttest、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook、ResourceQuota)。 取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、ClusterTrustBundleAttest、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、ClusterTrustBundleAttest、CertificateSubjectRestriction、DefaultIngressClass、MutatingAdmissionWebhook、ValidatingAdmissionPolicy、ValidatingAdmissionWebhook、ResourceQuota)之外要启用的准入插件。 取值为逗号分隔的准入插件列表:AlwaysAdmit、AlwaysDeny、AlwaysPullImages、CertificateApproval、CertificateSigning、CertificateSubjectRestriction、ClusterTrustBundleAttest、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,则使用增强的处理程序替换 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 对,用来描述测试性/试验性功能的特性门控。可选项有:
APIResponseCompression=true|false (BETA - 默认值=true)
APIServerIdentity=true|false (BETA - 默认值=true)
APIServerTracing=true|false (BETA - 默认值=true)
AdmissionWebhookMatchConditions=true|false (BETA - 默认值=true)
AggregatedDiscoveryEndpoint=true|false (BETA - 默认值=true)
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)
CRDValidationRatcheting=true|false (ALPHA - 默认值=false)
CSIMigrationPortworx=true|false (BETA - 默认值=false)
CSIVolumeHealth=true|false (ALPHA - 默认值=false)
CloudControllerManagerWebhook=true|false (ALPHA - 默认值=false)
CloudDualStackNodeIPs=true|false (BETA - 默认值=true)
ClusterTrustBundle=true|false (ALPHA - 默认值=false)
ClusterTrustBundleProjection=true|false (ALPHA - 默认值=false)
ComponentSLIs=true|false (BETA - 默认值=true)
ConsistentListFromCache=true|false (ALPHA - 默认值=false)
ContainerCheckpoint=true|false (ALPHA - 默认值=false)
ContextualLogging=true|false (ALPHA - 默认值=false)
CronJobsScheduledAnnotation=true|false (BETA - 默认值=true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
DevicePluginCDIDevices=true|false (BETA - 默认值=true)
DisableCloudProviders=true|false (BETA - 默认值=true)
DisableKubeletCloudCredentialProviders=true|false (BETA - 默认值=true)
DisableNodeKubeProxyVersion=true|false (ALPHA - 默认值=false)
DynamicResourceAllocation=true|false (ALPHA - 默认值=false)
ElasticIndexedJob=true|false (BETA - 默认值=true)
EventedPLEG=true|false (BETA - 默认值=false)
GracefulNodeShutdown=true|false (BETA - 默认值=true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值=true)
HPAContainerMetrics=true|false (BETA - 默认值=true)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值=false)
ImageMaximumGCAge=true|false (ALPHA - 默认值=false)
InPlacePodVerticalScaling=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)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)
JobBackoffLimitPerIndex=true|false (BETA - 默认值=true)
JobPodFailurePolicy=true|false (BETA - 默认值=true)
JobPodReplacementPolicy=true|false (BETA - 默认值=true)
KubeProxyDrainingTerminatingNodes=true|false (ALPHA - 默认值=false)
KubeletCgroupDriverFromCRI=true|false (ALPHA - 默认值=false)
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)
KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认值=false)
KubeletPodResourcesGet=true|false (ALPHA - 默认值=false)
KubeletSeparateDiskGC=true|false (ALPHA - 默认值=false)
KubeletTracing=true|false (BETA - 默认值=true)
LegacyServiceAccountTokenCleanUp=true|false (BETA - 默认值=true)
LoadBalancerIPMode=true|false (ALPHA - 默认值=false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
LogarithmicScaleDown=true|false (BETA - 默认值=true)
LoggingAlphaOptions=true|false (ALPHA - 默认值=false)
LoggingBetaOptions=true|false (BETA - 默认值=true)
MatchLabelKeysInPodAffinity=true|false (ALPHA - 默认值=false)
MatchLabelKeysInPodTopologySpread=true|false (BETA - 默认值=true)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值=false)
MemoryManager=true|false (BETA - 默认值=true)
MemoryQoS=true|false (ALPHA - 默认值=false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值=true)
MultiCIDRServiceAllocator=true|false (ALPHA - 默认值=false)
NFTablesProxyMode=true|false (ALPHA - 默认值=false)
NewVolumeManagerReconstruction=true|false (BETA - 默认值=true)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值=true)
NodeLogQuery=true|false (ALPHA - 默认值=false)
NodeSwap=true|false (BETA - 默认值=false)
OpenAPIEnums=true|false (BETA - 默认值=true)
PDBUnhealthyPodEvictionPolicy=true|false (BETA - 默认值=true)
PersistentVolumeLastPhaseTransitionTime=true|false (BETA - 默认值=true)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值=false)
PodDeletionCost=true|false (BETA - 默认值=true)
PodDisruptionConditions=true|false (BETA - 默认值=true)
PodHostIPs=true|false (BETA - 默认值=true)
PodIndexLabel=true|false (BETA - 默认值=true)
PodLifecycleSleepAction=true|false (ALPHA - 默认值=false)
PodReadyToStartContainersCondition=true|false (BETA - 默认值=true)
PodSchedulingReadiness=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
QOSReserved=true|false (ALPHA - 默认值=false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值=false)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
RuntimeClassInImageCriApi=true|false (ALPHA - 默认值=false)
SELinuxMountReadWriteOncePod=true|false (BETA - 默认值=true)
SchedulerQueueingHints=true|false (BETA - 默认值=false)
SecurityContextDeny=true|false (ALPHA - 默认值=false)
SeparateTaintEvictionController=true|false (BETA - 默认值=true)
ServiceAccountTokenJTI=true|false (ALPHA - 默认值=false)
ServiceAccountTokenNodeBinding=true|false (ALPHA - 默认值=false)
ServiceAccountTokenNodeBindingValidation=true|false (ALPHA - 默认值=false)
ServiceAccountTokenPodNodeInfo=true|false (ALPHA - 默认值=false)
SidecarContainers=true|false (BETA - 默认值=true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)
StableLoadBalancerNodeSet=true|false (BETA - 默认值=true)
StatefulSetAutoDeletePVC=true|false (BETA - 默认值=true)
StatefulSetStartOrdinal=true|false (BETA - 默认值=true)
StorageVersionAPI=true|false (ALPHA - 默认值=false)
StorageVersionHash=true|false (BETA - 默认值=true)
StructuredAuthenticationConfiguration=true|false (ALPHA - 默认值=false)
StructuredAuthorizationConfiguration=true|false (ALPHA - 默认值=false)
TopologyAwareHints=true|false (BETA - 默认值=true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
TopologyManagerPolicyOptions=true|false (BETA - 默认值=true)
TranslateStreamCloseWebsocketRequests=true|false (ALPHA - 默认值=false)
UnauthenticatedHTTP2DOSMitigation=true|false (BETA - 默认值=true)
UnknownVersionInteroperabilityProxy=true|false (ALPHA - 默认值=false)
UserNamespacesPodSecurityStandards=true|false (ALPHA - 默认值=false)
UserNamespacesSupport=true|false (ALPHA - 默认值=false)
ValidatingAdmissionPolicy=true|false (BETA - 默认值=false)
VolumeAttributesClass=true|false (ALPHA - 默认值=false)
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)
WatchList=true|false (ALPHA - 默认值=false)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (BETA - 默认值=true)
WindowsHostNetwork=true|false (ALPHA - 默认值=true)
ZeroLimitedNominalConcurrencyShares=true|false (BETA - 默认值=false)

--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 的和将确定服务器的总并发限制(必须是正数)。 否则,该值限制同时运行的变更类型的请求的个数上限。0 表示无限制。
--max-requests-inflight int     默认值:400
如果 --enable-priority-and-fairness 为 true,那么此值和 --max-mutating-requests-inflight 的和将确定服务器的总并发限制(必须是正数)。 否则,该值限制进行中非变更类型请求的最大个数,零表示无限制。
--min-request-timeout int     默认值:1800
可选字段,表示处理程序在请求超时前,必须保持连接处于打开状态的最小秒数。 当前只对监听(Watch)请求的处理程序有效。 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 作为前缀,以避免冲突。 要略过添加前缀处理,请设置值为 "-"。
--peer-advertise-ip string

如果设置并启用了 UnknownVersionInteroperabilityProxy 特性门控, 当请求由于 kube-apiservers 之间的版本偏差而无法被处理时, 此 IP 将由对等 kube-apiserver 用于代理请求到该 kube-apiserver。 此标志仅被用于配置了多个 kube-apiserver 以实现高可用性的集群中。

--peer-advertise-port string

如果设置并且启用了 UnknownVersionInteroperabilityProxy 特性门控, 当请求由于 kube-apiservers 之间的版本偏差导致对等方无法被处理时, 此端口将由对等 kube-apiserver 用于代理请求到该 kube-apiserver。 此标志仅被用于配置了多个 kube-apiserver 以实现高可用性的集群中。

--peer-ca-file string

如果设置并启用了 UnknownVersionInteroperabilityProxy 特性门控, 此文件将被用于验证对等 kube-apiserver 的服务证书。 此标志仅被用于配置了多个 kube-apiserver 以实现高可用性的集群中。

--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 链接。
--shutdown-watch-termination-grace-period duration

此选项如果被设置了,则表示 API 服务器体面关闭服务器窗口内,等待活跃的监听请求耗尽的最长宽限期。

--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]

--version, --version=raw 打印版本信息并退出; --version=vX.Y.Z... 设置报告的版本

--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::), 意味着所有网络接口和 IP 地址簇都在监听范围。
--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-cron-job-syncs int32     默认值:5

可以并发同步的 CronJob 对象个数。数值越大意味着对 CronJob 的响应越及时, 同时也意味着更大的 CPU(和网络带宽)压力。

--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
可以并发同步的垃圾收集工作线程个数。
--concurrent-horizontal-pod-autoscaler-syncs int32     默认值:5

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

--concurrent-job-syncs int32     默认值:5

可以并发同步的 Job 对象个数。较大的数值意味着更快的 Job 终结操作, 不过也意味着更多的 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-controller 线程个数。
--concurrent-validating-admission-policy-status-syncs int32     默认值:5

可以并发同步的 ValidatingAdmissionPolicyStatusController 线程个数。

--configure-cloud-routes     默认值:true
决定是否由 --allocate-node-cidrs 所分配的 CIDR 要通过云驱动程序来配置。
--contention-profiling
在启用了性能分析(profiling)时,也启用锁竞争情况分析。
--controller-start-interval duration
在两次启动控制器管理器之间的时间间隔。
--controllers strings     默认值:*
要启用的控制器列表。* 表示启用所有默认启用的控制器; foo 启用名为 foo 的控制器; -foo 表示禁用名为 foo 的控制器。
控制器的全集:bootstrap-signer-controller、certificatesigningrequest-approving-controller、 certificatesigningrequest-cleaner-controller、certificatesigningrequest-signing-controller、 cloud-node-lifecycle-controller、clusterrole-aggregation-controller、cronjob-controller、daemonset-controller、 deployment-controller、disruption-controller、endpoints-controller、endpointslice-controller、 endpointslice-mirroring-controller、ephemeral-volume-controller、garbage-collector-controller、 horizontal-pod-autoscaler-controller、job-controller、namespace-controller、node-ipam-controller、 node-lifecycle-controller、node-route-controller、persistentvolume-attach-detach-controller、 persistentvolume-binder-controller、persistentvolume-expander-controller、persistentvolume-protection-controller、 persistentvolumeclaim-protection-controller、pod-garbage-collector-controller、replicaset-controller、 replicationcontroller-controller、resourcequota-controller、root-ca-certificate-publisher-controller、 service-lb-controller、serviceaccount-controller、serviceaccount-token-controller、statefulset-controller、 token-cleaner-controller、ttl-after-finished-controller、ttl-controller
默认禁用的控制器有:bootstrap-signer-controller、token-cleaner-controller。
--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 时设置。 目前用来保证 node-ipam-controller、persistentvolume-binder-controller、persistentvolume-expander-controller 和 attach-detach-controller 能够在三种云驱动上正常工作。
--feature-gates <逗号分隔的 'key=True|False' 对列表>

一组 key=value 对,用来描述测试性/试验性功能的特性门控。可选项有:
APIListChunking=true|false (BETA - 默认值为 true)
APIPriorityAndFairness=true|false (BETA - 默认值为 true)
APIResponseCompression=true|false (BETA - 默认值为 true)
APIServerIdentity=true|false (BETA - 默认值为 true)
APIServerTracing=true|false (BETA - 默认值为 true)
AdmissionWebhookMatchConditions=true|false (BETA - 默认值为 true)
AggregatedDiscoveryEndpoint=true|false (BETA - 默认值为 true)
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)
CRDValidationRatcheting=true|false (ALPHA - 默认值为 false)
CSIMigrationPortworx=true|false (BETA - 默认值为 false)
CSINodeExpandSecret=true|false (BETA - 默认值为 true)
CSIVolumeHealth=true|false (ALPHA - 默认值为 false)
CloudControllerManagerWebhook=true|false (ALPHA - 默认值为 false)
CloudDualStackNodeIPs=true|false (ALPHA - 默认值为 false)
ClusterTrustBundle=true|false (ALPHA - 默认值为 false)
ComponentSLIs=true|false (BETA - 默认值为 true)
ConsistentListFromCache=true|false (ALPHA - 默认值为 false)
ContainerCheckpoint=true|false (ALPHA - 默认值为 false)
ContextualLogging=true|false (ALPHA - 默认值为 false)
CronJobsScheduledAnnotation=true|false (BETA - 默认值为 true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值为 false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值为 false)
CustomResourceValidationExpressions=true|false (BETA - 默认值为 true)
DevicePluginCDIDevices=true|false (ALPHA - 默认值为 false)
DisableCloudProviders=true|false (ALPHA - 默认值为 false)
DisableKubeletCloudCredentialProviders=true|false (ALPHA - 默认值为 false)
DynamicResourceAllocation=true|false (ALPHA - 默认值为 false)
ElasticIndexedJob=true|false (BETA - 默认值为 true)
EventedPLEG=true|false (BETA - 默认值为 false)
GracefulNodeShutdown=true|false (BETA - 默认值为 true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值为 true)
HPAContainerMetrics=true|false (BETA - 默认值为 true)
HPAScaleToZero=true|false (ALPHA - 默认值为 false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值为 false)
InPlacePodVerticalScaling=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)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值为 false)
JobBackoffLimitPerIndex=true|false (ALPHA - 默认值为 false)
JobPodFailurePolicy=true|false (BETA - 默认值为 true)
JobPodReplacementPolicy=true|false (ALPHA - 默认值为 false)
JobReadyPods=true|false (BETA - 默认值为 true)
KMSv2=true|false (BETA - 默认值为 true)
KMSv2KDF=true|false (BETA - 默认值为 false)
KubeProxyDrainingTerminatingNodes=true|false (ALPHA - 默认值为 false)
KubeletCgroupDriverFromCRI=true|false (ALPHA - 默认值为 false)
KubeletInUserNamespace=true|false (ALPHA - 默认值为 false)
KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认值为 false)
KubeletPodResourcesGet=true|false (ALPHA - 默认值为 false)
KubeletTracing=true|false (BETA - 默认值为 true)
LegacyServiceAccountTokenCleanUp=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 (BETA - 默认值为 true)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值为 false)
MemoryManager=true|false (BETA - 默认值为 true)
MemoryQoS=true|false (ALPHA - 默认值为 false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值为 true)
MultiCIDRRangeAllocator=true|false (ALPHA - 默认值为 false)
MultiCIDRServiceAllocator=true|false (ALPHA - 默认值为 false)
NewVolumeManagerReconstruction=true|false (BETA - 默认值为 true)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值为 true)
NodeLogQuery=true|false (ALPHA - 默认值为 false)
NodeSwap=true|false (BETA - 默认值为 false)
OpenAPIEnums=true|false (BETA - 默认值为 true)
PDBUnhealthyPodEvictionPolicy=true|false (BETA - 默认值为 true)
PersistentVolumeLastPhaseTransitionTime=true|false (ALPHA - 默认值为 false)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值为 false)
PodDeletionCost=true|false (BETA - 默认值为 true)
PodDisruptionConditions=true|false (BETA - 默认值为 true)
PodHostIPs=true|false (ALPHA - 默认值为 false)
PodIndexLabel=true|false (BETA - 默认值为 true)
PodReadyToStartContainersCondition=true|false (ALPHA - 默认值为 false)
PodSchedulingReadiness=true|false (BETA - 默认值为 true)
ProcMountType=true|false (ALPHA - 默认值为 false)
QOSReserved=true|false (ALPHA - 默认值为 false)
ReadWriteOncePod=true|false (BETA - 默认值为 true)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值为 false)
RemainingItemCount=true|false (BETA - 默认值为 true)
RotateKubeletServerCertificate=true|false (BETA - 默认值为 true)
SELinuxMountReadWriteOncePod=true|false (BETA - 默认值为 true)
SchedulerQueueingHints=true|false (BETA - 默认值为 true)
SecurityContextDeny=true|false (ALPHA - 默认值为 false)
ServiceNodePortStaticSubrange=true|false (BETA - 默认值为 true)
SidecarContainers=true|false (ALPHA - 默认值为 false)
SizeMemoryBackedVolumes=true|false (BETA - 默认值为 true)
SkipReadOnlyValidationGCE=true|false (ALPHA - 默认值为 false)
StableLoadBalancerNodeSet=true|false (BETA - 默认值为 true)
StatefulSetAutoDeletePVC=true|false (BETA - 默认值为 true)
StatefulSetStartOrdinal=true|false (BETA - 默认值为 true)
StorageVersionAPI=true|false (ALPHA - 默认值为 false)
StorageVersionHash=true|false (BETA - 默认值为 true)
TopologyAwareHints=true|false (BETA - 默认值为 true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值为 false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值为 true)
TopologyManagerPolicyOptions=true|false (BETA - 默认值为 true)
UnknownVersionInteroperabilityProxy=true|false (ALPHA - 默认值为 false)
UserNamespacesSupport=true|false (ALPHA - 默认值为 false)
ValidatingAdmissionPolicy=true|false (BETA - 默认值为 false)
VolumeCapacityPriority=true|false (ALPHA - 默认值为 false)
WatchList=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
node-lifecycle-controller 在执行 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 结构。

--legacy-service-account-token-clean-up-period duration     默认值:8760h0m0s

从最近一次使用某个旧的服务账号令牌计起,到该令牌在可以删除之前的时长。

--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
endpointslice-mirroring-controller 将同时执行的服务端点同步操作数。 较大的数量 = 更快的端点切片更新,但 CPU(和网络)负载更多。 默认为 5。
--mirroring-endpointslice-updates-batch-period duration
EndpointSlice 的长度会更新 endpointslice-mirroring-controller 的批处理周期。 EndpointSlice 更改的处理将延迟此持续时间, 以使它们与潜在的即将进行的更新结合在一起,并减少 EndpointSlice 更新的总数。 较大的数量 = 较高的端点编程延迟,但是生成的端点修订版本数量较少
--mirroring-max-endpoints-per-subset int32     默认值:1000
endpointslice-mirroring-controller 可添加到某 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
cloud-node-lifecycle-controller 对节点状态进行同步的周期。
--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]
--version, --version=raw 打印版本信息之后退出; --version=vX.Y.Z... 设置报告的版本。
--vmodule pattern=N,...
由逗号分隔的列表,每一项都是 pattern=N 格式,用来执行根据文件过滤的日志行为(仅适用于 text 日志格式)。

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

重写 kube-proxy 对其节点主要 IP 的理解。请注意,此名称是一个历史遗留字段, 并且 kube-proxy 实际上并没有将任何套接字绑定到此 IP。 如果配置文件由 --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 范围。对于双协议栈集群,这可以是逗号分隔的双协议栈 CIDR 范围对。 当 --detect-local-mode 设置为 ClusterCIDR 时, kube-proxy 会将源 IP 在此范围内的流量视为本地流量。否则不使用此字段。 如果配置文件由 --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-be-liberal

通过将 nf_conntrack_tcp_be_liberal 设置为 1,启用宽松模式以跟踪 TCP 数据包。

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

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

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

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

--conntrack-udp-timeout duration

UNREPLIED UDP 连接的空闲超时(0 保持当前设置)。

--conntrack-udp-timeout-stream duration

ASSURED UDP 连接的空闲超时(0 保持当前设置)。

--detect-local-mode LocalMode

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

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

一组 key=value 对,用来描述测试性/试验性功能的特性门控。可选项有:
APIResponseCompression=true|false (BETA - 默认值=true)
APIServerIdentity=true|false (BETA - 默认值=true)
APIServerTracing=true|false (BETA - 默认值=true)
AdmissionWebhookMatchConditions=true|false (BETA - 默认值=true)
AggregatedDiscoveryEndpoint=true|false (BETA - 默认值=true)
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)
CRDValidationRatcheting=true|false (ALPHA - 默认值=false)
CSIMigrationPortworx=true|false (BETA - 默认值=false)
CSIVolumeHealth=true|false (ALPHA - 默认值=false)
CloudControllerManagerWebhook=true|false (ALPHA - 默认值=false)
CloudDualStackNodeIPs=true|false (BETA - 默认值=true)
ClusterTrustBundle=true|false (ALPHA - 默认值=false)
ClusterTrustBundleProjection=true|false (ALPHA - 默认值=false)
ComponentSLIs=true|false (BETA - 默认值=true)
ConsistentListFromCache=true|false (ALPHA - 默认值=false)
ContainerCheckpoint=true|false (ALPHA - 默认值=false)
ContextualLogging=true|false (ALPHA - 默认值=false)
CronJobsScheduledAnnotation=true|false (BETA - 默认值=true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值=false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值=false)
DevicePluginCDIDevices=true|false (BETA - 默认值=true)
DisableCloudProviders=true|false (BETA - 默认值=true)
DisableKubeletCloudCredentialProviders=true|false (BETA - 默认值=true)
DisableNodeKubeProxyVersion=true|false (ALPHA - 默认值=false)
DynamicResourceAllocation=true|false (ALPHA - 默认值=false)
ElasticIndexedJob=true|false (BETA - 默认值=true)
EventedPLEG=true|false (BETA - 默认值=false)
GracefulNodeShutdown=true|false (BETA - 默认值=true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值=true)
HPAContainerMetrics=true|false (BETA - 默认值=true)
HPAScaleToZero=true|false (ALPHA - 默认值=false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值=false)
ImageMaximumGCAge=true|false (ALPHA - 默认值=false)
InPlacePodVerticalScaling=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)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值=false)
JobBackoffLimitPerIndex=true|false (BETA - 默认值=true)
JobPodFailurePolicy=true|false (BETA - 默认值=true)
JobPodReplacementPolicy=true|false (BETA - 默认值=true)
KubeProxyDrainingTerminatingNodes=true|false (ALPHA - 默认值=false)
KubeletCgroupDriverFromCRI=true|false (ALPHA - 默认值=false)
KubeletInUserNamespace=true|false (ALPHA - 默认值=false)
KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认值=false)
KubeletPodResourcesGet=true|false (ALPHA - 默认值=false)
KubeletSeparateDiskGC=true|false (ALPHA - 默认值=false)
KubeletTracing=true|false (BETA - 默认值=true)
LegacyServiceAccountTokenCleanUp=true|false (BETA - 默认值=true)
LoadBalancerIPMode=true|false (ALPHA - 默认值=false)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值=false)
LogarithmicScaleDown=true|false (BETA - 默认值=true)
LoggingAlphaOptions=true|false (ALPHA - 默认值=false)
LoggingBetaOptions=true|false (BETA - 默认值=true)
MatchLabelKeysInPodAffinity=true|false (ALPHA - 默认值=false)
MatchLabelKeysInPodTopologySpread=true|false (BETA - 默认值=true)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值=false)
MemoryManager=true|false (BETA - 默认值=true)
MemoryQoS=true|false (ALPHA - 默认值=false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值=true)
MultiCIDRServiceAllocator=true|false (ALPHA - 默认值=false)
NFTablesProxyMode=true|false (ALPHA - 默认值=false)
NewVolumeManagerReconstruction=true|false (BETA - 默认值=true)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值=true)
NodeLogQuery=true|false (ALPHA - 默认值=false)
NodeSwap=true|false (BETA - 默认值=false)
OpenAPIEnums=true|false (BETA - 默认值=true)
PDBUnhealthyPodEvictionPolicy=true|false (BETA - 默认值=true)
PersistentVolumeLastPhaseTransitionTime=true|false (BETA - 默认值=true)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值=false)
PodDeletionCost=true|false (BETA - 默认值=true)
PodDisruptionConditions=true|false (BETA - 默认值=true)
PodHostIPs=true|false (BETA - 默认值=true)
PodIndexLabel=true|false (BETA - 默认值=true)
PodLifecycleSleepAction=true|false (ALPHA - 默认值=false)
PodReadyToStartContainersCondition=true|false (BETA - 默认值=true)
PodSchedulingReadiness=true|false (BETA - 默认值=true)
ProcMountType=true|false (ALPHA - 默认值=false)
QOSReserved=true|false (ALPHA - 默认值=false)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值=false)
RotateKubeletServerCertificate=true|false (BETA - 默认值=true)
RuntimeClassInImageCriApi=true|false (ALPHA - 默认值=false)
SELinuxMountReadWriteOncePod=true|false (BETA - 默认值=true)
SchedulerQueueingHints=true|false (BETA - 默认值=false)
SecurityContextDeny=true|false (ALPHA - 默认值=false)
SeparateTaintEvictionController=true|false (BETA - 默认值=true)
ServiceAccountTokenJTI=true|false (ALPHA - 默认值=false)
ServiceAccountTokenNodeBinding=true|false (ALPHA - 默认值=false)
ServiceAccountTokenNodeBindingValidation=true|false (ALPHA - 默认值=false)
ServiceAccountTokenPodNodeInfo=true|false (ALPHA - 默认值=false)
SidecarContainers=true|false (BETA - 默认值=true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值=true)
StableLoadBalancerNodeSet=true|false (BETA - 默认值=true)
StatefulSetAutoDeletePVC=true|false (BETA - 默认值=true)
StatefulSetStartOrdinal=true|false (BETA - 默认值=true)
StorageVersionAPI=true|false (ALPHA - 默认值=false)
StorageVersionHash=true|false (BETA - 默认值=true)
StructuredAuthenticationConfiguration=true|false (ALPHA - 默认值=false)
StructuredAuthorizationConfiguration=true|false (ALPHA - 默认值=false)
TopologyAwareHints=true|false (BETA - 默认值=true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值=false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值=true)
TopologyManagerPolicyOptions=true|false (BETA - 默认值=true)
TranslateStreamCloseWebsocketRequests=true|false (ALPHA - 默认值=false)
UnauthenticatedHTTP2DOSMitigation=true|false (BETA - 默认值=true)
UnknownVersionInteroperabilityProxy=true|false (ALPHA - 默认值=false)
UserNamespacesPodSecurityStandards=true|false (ALPHA - 默认值=false)
UserNamespacesSupport=true|false (ALPHA - 默认值=false)
ValidatingAdmissionPolicy=true|false (BETA - 默认值=false)
VolumeAttributesClass=true|false (ALPHA - 默认值=false)
VolumeCapacityPriority=true|false (ALPHA - 默认值=false)
WatchList=true|false (ALPHA - 默认值=false)
WinDSR=true|false (ALPHA - 默认值=false)
WinOverlay=true|false (BETA - 默认值=true)
WindowsHostNetwork=true|false (ALPHA - 默认值=true)
ZeroLimitedNominalConcurrencyShares=true|false (BETA - 默认值=false)
如果配置文件由 --config 指定,则忽略此参数。

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

服务健康状态检查的 IP 地址和端口。 如果 --bind-address 未设置或设置为 IPv4,则默认为 “0.0.0.0:10256”。 如果 --bind-address 设置为 IPv6,则默认为 “[::]:10256”。 设置为空则禁用。如果配置文件由 --config 指定,则忽略此参数。

-h, --help

kube-proxy 操作的帮助命令。

--hostname-override string

如果非空,将使用此字符串而不是实际的主机名作为标识。 如果不设置,节点名称假定为与节点的主机名相同。

--init-only

如果设置为 true,则执行需要完整 root 权限才能执行的所有初始化步骤,然后退出。 完成此操作后,你可以仅使用 CAP_NET_ADMIN 权能再次运行 kube-proxy。

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

如果设为 false,Kube-proxy 将禁用允许通过本地主机访问 NodePort 服务的传统行为, 这仅适用于 iptables 模式和 ipv4。本地主机的 NodePort 在其他代理模式或 IPv6 下是不允许的。

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

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

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

iptables 规则重新同步之间的最小间隔(例如 '5s'、'1m'、'2h22m')。 值为 0 表示每次 Service 或 EndpointSlice 更改都会立即进行 iptables 重新同步。

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

表示各种重新同步和清理操作执行频率的时间间隔(例如 '5s'、'1m'、'2h22m')。必须大于 0。

--ipvs-exclude-cidrs strings

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

--ipvs-min-sync-period duration

ipvs 规则重新同步之间的最小间隔(例如 '5s'、'1m'、'2h22m')。 值为 0 表示每次 Service 或 EndpointSlice 更改都会立即进行 ipvs 重新同步。

--ipvs-scheduler string

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

--ipvs-strict-arp

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

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

表示各种重新同步和清理操作执行频率的时间间隔(例如 '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-flush-frequency duration     默认值:5s

日志清洗之间的最大秒数

--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,则最大文件大小不受限制。

--logging-format string     默认值:"text"

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

--logtostderr     默认值:true

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

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

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

--masquerade-all

如果使用 iptables 或 ipvs 代理模式,则对通过 Service 集群 IP 发送的所有流量进行 SNAT。 这对某些 CNI 插件可能是必需的。

--master string

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

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

metrics 服务器要使用的 IP 地址和端口。 如果 --bind-address 未设置或设置为 IPv4,则默认为 "127.0.0.1:10249"。 如果 --bind-address 设置为 IPv6,则默认为 "[::1]:10249"。 设置为 "0.0.0.0:10249" / "[::]:10249" 可以在所有接口上进行绑定。 设置为空则禁用。如果配置文件由 --config 指定,则忽略此参数。

--nodeport-addresses strings

一个包含有效节点 IP 的 CIDR 范围列表。 如果设置了,到 NodePort 服务的连接只会在节点 IP 在指定范围内时才会被接受。 如果不设置,则 NodePort 连接将在所有本地 IP 上被接受。 如果配置文件由 --config 指定,则忽略此参数。

--one_output

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

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

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

--pod-bridge-interface string
一个桥接接口名称。当 --detect-local-mode 设置为 BridgeInterface 时, kube-proxy 会将源自此桥接的流量视为本地流量。
--pod-interface-name-prefix string
一个接口名称前缀。当 --detect-local-mode 设置为 InterfaceNamePrefix 时, kube-proxy 会将源自名称以该前缀开头的所有接口的流量视为本地流量。
--profiling

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

--proxy-mode ProxyMode

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

--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=true 时不生效)。

-v, --v int

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

--version version[=true]

--version, --version=raw 打印版本信息并退出; --version=vX.Y.Z... 设置报告的版本。

--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 或 ::),所有接口和 IP 地址簇将被使用。
--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)
APIServerIdentity=true|false (BETA - 默认值为 true)
APIServerTracing=true|false (BETA - 默认值为 true)
AdmissionWebhookMatchConditions=true|false (BETA - 默认值为 true)
AggregatedDiscoveryEndpoint=true|false (BETA - 默认值为 true)
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)
CRDValidationRatcheting=true|false (ALPHA - 默认值为 false)
CSIMigrationPortworx=true|false (BETA - 默认值为 false)
CSINodeExpandSecret=true|false (BETA - 默认值为 true)
CSIVolumeHealth=true|false (ALPHA - 默认值为 false)
CloudControllerManagerWebhook=true|false (ALPHA - 默认值为 false)
CloudDualStackNodeIPs=true|false (ALPHA - 默认值为 false)
ClusterTrustBundle=true|false (ALPHA - 默认值为 false)
ComponentSLIs=true|false (BETA - 默认值为 true)
ConsistentListFromCache=true|false (ALPHA - 默认值为 false)
ContainerCheckpoint=true|false (ALPHA - 默认值为 false)
ContextualLogging=true|false (ALPHA - 默认值为 false)
CronJobsScheduledAnnotation=true|false (BETA - 默认值为 true)
CrossNamespaceVolumeDataSource=true|false (ALPHA - 默认值为 false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值为 false)
CustomResourceValidationExpressions=true|false (BETA - 默认值为 true)
DevicePluginCDIDevices=true|false (ALPHA - 默认值为 false)
DisableCloudProviders=true|false (ALPHA - 默认值为 false)
DisableKubeletCloudCredentialProviders=true|false (ALPHA - 默认值为 false)
DynamicResourceAllocation=true|false (ALPHA - 默认值为 false)
ElasticIndexedJob=true|false (BETA - 默认值为 true)
EventedPLEG=true|false (BETA - 默认值为 false)
GracefulNodeShutdown=true|false (BETA - 默认值为 true)
GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - 默认值为 true)
HPAContainerMetrics=true|false (BETA - 默认值为 true)
HPAScaleToZero=true|false (ALPHA - 默认值为 false)
HonorPVReclaimPolicy=true|false (ALPHA - 默认值为 false)
InPlacePodVerticalScaling=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)
InTreePluginvSphereUnregister=true|false (ALPHA - 默认值为 false)
JobBackoffLimitPerIndex=true|false (ALPHA - 默认值为 false)
JobPodFailurePolicy=true|false (BETA - 默认值为 true)
JobPodReplacementPolicy=true|false (ALPHA - 默认值为 false)
JobReadyPods=true|false (BETA - 默认值为 true)
KMSv2=true|false (BETA - 默认值为 true)
KMSv2KDF=true|false (BETA - 默认值为 false)
KubeProxyDrainingTerminatingNodes=true|false (ALPHA - 默认值为 false)
KubeletCgroupDriverFromCRI=true|false (ALPHA - 默认值为 false)
KubeletInUserNamespace=true|false (ALPHA - 默认值为 false)
KubeletPodResourcesDynamicResources=true|false (ALPHA - 默认值为 false)
KubeletPodResourcesGet=true|false (ALPHA - 默认值为 false)
KubeletTracing=true|false (BETA - 默认值为 true)
LegacyServiceAccountTokenCleanUp=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 (BETA - 默认值为 true)
MaxUnavailableStatefulSet=true|false (ALPHA - 默认值为 false)
MemoryManager=true|false (BETA - 默认值为 true)
MemoryQoS=true|false (ALPHA - 默认值为 false)
MinDomainsInPodTopologySpread=true|false (BETA - 默认值为 true)
MultiCIDRRangeAllocator=true|false (ALPHA - 默认值为 false)
MultiCIDRServiceAllocator=true|false (ALPHA - 默认值为 false)
NewVolumeManagerReconstruction=true|false (BETA - 默认值为 true)
NodeInclusionPolicyInPodTopologySpread=true|false (BETA - 默认值为 true)
NodeLogQuery=true|false (ALPHA - 默认值为 false)
NodeSwap=true|false (BETA - 默认值为 false)
OpenAPIEnums=true|false (BETA - 默认值为 true)
PDBUnhealthyPodEvictionPolicy=true|false (BETA - 默认值为 true)
PersistentVolumeLastPhaseTransitionTime=true|false (ALPHA - 默认值为 false)
PodAndContainerStatsFromCRI=true|false (ALPHA - 默认值为 false)
PodDeletionCost=true|false (BETA - 默认值为 true)
PodDisruptionConditions=true|false (BETA - 默认值为 true)
PodHostIPs=true|false (ALPHA - 默认值为 false)
PodIndexLabel=true|false (BETA - 默认值为 true)
PodReadyToStartContainersCondition=true|false (ALPHA - 默认值为 false)
PodSchedulingReadiness=true|false (BETA - 默认值为 true)
ProcMountType=true|false (ALPHA - 默认值为 false)
QOSReserved=true|false (ALPHA - 默认值为 false)
ReadWriteOncePod=true|false (BETA - 默认值为 true)
RecoverVolumeExpansionFailure=true|false (ALPHA - 默认值为 false)
RemainingItemCount=true|false (BETA - 默认值为 true)
RotateKubeletServerCertificate=true|false (BETA - 默认值为 true)
SELinuxMountReadWriteOncePod=true|false (BETA - 默认值为 true)
SchedulerQueueingHints=true|false (BETA - 默认值为 true)
SecurityContextDeny=true|false (ALPHA - 默认值为 false)
ServiceNodePortStaticSubrange=true|false (BETA - 默认值为 true)
SidecarContainers=true|false (ALPHA - 默认值为 false)
SizeMemoryBackedVolumes=true|false (BETA - 默认值为 true)
SkipReadOnlyValidationGCE=true|false (ALPHA - 默认值为 false)
StableLoadBalancerNodeSet=true|false (BETA - 默认值为 true)
StatefulSetAutoDeletePVC=true|false (BETA - 默认值为 true)
StatefulSetStartOrdinal=true|false (BETA - 默认值为 true)
StorageVersionAPI=true|false (ALPHA - 默认值为 false)
StorageVersionHash=true|false (BETA - 默认值为 true)
TopologyAwareHints=true|false (BETA - 默认值为 true)
TopologyManagerPolicyAlphaOptions=true|false (ALPHA - 默认值为 false)
TopologyManagerPolicyBetaOptions=true|false (BETA - 默认值为 true)
TopologyManagerPolicyOptions=true|false (BETA - 默认值为 true)
UnknownVersionInteroperabilityProxy=true|false (ALPHA - 默认值为 false)
UserNamespacesSupport=true|false (ALPHA - 默认值为 false)
ValidatingAdmissionPolicy=true|false (BETA - 默认值为 false)
VolumeCapacityPriority=true|false (ALPHA - 默认值为 false)
WatchList=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
客户应在尝试获取和更新领导之间等待的时间。仅在启用了领导者选举的情况下才适用。
--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]
--version, --version=raw 打印版本信息并推出; --version=vX.Y.Z... 设置报告的版本。
--vmodule pattern=N,...
以逗号分隔的 “pattern=N” 设置列表,用于文件过滤的日志记录(仅适用于文本日志格式)。
--write-config-to string
如果设置此参数,将配置值写入此文件并退出。