kube-controller-manager

概要

Kubernetes 控制器管理器是一个守护进程,它内嵌了 Kubernetes 内置的核心控制循环。在机器人和自动化应用中,控制循环是一个非终止循环,用于调节系统状态。在 Kubernetes 中,控制器是一个控制循环,它通过 apiserver 观察集群的共享状态,并尝试对当前状态进行修改以趋向期望状态。Kubernetes 当前内置的控制器示例包括:Replication Controller、Endpoints Controller、Namespace Controller 和 ServiceAccounts Controller。

kube-controller-manager [flags]

选项

--allocate-node-cidrs

是否为 Pods 分配 CIDR 并将其设置在云提供商上。需要 --cluster-cidr。

--allow-metric-labels stringToString     Default: []

该映射表示允许的指标标签及其对应值的允许列表。键的格式为 <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 标志将覆盖清单文件。

--attach-detach-reconcile-sync-period duration     Default: 1m0s

卷挂载和卸载之间协调同步的等待时间。此时长必须大于一秒,并且增加此值可能会导致卷与 Pod 不匹配。

--authentication-kubeconfig string

指向 'core' kubernetes 服务器的 kubeconfig 文件,该服务器具有足够的权限来创建 tokenreviews.authentication.k8s.io。这是可选的。如果为空,所有令牌请求都将被视为匿名,并且不会在集群中查找客户端 CA。

--authentication-skip-lookup

如果为 false,将使用 authentication-kubeconfig 从集群中查找缺失的身份认证配置。

--authentication-token-webhook-cache-ttl duration     Default: 10s

缓存 Webhook 令牌认证器响应的时长。

--authentication-tolerate-lookup-failure

如果为 true,从集群中查找缺失身份认证配置的失败不会被视为致命错误。请注意,这可能导致身份认证将所有请求视为匿名。

--authorization-always-allow-paths strings     Default: "/healthz,/readyz,/livez"

授权期间跳过的 HTTP 路径列表,即这些路径无需联系 'core' kubernetes 服务器即可获得授权。

--authorization-kubeconfig string

指向 'core' kubernetes 服务器的 kubeconfig 文件,该服务器具有足够的权限来创建 subjectaccessreviews.authorization.k8s.io。这是可选的。如果为空,所有未被授权跳过的请求都将被禁止。

--authorization-webhook-cache-authorized-ttl duration     Default: 10s

缓存 Webhook 授权器 '已授权' 响应的时长。

--authorization-webhook-cache-unauthorized-ttl duration     Default: 10s

缓存 Webhook 授权器 '未授权' 响应的时长。

--bind-address string     Default: 0.0.0.0

监听 --secure-port 端口的 IP 地址。关联的接口必须能被集群其余部分以及 CLI/Web 客户端访问。如果为空或未指定地址 (0.0.0.0 或 ::),将使用所有接口和 IP 地址族。

--cert-dir string

TLS 证书所在的目录。如果提供了 --tls-cert-file 和 --tls-private-key-file,此标志将被忽略。

--cidr-allocator-type string     Default: "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 时使用;如果为 false,此选项将被忽略。

--cluster-name string     Default: "kubernetes"

集群的实例前缀。

--cluster-signing-cert-file string

包含用于颁发集群范围证书的 PEM 编码的 X509 CA 证书的文件名。如果指定了此选项,则不能指定更具体的 --cluster-signing-* 标志。

--cluster-signing-duration duration     Default: 8760h0m0s

签名证书的最长有效期。单个 CSR 可以通过设置 spec.expirationSeconds 请求更短的证书。

--cluster-signing-key-file string

包含用于签名集群范围证书的 PEM 编码的 RSA 或 ECDSA 私钥的文件名。如果指定了此选项,则不能指定更具体的 --cluster-signing-* 标志。

--cluster-signing-kube-apiserver-client-cert-file string

包含用于颁发 kubernetes.io/kube-apiserver-client 签名者证书的 PEM 编码的 X509 CA 证书的文件名。如果指定了此选项,则不能设置 --cluster-signing-{cert,key}-file。

--cluster-signing-kube-apiserver-client-key-file string

包含用于签名 kubernetes.io/kube-apiserver-client 签名者证书的 PEM 编码的 RSA 或 ECDSA 私钥的文件名。如果指定了此选项,则不能设置 --cluster-signing-{cert,key}-file。

--cluster-signing-kubelet-client-cert-file string

包含用于颁发 kubernetes.io/kube-apiserver-client-kubelet 签名者证书的 PEM 编码的 X509 CA 证书的文件名。如果指定了此选项,则不能设置 --cluster-signing-{cert,key}-file。

--cluster-signing-kubelet-client-key-file string

包含用于签名 kubernetes.io/kube-apiserver-client-kubelet 签名者证书的 PEM 编码的 RSA 或 ECDSA 私钥的文件名。如果指定了此选项,则不能设置 --cluster-signing-{cert,key}-file。

--cluster-signing-kubelet-serving-cert-file string

包含用于颁发 kubernetes.io/kubelet-serving 签名者证书的 PEM 编码的 X509 CA 证书的文件名。如果指定了此选项,则不能设置 --cluster-signing-{cert,key}-file。

--cluster-signing-kubelet-serving-key-file string

包含用于签名 kubernetes.io/kubelet-serving 签名者证书的 PEM 编码的 RSA 或 ECDSA 私钥的文件名。如果指定了此选项,则不能设置 --cluster-signing-{cert,key}-file。

--cluster-signing-legacy-unknown-cert-file string

包含用于颁发 kubernetes.io/legacy-unknown 签名者证书的 PEM 编码的 X509 CA 证书的文件名。如果指定了此选项,则不能设置 --cluster-signing-{cert,key}-file。

--cluster-signing-legacy-unknown-key-file string

包含用于签名 kubernetes.io/legacy-unknown 签名者证书的 PEM 编码的 RSA 或 ECDSA 私钥的文件名。如果指定了此选项,则不能设置 --cluster-signing-{cert,key}-file。

--concurrent-cron-job-syncs int32     Default: 5

允许并发同步的 Cron Job 对象数量。数量越大 = Job 响应越及时,但 CPU(和网络)负载越高。

--concurrent-daemonset-syncs int32     Default: 2

允许并发同步的 DaemonSet 对象数量。数量越大 = DaemonSet 响应越及时,但 CPU(和网络)负载越高。

--concurrent-deployment-syncs int32     Default: 5

允许并发同步的 Deployment 对象数量。数量越大 = Deployment 响应越及时,但 CPU(和网络)负载越高。

--concurrent-endpoint-syncs int32     Default: 5

将并发执行的 Endpoint 同步操作数量。数量越大 = Endpoint 更新速度越快,但 CPU(和网络)负载越高。

--concurrent-ephemeralvolume-syncs int32     Default: 5

将并发执行的临时卷同步操作数量。数量越大 = 临时卷更新速度越快,但 CPU(和网络)负载越高。

--concurrent-gc-syncs int32     Default: 20

允许并发同步的垃圾收集器工作进程数量。

--concurrent-horizontal-pod-autoscaler-syncs int32     Default: 5

允许并发同步的 Horizontal Pod Autoscaler 对象数量。数量越大 = Horizontal Pod Autoscaler 对象处理响应越及时,但 CPU(和网络)负载越高。

--concurrent-job-syncs int32     Default: 5

允许并发同步的 Job 对象数量。数量越大 = Job 响应越及时,但 CPU(和网络)负载越高。

--concurrent-namespace-syncs int32     Default: 10

允许并发同步的 Namespace 对象数量。数量越大 = Namespace 终止响应越及时,但 CPU(和网络)负载越高。

--concurrent-rc-syncs int32     Default: 5

允许并发同步的 Replication Controller 数量。数量越大 = 副本管理响应越及时,但 CPU(和网络)负载越高。

--concurrent-replicaset-syncs int32     Default: 5

允许并发同步的 Replica Set 数量。数量越大 = 副本管理响应越及时,但 CPU(和网络)负载越高。

--concurrent-resource-quota-syncs int32     Default: 5

允许并发同步的 Resource Quota 数量。数量越大 = 配额管理响应越及时,但 CPU(和网络)负载越高。

--concurrent-service-endpoint-syncs int32     Default: 5

将并发执行的服务 Endpoint 同步操作数量。数量越大 = EndpointSlice 更新速度越快,但 CPU(和网络)负载越高。默认为 5。

--concurrent-service-syncs int32     Default: 1

允许并发同步的服务数量。数量越大 = 服务管理响应越及时,但 CPU(和网络)负载越高。

--concurrent-serviceaccount-token-syncs int32     Default: 5

允许并发同步的 Service Account Token 对象数量。数量越大 = 令牌生成响应越及时,但 CPU(和网络)负载越高。

--concurrent-statefulset-syncs int32     Default: 5

允许并发同步的 StatefulSet 对象数量。数量越大 = StatefulSet 响应越及时,但 CPU(和网络)负载越高。

--concurrent-ttl-after-finished-syncs int32     Default: 5

允许并发同步的 ttl-after-finished-controller 工作进程数量。

--concurrent-validating-admission-policy-status-syncs int32     Default: 5

允许并发同步的 ValidatingAdmissionPolicyStatusController 工作进程数量。

--configure-cloud-routes     Default: true

是否在云提供商上配置由 allocate-node-cidrs 分配的 CIDR。

--contention-profiling

如果启用了 profiling,则启用 block profiling。

--controller-start-interval duration

启动控制器管理器之间的间隔。

--controllers strings     Default: "*"

要启用的控制器列表。'*' 启用所有默认启用的控制器,'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, device-taint-eviction-controller, disruption-controller, endpoints-controller, endpointslice-controller, endpointslice-mirroring-controller, ephemeral-volume-controller, garbage-collector-controller, horizontal-pod-autoscaler-controller, job-controller, kube-apiserver-serving-clustertrustbundle-publisher-controller, legacy-serviceaccount-token-cleaner-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, resourceclaim-controller, resourcequota-controller, root-ca-certificate-publisher-controller, selinux-warning-controller, service-cidr-controller, service-lb-controller, serviceaccount-controller, serviceaccount-token-controller, statefulset-controller, storage-version-migrator-controller, storageversion-garbage-collector-controller, taint-eviction-controller, token-cleaner-controller, ttl-after-finished-controller, ttl-controller, validatingadmissionpolicy-status-controller, volumeattributesclass-protection-controller
默认禁用的控制器:bootstrap-signer-controller, selinux-warning-controller, token-cleaner-controller

--disable-attach-detach-reconcile-sync

禁用卷挂载/卸载协调同步。禁用此功能可能导致卷与 Pod 不匹配。请谨慎使用。

--disable-force-detach-on-timeout

阻止基于最大卸载时间和节点状态的强制卸载卷。如果此标志设置为 true,则必须使用非优雅节点关机功能来从节点故障中恢复。请参阅 https://k8s.io/docs/storage-disable-force-detach-on-timeout/。

--disable-http2-serving

如果为 true,则禁用 HTTP2 服务 [默认值=false]

--disabled-metrics strings

此标志提供了一个用于处理行为异常指标的应急出口。你必须提供完全限定的指标名称才能禁用它。免责声明:禁用指标的优先级高于显示隐藏指标。

--emulated-version strings

不同组件模拟其能力的版本 (API、特性等)。
如果设置,组件将模拟此版本的行为,而不是底层二进制版本的行为。
版本格式只能是 major.minor,例如:'--emulated-version=wardle=1.2,kube=1.31'。
选项为:kube=1.31..1.33(默认值:1.33)
如果未指定组件,默认为 "kube"

--enable-dynamic-provisioning     Default: true

为支持动态配置的环境启用动态配置。

--enable-garbage-collector     Default: true

启用通用垃圾收集器。必须与 kube-apiserver 的相应标志保持同步。

--enable-hostpath-provisioner

在没有云提供商的情况下运行时启用 HostPath PV 配置。这允许测试和开发配置功能。HostPath 配置在任何方面都不受支持,在多节点集群中不起作用,并且不应用于测试或开发以外的任何目的。

--enable-leader-migration

是否启用控制器领导者迁移。

--endpoint-updates-batch-period duration

Endpoints 更新的批量处理周期长度。处理 Pod 变更将延迟此时长,以便将其与潜在的后续更新合并,从而减少 Endpoints 更新的总次数。数值越大 = Endpoint 编程延迟越高,但生成的 Endpoints 版本数量越少。

--endpointslice-updates-batch-period duration

EndpointSlice 更新的批量处理周期长度。处理 Pod 变更将延迟此时长,以便将其与潜在的后续更新合并,从而减少 Endpoints 更新的总次数。数值越大 = Endpoint 编程延迟越高,但生成的 Endpoints 版本数量越少。

--external-cloud-volume-plugin string

当 cloud provider 设置为 external 时使用的插件。可以为空,仅在 cloud-provider 设置为 external 时才应设置。目前用于允许 node-ipam-controller、persistentvolume-binder-controller、persistentvolume-expander-controller 和 attach-detach-controller 对 in-tree 云提供商工作。

--feature-gates colonSeparatedMultimapStringString

逗号分隔的 component:key=value 对列表,描述了不同组件的 alpha/实验性特性的特性门控。
如果未指定组件,默认为 "kube"。此标志可以重复调用。例如:--feature-gates 'wardle:featureA=true,wardle:featureB=false' --feature-gates 'kube:featureC=true' 选项为
kube:APIResponseCompression=true|false (BETA - default=true)
kube:APIServerIdentity=true|false (BETA - default=true)
kube:APIServerTracing=true|false (BETA - default=true)
kube:APIServingWithRoutine=true|false (ALPHA - default=false)
kube:AllAlpha=true|false (ALPHA - default=false)
kube:AllBeta=true|false (BETA - default=false)
kube:AllowParsingUserUIDFromCertAuth=true|false (BETA - default=true)
kube:AllowUnsafeMalformedObjectDeletion=true|false (ALPHA - default=false)
kube:AnonymousAuthConfigurableEndpoints=true|false (BETA - default=true)
kube:AuthorizeNodeWithSelectors=true|false (BETA - default=true)
kube:AuthorizeWithSelectors=true|false (BETA - default=true)
kube:CBORServingAndStorage=true|false (ALPHA - default=false)
kube:CPUManagerPolicyAlphaOptions=true|false (ALPHA - default=false)
kube:CPUManagerPolicyBetaOptions=true|false (BETA - default=true)
kube:CSIVolumeHealth=true|false (ALPHA - default=false)
kube:ClientsAllowCBOR=true|false (ALPHA - default=false)
kube:ClientsPreferCBOR=true|false (ALPHA - default=false)
kube:CloudControllerManagerWebhook=true|false (ALPHA - default=false)
kube:ClusterTrustBundle=true|false (BETA - default=false)
kube:ClusterTrustBundleProjection=true|false (BETA - default=false)
kube:ComponentFlagz=true|false (ALPHA - default=false)
kube:ComponentStatusz=true|false (ALPHA - default=false)
kube:ConcurrentWatchObjectDecode=true|false (BETA - default=false)
kube:ConsistentListFromCache=true|false (BETA - default=true)
kube:ContainerCheckpoint=true|false (BETA - default=true)
kube:ContainerStopSignals=true|false (ALPHA - default=false)
kube:ContextualLogging=true|false (BETA - default=true)
kube:CoordinatedLeaderElection=true|false (BETA - default=false)
kube:CrossNamespaceVolumeDataSource=true|false (ALPHA - default=false)
kube:CustomCPUCFSQuotaPeriod=true|false (ALPHA - default=false)
kube:DRAAdminAccess=true|false (ALPHA - default=false)
kube:DRADeviceTaints=true|false (ALPHA - default=false)
kube:DRAPartitionableDevices=true|false (ALPHA - default=false)
kube:DRAPrioritizedList=true|false (ALPHA - default=false)
kube:DRAResourceClaimDeviceStatus=true|false (BETA - default=true)
kube:DeclarativeValidation=true|false (BETA - default=true)
kube:DeclarativeValidationTakeover=true|false (BETA - default=false)
kube:DeploymentReplicaSetTerminatingReplicas=true|false (ALPHA - default=false)
kube:DisableAllocatorDualWrite=true|false (BETA - default=false)
kube:DisableCPUQuotaWithExclusiveCPUs=true|false (BETA - default=true)
kube:DynamicResourceAllocation=true|false (BETA - default=false)
kube:EventedPLEG=true|false (ALPHA - default=false)
kube:ExternalServiceAccountTokenSigner=true|false (ALPHA - default=false)
kube:GracefulNodeShutdown=true|false (BETA - default=true)
kube:GracefulNodeShutdownBasedOnPodPriority=true|false (BETA - default=true)
kube:HPAConfigurableTolerance=true|false (ALPHA - default=false)
kube:HPAScaleToZero=true|false (ALPHA - default=false)
kube:ImageMaximumGCAge=true|false (BETA - default=true)
kube:ImageVolume=true|false (BETA - default=false)
kube:InOrderInformers=true|false (BETA - default=true)
kube:InPlacePodVerticalScaling=true|false (BETA - default=true)
kube:InPlacePodVerticalScalingExclusiveCPUs=true|false (ALPHA - default=false)
kube:InTreePluginPortworxUnregister=true|false (ALPHA - default=false)
kube:InformerResourceVersion=true|false (ALPHA - default=false)
kube:JobManagedBy=true|false (BETA - default=true)
kube:JobPodReplacementPolicy=true|false (BETA - default=true)
kube:KubeletCgroupDriverFromCRI=true|false (BETA - default=true)
kube:KubeletCrashLoopBackOffMax=true|false (ALPHA - default=false)
kube:KubeletEnsureSecretPulledImages=true|false (ALPHA - default=false)
kube:KubeletFineGrainedAuthz=true|false (BETA - default=true)
kube:KubeletInUserNamespace=true|false (ALPHA - default=false)
kube:KubeletPSI=true|false (ALPHA - default=false)
kube:KubeletPodResourcesDynamicResources=true|false (ALPHA - default=false)
kube:KubeletPodResourcesGet=true|false (ALPHA - default=false)
kube:KubeletSeparateDiskGC=true|false (BETA - default=true)
kube:KubeletServiceAccountTokenForCredentialProviders=true|false (ALPHA - default=false)
kube:KubeletTracing=true|false (BETA - default=true)
kube:ListFromCacheSnapshot=true|false (ALPHA - default=false)
kube:LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (BETA - default=false)
kube:LoggingAlphaOptions=true|false (ALPHA - default=false)
kube:LoggingBetaOptions=true|false (BETA - default=true)
kube:MatchLabelKeysInPodTopologySpread=true|false (BETA - default=true)
kube:MaxUnavailableStatefulSet=true|false (ALPHA - default=false)
kube:MemoryQoS=true|false (ALPHA - default=false)
kube:MutableCSINodeAllocatableCount=true|false (ALPHA - default=false)
kube:MutatingAdmissionPolicy=true|false (ALPHA - default=false)
kube:NodeLogQuery=true|false (BETA - default=false)
kube:NodeSwap=true|false (BETA - default=true)
kube:OpenAPIEnums=true|false (BETA - default=true)
kube:OrderedNamespaceDeletion=true|false (BETA - default=true)
kube:PodAndContainerStatsFromCRI=true|false (ALPHA - default=false)
kube:PodDeletionCost=true|false (BETA - default=true)
kube:PodLevelResources=true|false (ALPHA - default=false)
kube:PodLifecycleSleepAction=true|false (BETA - default=true)
kube:PodLifecycleSleepActionAllowZero=true|false (BETA - default=true)
kube:PodLogsQuerySplitStreams=true|false (ALPHA - default=false)
kube:PodObservedGenerationTracking=true|false (ALPHA - default=false)
kube:PodReadyToStartContainersCondition=true|false (BETA - default=true)
kube:PodTopologyLabelsAdmission=true|false (ALPHA - default=false)
kube:PortForwardWebsockets=true|false (BETA - default=true)
kube:PreferSameTrafficDistribution=true|false (ALPHA - default=false)
kube:ProcMountType=true|false (Beta - 默认=true)
kube:QOSReserved=true|false (Alpha - 默认=false)
kube:RecoverVolumeExpansionFailure=true|false (Beta - 默认=true)
kube:ReduceDefaultCrashLoopBackOffDecay=true|false (Alpha - 默认=false)
kube:RelaxedDNSSearchValidation=true|false (Beta - 默认=true)
kube:RelaxedEnvironmentVariableValidation=true|false (Beta - 默认=true)
kube:ReloadKubeletServerCertificateFile=true|false (Beta - 默认=true)
kube:RemoteRequestHeaderUID=true|false (Beta - 默认=true)
kube:ResilientWatchCacheInitialization=true|false (Beta - 默认=true)
kube:ResourceHealthStatus=true|false (Alpha - 默认=false)
kube:RotateKubeletServerCertificate=true|false (Beta - 默认=true)
kube:RuntimeClassInImageCriApi=true|false (Alpha - 默认=false)
kube:SELinuxChangePolicy=true|false (Beta - 默认=true)
kube:SELinuxMount=true|false (Beta - 默认=false)
kube:SELinuxMountReadWriteOncePod=true|false (Beta - 默认=true)
kube:SchedulerAsyncPreemption=true|false (Beta - 默认=true)
kube:SchedulerPopFromBackoffQ=true|false (Beta - 默认=true)
kube:SchedulerQueueingHints=true|false (Beta - 默认=true)
kube:SeparateTaintEvictionController=true|false (Beta - 默认=true)
kube:ServiceAccountNodeAudienceRestriction=true|false (Beta - 默认=true)
kube:StorageCapacityScoring=true|false (Alpha - 默认=false)
kube:StorageVersionAPI=true|false (Alpha - 默认=false)
kube:StorageVersionHash=true|false (Beta - 默认=true)
kube:StorageVersionMigrator=true|false (Alpha - 默认=false)
kube:StreamingCollectionEncodingToJSON=true|false (Beta - 默认=true)
kube:StreamingCollectionEncodingToProtobuf=true|false (Beta - 默认=true)
kube:StrictIPCIDRValidation=true|false (Alpha - 默认=false)
kube:StructuredAuthenticationConfiguration=true|false (Beta - 默认=true)
kube:SupplementalGroupsPolicy=true|false (Beta - 默认=true)
kube:SystemdWatchdog=true|false (Beta - 默认=true)
kube:TopologyManagerPolicyAlphaOptions=true|false (Alpha - 默认=false)
kube:TopologyManagerPolicyBetaOptions=true|false (Beta - 默认=true)
kube:TranslateStreamCloseWebsocketRequests=true|false (Beta - 默认=true)
kube:UnauthenticatedHTTP2DOSMitigation=true|false (Beta - 默认=true)
kube:UnknownVersionInteroperabilityProxy=true|false (Alpha - 默认=false)
kube:UserNamespacesPodSecurityStandards=true|false (Alpha - 默认=false)
kube:UserNamespacesSupport=true|false (Beta - 默认=true)
kube:VolumeAttributesClass=true|false (Beta - 默认=false)
kube:WatchCacheInitializationPostStartHook=true|false (Beta - 默认=false)
kube:WatchList=true|false (Beta - 默认=false)
kube:WatchListClient=true|false (Beta - 默认=false)
kube:WinDSR=true|false (Beta - 默认=true)
kube:WinOverlay=true|false (Beta - 默认=true)
kube:WindowsCPUAndMemoryAffinity=true|false (Alpha - 默认=false)
kube:WindowsGracefulNodeShutdown=true|false (Alpha - 默认=false)

--flex-volume-plugin-dir string     默认值: "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/"

flex volume 插件应在其目录中搜索其他第三方卷插件的完整路径。

-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

水平 Pod 自动伸缩器考虑伸缩时,期望与实际指标比率的最小变化(从 1.0 开始)。

--http2-max-streams-per-connection int

服务器为客户端设置的 HTTP/2 连接中最大流数量限制。零表示使用 golang 的默认值。

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

与 kubernetes apiserver 通信时使用的突发量。

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

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

--kube-api-qps float     默认值: 20

与 kubernetes apiserver 通信时使用的 QPS。

--kubeconfig string

kubeconfig 文件的路径,包含授权信息和主节点位置信息(主节点位置可以通过 master 标志覆盖)。

--large-cluster-size-threshold int32     默认值: 50

节点生命周期控制器(node-lifecycle-controller)为了驱逐逻辑的目的,将集群视为大型集群的节点数量阈值。对于此大小或更小的集群,--secondary-node-eviction-rate 会被隐式覆盖为 0。注意:如果 Node 驻留在多个区域中,此阈值将被视为每个区域的区域节点大小阈值,以独立确定 Node 驱逐速率。

--leader-elect     默认值: true

启动 Leader Election 客户端并在执行主循环之前获得领导权。当运行用于高可用性的复制组件时启用此选项。

--leader-elect-lease-duration duration     默认值: 15s

非领导者候选者在观察到领导权续约后,等待尝试获取由其领导但未续约的领导者槽位的领导权的时间。这实际上是领导者在被另一个候选者取代之前可以停止的最大持续时间。这仅在启用 Leader Election 时适用。

--leader-elect-renew-deadline duration     默认值: 10s

活动主节点在停止领导之前尝试续约领导者槽位的间隔。这必须小于租约持续时间。这仅在启用 Leader Election 时适用。

--leader-elect-resource-lock string     默认值: "leases"

在 Leader Election 期间用于锁定的资源对象类型。支持的选项是 'leases'。

--leader-elect-resource-name string     默认值: "kube-controller-manager"

在 Leader Election 期间用于锁定的资源对象的名称。

--leader-elect-resource-namespace string     默认值: "kube-system"

在 Leader Election 期间用于锁定的资源对象的命名空间。

--leader-elect-retry-period duration     默认值: 2s

客户端在尝试获取和续约领导权之间应等待的时间。这仅在启用 Leader Election 时适用。

--leader-migration-config string

控制器领导者迁移配置文件的路径,或者留空以使用反映控制器管理器默认配置的值。配置文件应为 LeaderMigrationConfiguration 类型,group 为 controllermanager.config.k8s.io,version 为 v1alpha1。

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

遗留 ServiceAccount Token 自上次使用后,到可以被删除为止的时间周期。

--log-flush-frequency duration     默认值: 5s

两次日志刷新的最大秒数

--log-text-info-buffer-size quantity

[Alpha] 在拆分输出流的文本格式中,info 消息可以缓冲一段时间以提高性能。默认值零字节禁用缓冲。大小可以指定为字节数 (512)、1000 的倍数 (1K)、1024 的倍数 (2Ki) 或这些的幂 (3M, 4G, 5Mi, 6Gi)。启用 LoggingAlphaOptions 特性门才能使用此选项。

--log-text-split-stream

[Alpha] 在文本格式中,将错误消息写入 stderr,将 info 消息写入 stdout。默认是将单个流写入 stdout。启用 LoggingAlphaOptions 特性门才能使用此选项。

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

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

--master string

Kubernetes API server 的地址(覆盖 kubeconfig 中的任何值)。

--max-endpoints-per-slice int32     默认值: 100

将添加到 EndpointSlice 的最大端点数。每个切片更多的端点将导致更少的端点切片,但资源更大。默认为 100。

--min-resync-period duration     默认值: 12h0m0s

反射器(reflector)中的重同步周期将在 MinResyncPeriod 和 2*MinResyncPeriod 之间随机。

--mirroring-concurrent-service-endpoint-syncs int32     默认值: 5

EndpointSlice 镜像控制器将并发执行的服务端点同步操作的数量。数量越大 = 端点切片更新越快,但 CPU(和网络)负载越高。默认为 5。

--mirroring-endpointslice-updates-batch-period duration

EndpointSlice 镜像控制器的 EndpointSlice 更新批处理周期长度。EndpointSlice 更改的处理将延迟此持续时间,以便与潜在的后续更新合并,并减少 EndpointSlice 更新的总数。数量越大 = 端点编程延迟越高,但生成的端点版本数量越少。

--mirroring-max-endpoints-per-subset int32     默认值: 1000

EndpointSlice 镜像控制器将添加到 EndpointSlice 的最大端点数。每个切片更多的端点将导致更少的端点切片,但资源更大。默认为 100。

--namespace-sync-period duration     默认值: 5m0s

同步 Namespace 生命周期更新的周期

--node-cidr-mask-size int32

集群中节点 CIDR 的掩码大小。IPv4 的默认值为 24,IPv6 的默认值为 64。

--node-cidr-mask-size-ipv4 int32

双栈集群中 IPv4 节点 CIDR 的掩码大小。默认值为 24。

--node-cidr-mask-size-ipv6 int32

双栈集群中 IPv6 节点 CIDR 的掩码大小。默认值为 64。

--node-eviction-rate float     默认值: 0.1

当区域处于健康状态时(健康/不健康的定义参见 --unhealthy-zone-threshold),在 Node 故障情况下每秒删除 Pod 的 Node 数量。在非多区域集群中,区域指整个集群。

--node-monitor-grace-period duration     默认值: 50s

我们允许运行中的 Node 在被标记为不健康之前不响应的时间。必须是 kubelet nodeStatusUpdateFrequency 的 N 倍以上,其中 N 表示 kubelet 允许发送 Node 状态的重试次数。此值还应大于 HTTP2_PING_TIMEOUT_SECONDS 和 HTTP2_READ_IDLE_TIMEOUT_SECONDS 之和。

--node-monitor-period duration     默认值: 5s

云节点生命周期控制器(cloud-node-lifecycle-controller)中同步 NodeStatus 的周期。

--node-startup-grace-period duration     默认值: 1m0s

我们允许启动中的 Node 在被标记为不健康之前不响应的时间。

--permit-address-sharing

如果为 true,绑定端口时将使用 SO_REUSEADDR。这允许同时绑定到通配符 IP(如 0.0.0.0)和特定 IP,并避免等待内核释放处于 TIME_WAIT 状态的 socket。[默认值=false]

--permit-port-sharing

如果为 true,绑定端口时将使用 SO_REUSEPORT,允许多个实例绑定到同一地址和端口。[默认值=false]

--profiling     默认值: true

通过 Web 界面 host:port/debug/pprof/ 启用 Profiling

--pv-recycler-increment-timeout-nfs int32     默认值: 30

为 NFS 清理 Pod 的 ActiveDeadlineSeconds 添加的每 Gi 增量时间

--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 的 ActiveDeadlineSeconds 添加的每 Gi 增量时间。此选项仅用于开发和测试,在多节点集群中不起作用。

--pvclaimbinder-sync-period duration     默认值: 15s

同步 PersistentVolume 和 PersistentVolumeClaim 的周期

--requestheader-allowed-names strings

允许在 --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-uid-headers strings

要检查 UID 信息的请求头列表。建议使用 X-Remote-Uid。需要启用 RemoteRequestHeaderUID 特性。

--requestheader-username-headers strings     默认值: "x-remote-user"

要检查用户名的请求头列表。通常使用 X-Remote-User。

--resource-quota-sync-period duration     默认值: 5m0s

同步系统中配额使用状态的周期

--root-ca-file string

如果设置,此根证书颁发机构将包含在 ServiceAccount 的 token secret 中。这必须是一个有效的 PEM 编码的 CA 捆绑包。

--route-reconciliation-period duration     默认值: 10s

云提供商为 Node 创建的路由的协调周期。

--secondary-node-eviction-rate float     默认值: 0.01

当区域不健康时(健康/不健康的定义参见 --unhealthy-zone-threshold),在 Node 故障情况下每秒删除 Pod 的 Node 数量。在非多区域集群中,区域指整个集群。如果集群规模小于 --large-cluster-size-threshold,此值会被隐式覆盖为 0。

--secure-port int     默认值: 10257

用于提供带认证和授权的 HTTPS 的端口。如果为 0,则完全不提供 HTTPS。

--service-account-private-key-file string

设置后启用基于遗留 Secret 的 token。包含用于签署 ServiceAccount Token 的 PEM 编码的 RSA 或 ECDSA 私钥的文件名。

--service-cluster-ip-range string

集群中 Service 的 CIDR 范围。仅在 --allocate-node-cidrs=true 时使用;如果为 false,此选项将被忽略。

--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_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_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_GCM_SHA384, 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"。

--unhealthy-zone-threshold float     默认值: 0.55

一个区域中未处于 Ready 状态的 Node 的比例(最少 3 个),超过此比例则将该区域视为不健康。

--use-service-account-credentials

如果为 true,为每个控制器使用单独的 ServiceAccount 凭据。

-v, --v int

日志级别详细程度的数字

--version version[=true]

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

--vmodule pattern=N,...

用于文件过滤日志记录的 pattern=N 设置列表,以逗号分隔(仅适用于文本日志格式)

此页面是自动生成的。

如果您计划报告此页面的问题,请在您的议题描述中提及此页面是自动生成的。修复可能需要在 Kubernetes 项目中的其他地方进行。

最后修改于 2025 年 4 月 24 日上午 7:58 (太平洋标准时间): v1.33 组件参考 (05a3c54633)