kubelet

简介

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

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

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

文件(File):利用命令行参数传递路径。kubelet 周期性地监视此路径下的文件是否有更新。 监视周期默认为 20s,且可通过参数进行配置。

HTTP 端点(HTTP endpoint):利用命令行参数指定 HTTP 端点。 此端点的监视周期默认为 20 秒,也可以使用参数进行配置。

HTTP 服务器(HTTP server):kubelet 还可以侦听 HTTP 并响应简单的 API (目前没有完整规范)来提交新的清单。

kubelet [flags]

选项

--add-dir-header
设置为 true 表示将文件目录添加到日志消息的头部
--address ip     默认值:0.0.0.0
kubelet 用来提供服务的 IP 地址(设置为0.0.0.0 表示使用所有 IPv4 接口, 设置为 :: 表示使用所有 IPv6 接口)。已弃用:应在 --config 所给的 配置文件中进行设置。(进一步了解
--allowed-unsafe-sysctls strings
用逗号分隔的字符串序列设置允许使用的非安全的 sysctls 或 sysctl 模式(以 * 结尾) 。 使用此参数时风险自担。已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--alsologtostderr
设置为 true 表示将日志输出到文件的同时输出到 stderr
--anonymous-auth     默认值:true
设置为 true 表示 kubelet 服务器可以接受匿名请求。未被任何认证组件拒绝的请求将被视为匿名请求。 匿名请求的用户名为 system:anonymous,用户组为 system:unauthenticated。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--authentication-token-webhook
使用 TokenReview API 对持有者令牌进行身份认证。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--authentication-token-webhook-cache-ttl duration     默认值:2m0s
对 Webhook 令牌认证组件所返回的响应的缓存时间。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--authorization-mode string
kubelet 服务器的鉴权模式。可选值包括:AlwaysAllowWebhookWebhook 模式使用 SubjectAccessReview API 鉴权。 当 --config 参数未被设置时,默认值为 AlwaysAllow,当使用了 --config 时,默认值为 Webhook。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--authorization-webhook-cache-authorized-ttl duration     默认值:5m0s
对 Webhook 认证组件所返回的 “Authorized(已授权)” 应答的缓存时间。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--authorization-webhook-cache-unauthorized-ttl duration     默认值:30s
对 Webhook 认证组件所返回的 “Unauthorized(未授权)” 应答的缓存时间。 --config 时,默认值为 Webhook。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--azure-container-registry-config string
包含 Azure 容器镜像库配置信息的文件的路径。
--bootstrap-kubeconfig string
某 kubeconfig 文件的路径,该文件将用于获取 kubelet 的客户端证书。 如果 --kubeconfig 所指定的文件不存在,则使用引导所用 kubeconfig 从 API 服务器请求客户端证书。成功后,将引用生成的客户端证书和密钥的 kubeconfig 写入 --kubeconfig 所指定的路径。客户端证书和密钥文件将存储在 --cert-dir 所指的目录。
--cert-dir string     默认值:/var/lib/kubelet/pki
TLS 证书所在的目录。如果设置了 --tls-cert-file--tls-private-key-file, 则此标志将被忽略。
--cgroup-driver string     默认值:cgroupfs
kubelet 用来操作本机 cgroup 时使用的驱动程序。支持的选项包括 cgroupfssystemd。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cgroup-root string     默认值:""
可选的选项,为 Pod 设置根 cgroup。容器运行时会尽可能使用此配置。 默认值 "" 意味着将使用容器运行时的默认设置。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cgroups-per-qos     默认值:true
启用创建 QoS cgroup 层次结构。此值为 true 时 kubelet 为 QoS 和 Pod 创建顶级的 cgroup。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--chaos-chance float
如果此值大于 0.0,则引入随机客户端错误和延迟。用于测试。 已启用:将在未来版本中移除。
--client-ca-file string
如果设置了此参数,则使用对应文件中机构之一检查请求中所携带的客户端证书。 若客户端证书通过身份认证,则其对应身份为其证书中所设置的 CommonName。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cloud-config string
云驱动配置文件的路径。空字符串表示没有配置文件。 已弃用:将在 1.24 或更高版本中移除,以便于从 kubelet 中去除云驱动代码。
--cloud-provider string
云服务的提供者。设置为空字符串表示在没有云驱动的情况下运行。 如果设置了此标志,则云驱动负责确定节点的名称(参考云提供商文档以确定是否以及如何使用主机名)。 已弃用:将在 1.24 或更高版本中移除,以便于从 kubelet 中去除云驱动代码。
--cluster-dns strings
DNS 服务器的 IP 地址,以逗号分隔。此标志值用于 Pod 中设置了 “dnsPolicy=ClusterFirst” 时为容器提供 DNS 服务。注意:列表中出现的所有 DNS 服务器必须包含相同的记录组, 否则集群中的名称解析可能无法正常工作。至于名称解析过程中会牵涉到哪些 DNS 服务器, 这一点无法保证。 --config 时,默认值为 Webhook。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cluster-domain string
集群的域名。如果设置了此值,kubelet 除了将主机的搜索域配置到所有容器之外,还会为其 配置所搜这里指定的域名。 --config 时,默认值为 Webhook。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cni-bin-dir string     默认值:/opt/cni/bin
<警告:alpha 特性> 此值为以逗号分隔的完整路径列表。 kubelet 将在所指定路径中搜索 CNI 插件的可执行文件。 仅当容器运行环境设置为 docker 时,此特定于 docker 的参数才有效。
--cni-cache-dir string     默认值:/var/lib/cni/cache
<警告:alpha 特性> 此值为一个目录的全路径名。CNI 将在其中缓存文件。 仅当容器运行环境设置为 docker 时,此特定于 docker 的参数才有效。
--cni-conf-dir string     默认值:/etc/cni/net.d
<警告:alpha 特性> 此值为某目录的全路径名。kubelet 将在其中搜索 CNI 配置文件。 仅当容器运行环境设置为 docker 时,此特定于 docker 的参数才有效。
--config string
kubelet 将从此标志所指的文件中加载其初始配置。此路径可以是绝对路径,也可以是相对路径。 相对路径按 kubelet 的当前工作目录起计。省略此参数时 kubelet 会使用内置的默认配置值。 命令行参数会覆盖此文件中的配置。
--container-log-max-files int32     默认值:5
设置容器的日志文件个数上限。此值必须不小于 2。 此标志只能与 --container-runtime=remote 标志一起使用。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--container-log-max-size string     默认值:10Mi
设置容器日志文件在轮换生成新文件时之前的最大值(例如,10Mi)。 此标志只能与 --container-runtime=remote 标志一起使用。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--container-runtime string     默认值:docker
要使用的容器运行时。目前支持 dockerremote
--container-runtime-endpoint string     默认值:unix:///var/run/dockershim.sock
[实验性特性] 远程运行时服务的端点。目前支持 Linux 系统上的 UNIX 套接字和 Windows 系统上的 npipe 和 TCP 端点。例如: unix:///var/run/dockershim.socknpipe:////./pipe/dockershim
--contention-profiling
当启用了性能分析时,启用锁竞争分析。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cpu-cfs-quota     默认值:true
为设置了 CPU 限制的容器启用 CPU CFS 配额保障。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cpu-cfs-quota-period duration     默认值:100ms
设置 CPU CFS 配额周期 cpu.cfs_period_us。默认使用 Linux 内核所设置的默认值 。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cpu-manager-policy string     默认值:none
要使用的 CPU 管理器策略。可选值包括:nonestatic。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--cpu-manager-reconcile-period duration     默认值:10s
<警告:alpha 特性> 设置 CPU 管理器的调和时间。例如:10s 或者 1m。 如果未设置,默认使用节点状态更新频率。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--docker-endpoint string     默认值:unix:///var/run/docker.sock
使用这里的端点与 docker 端点通信。 仅当容器运行环境设置为 docker 时,此特定于 docker 的参数才有效。
--dynamic-config-dir string
kubelet 使用此目录来保存所下载的配置,跟踪配置运行状况。 如果目录不存在,则 kubelet 创建该目录。此路径可以是绝对路径,也可以是相对路径。 相对路径从 kubelet 的当前工作目录计算。 设置此参数将启用动态 kubelet 配置。必须启用 DynamicKubeletConfig 特性门控之后才能设置此标志。 (已弃用:DynamicKubeletConfig 功能在 1.22 中已弃用,不会移至 GA。 计划在 1.24 或更高版本中从 Kubernetes 中移除。 请使用其他方式来更新 kubelet 配置。)
--enable-controller-attach-detach     默认值:true
启用 Attach/Detach 控制器来挂接和摘除调度到该节点的卷,同时禁用 kubelet 执行挂接和摘除操作。
--enable-debugging-handlers     默认值:true
启用服务器上用于日志收集和在本地运行容器和命令的端点。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--enable-server     
启用 kubelet 服务器。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--enforce-node-allocatable strings     默认值:pods
用逗号分隔的列表,包含由 kubelet 强制执行的节点可分配资源级别。 可选配置为:nonepodssystem-reservedkube-reserved。 在设置 system-reservedkube-reserved 这两个值时,同时要求设置 --system-reserved-cgroup--kube-reserved-cgroup 这两个参数。 如果设置为 none,则不需要设置其他参数。 参考相关文档。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--event-burst int32     默认值:10
事件记录的个数的突发峰值上限,在遵从 --event-qps 阈值约束的前提下 临时允许事件记录达到此数目。仅在 --event-qps 大于 0 时使用。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--event-qps int32     默认值:5
设置大于 0 的值表示限制每秒可生成的事件数量。设置为 0 表示不限制。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--eviction-hard string     默认值:imagefs.available<15%,memory.available<100Mi,nodefs.available<10%
触发 Pod 驱逐操作的一组硬性门限(例如:memory.available<1Gi (内存可用值小于 1 G))设置。在 Linux 节点上,默认值还包括 nodefs.inodesFree<5%。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--eviction-max-pod-grace-period int32
响应满足软性驱逐阈值(Soft Eviction Threshold)而终止 Pod 时使用的最长宽限期(以秒为单位)。 如果设置为负数,则遵循 Pod 的指定值。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--eviction-minimum-reclaim mapStringString
当某资源压力过大时,kubelet 将执行 Pod 驱逐操作。 此参数设置软性驱逐操作需要回收的资源的最小数量(例如:imagefs.available=2Gi)。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--eviction-pressure-transition-period duration     默认值:5m0s
kubelet 在驱逐压力状况解除之前的最长等待时间。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--eviction-soft mapStringString
设置一组驱逐阈值(例如:memory.available<1.5Gi)。 如果在相应的宽限期内达到该阈值,则会触发 Pod 驱逐操作。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--eviction-soft-grace-period mapStringString
设置一组驱逐宽限期(例如,memory.available=1m30s),对应于触发软性 Pod 驱逐操作之前软性驱逐阈值所需持续的时间长短。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--exit-on-lock-contention
设置为 true 表示当发生锁文件竞争时 kubelet 可以退出。
--experimental-allocatable-ignore-eviction     默认值:false
设置为 true 表示在计算节点可分配资源数量时忽略硬性逐出阈值设置。 参考 相关文档。 已启用:将在 1.24 或更高版本中移除。
--experimental-bootstrap-kubeconfig string
已弃用:应使用 --bootstrap-kubeconfig 标志
--experimental-check-node-capabilities-before-mount
[实验性特性] 设置为 true 表示 kubelet 在进行挂载卷操作之前要 在本节点上检查所需的组件(如可执行文件等)是否存在。 已弃用:将在 1.24 或更高版本中移除,以便使用 CSI。
--experimental-kernel-memcg-notification
设置为 true 表示 kubelet 将会集成内核的 memcg 通知机制而不是使用轮询机制来 判断是否达到了内存驱逐阈值。 此标志将在 1.24 或更高版本移除。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--experimental-log-sanitization
[试验性功能] 启用此标志之后,kubelet 会避免将标记为敏感的字段(密码、密钥、令牌等) 写入日志中。运行时的日志清理可能会带来相当的计算开销,因此不应该在 产品环境中启用。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--experimental-mounter-path string     默认值:mount
[实验性特性] 卷挂载器(mounter)的可执行文件的路径。设置为空表示使用默认挂载器 mount。 已弃用:将在 1.24 或更高版本移除以支持 CSI。
--fail-swap-on     默认值:true
设置为 true 表示如果主机启用了交换分区,kubelet 将直接失败。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--feature-gates mapStringBool
用于 alpha 实验性特性的特性开关组,每个开关以 key=value 形式表示。当前可用开关包括:
APIListChunking=true|false (BETA - 默认值为 true)
APIPriorityAndFairness=true|false (BETA - 默认值为 true)
APIResponseCompression=true|false (BETA - 默认值为 true)
APIServerIdentity=true|false (ALPHA - 默认值为 false)
AllAlpha=true|false (ALPHA - 默认值为 false)
AllBeta=true|false (BETA - 默认值为 false)
AllowInsecureBackendProxy=true|false (BETA - 默认值为 true)
AnyVolumeDataSource=true|false (ALPHA - 默认值为 false)
AppArmor=true|false (BETA - 默认值为 true)
BalanceAttachedNodeVolumes=true|false (ALPHA - 默认值为 false)
BoundServiceAccountTokenVolume=true|false (ALPHA - 默认值为 false)
CPUManager=true|false (BETA - 默认值为 true)
CSIInlineVolume=true|false (BETA - 默认值为 true)
CSIMigration=true|false (BETA - 默认值为 true)
CSIMigrationAWS=true|false (BETA - 默认值为 false)
CSIMigrationAWSComplete=true|false (ALPHA - 默认值为 false)
CSIMigrationAzureDisk=true|false (BETA - 默认值为 false)
CSIMigrationAzureDiskComplete=true|false (ALPHA - 默认值为 false)
CSIMigrationAzureFile=true|false (ALPHA - 默认值为 false)
CSIMigrationAzureFileComplete=true|false (ALPHA - 默认值为 false)
CSIMigrationGCE=true|false (BETA - 默认值为 false)
CSIMigrationGCEComplete=true|false (ALPHA - 默认值为 false)
CSIMigrationOpenStack=true|false (BETA - 默认值为 false)
CSIMigrationOpenStackComplete=true|false (ALPHA - 默认值为 false)
CSIMigrationvSphere=true|false (BETA - 默认值为 false)
CSIMigrationvSphereComplete=true|false (BETA - 默认值为 false)
CSIServiceAccountToken=true|false (ALPHA - 默认值为 false)
CSIStorageCapacity=true|false (ALPHA - 默认值为 false)
CSIVolumeFSGroupPolicy=true|false (BETA - 默认值为 true)
ConfigurableFSGroupPolicy=true|false (BETA - 默认值为 true)
CronJobControllerV2=true|false (ALPHA - 默认值为 false)
CustomCPUCFSQuotaPeriod=true|false (ALPHA - 默认值为 false)
DefaultPodTopologySpread=true|false (BETA - 默认值为 true)
DevicePlugins=true|false (BETA - 默认值为 true)
DisableAcceleratorUsageMetrics=true|false (BETA - 默认值为 true)
DownwardAPIHugePages=true|false (ALPHA - 默认值为 false)
DynamicKubeletConfig=true|false (BETA - 默认值为 true)
EfficientWatchResumption=true|false (ALPHA - 默认值为 false)
EndpointSlice=true|false (BETA - 默认值为 true)
EndpointSliceNodeName=true|false (ALPHA - 默认值为 false)
EndpointSliceProxying=true|false (BETA - 默认值为 true)
EndpointSliceTerminatingCondition=true|false (ALPHA - 默认值为 false)
EphemeralContainers=true|false (ALPHA - 默认值为 false)
ExpandCSIVolumes=true|false (BETA - 默认值为 true)
ExpandInUsePersistentVolumes=true|false (BETA - 默认值为 true)
ExpandPersistentVolumes=true|false (BETA - 默认值为 true)
ExperimentalHostUserNamespaceDefaulting=true|false (BETA - 默认值为 false)
GenericEphemeralVolume=true|false (ALPHA - 默认值为 false)
GracefulNodeShutdown=true|false (ALPHA - 默认值为 false)
HPAContainerMetrics=true|false (ALPHA - 默认值为 false)
HPAScaleToZero=true|false (ALPHA - 默认值为 false)
HugePageStorageMediumSize=true|false (BETA - 默认值为 true)
IPv6DualStack=true|false (ALPHA - 默认值为 false)
ImmutableEphemeralVolumes=true|false (BETA - 默认值为 true)
KubeletCredentialProviders=true|false (ALPHA - 默认值为 false)
KubeletPodResources=true|false (BETA - 默认值为 true)
LegacyNodeRoleBehavior=true|false (BETA - 默认值为 true)
LocalStorageCapacityIsolation=true|false (BETA - 默认值为 true)
LocalStorageCapacityIsolationFSQuotaMonitoring=true|false (ALPHA - 默认值为 false)
MixedProtocolLBService=true|false (ALPHA - 默认值为 false)
NodeDisruptionExclusion=true|false (BETA - 默认值为 true)
NonPreemptingPriority=true|false (BETA - 默认值为 true)
PodDisruptionBudget=true|false (BETA - 默认值为 true)
PodOverhead=true|false (BETA - 默认值为 true)
ProcMountType=true|false (ALPHA - 默认值为 false)
QOSReserved=true|false (ALPHA - 默认值为 false)
RemainingItemCount=true|false (BETA - 默认值为 true)
RemoveSelfLink=true|false (BETA - 默认值为 true)
RootCAConfigMap=true|false (BETA - 默认值为 true)
RotateKubeletServerCertificate=true|false (BETA - 默认值为 true)
RunAsGroup=true|false (BETA - 默认值为 true)
SeccompDefault=true|false (ALPHA - 默认值为 false)
ServiceInternalTrafficPolicy=true|false (BETA - 默认值为 true)
ServiceLBNodePortControl=true|false (BETA - 默认值为 true)
ServiceLoadBalancerClass=true|false (BETA - 默认值为 true)
SizeMemoryBackedVolumes=true|false (BETA - 默认值为 true)
StatefulSetAutoDeletePVC=true|false (ALPHA - 默认值为 false)
StatefulSetMinReadySeconds=true|false (BETA - 默认值为 true)
StorageVersionAPI=true|false (ALPHA - 默认值为 false)
StorageVersionHash=true|false (BETA - 默认值为 true)
SuspendJob=true|false (BETA - 默认值为 true)
TopologyAwareHints=true|false (BETA - 默认值为 true)
TopologyManager=true|false (BETA - 默认值为 true)
VolumeCapacityPriority=true|false (ALPHA - 默认值为 false)
WinDSR=true|false (ALPHA - 默认值为 false)
WinOverlay=true|false (BETA - 默认值为 true)
WindowsHostProcessContainers=true|false (BETA - 默认值为 true)
csiMigrationRBD=true|false (ALPHA - 默认值为 false)
已弃用: 应在 --config 所给的配置文件中进行设置。 (进一步了解
--file-check-frequency duration     默认值:20s
检查配置文件中新数据的时间间隔。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--hairpin-mode string     默认值:promiscuous-bridge
设置 kubelet 执行发夹模式(hairpin)网络地址转译的方式。 该模式允许后端端点对其自身服务的访问能够再次经由负载均衡转发回自身。 可选项包括 promiscuous-bridgehairpin-vethnone。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--healthz-bind-address ip     默认值:127.0.0.1
用于运行 healthz 服务器的 IP 地址(设置为 0.0.0.0 表示使用所有 IPv4 接口, 设置为 :: 表示使用所有 IPv6 接口。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--healthz-port int32     默认值:10248
本地 healthz 端点使用的端口(设置为 0 表示禁用)。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
-h, --help
kubelet 操作的帮助命令
--hostname-override string
如果为非空,将使用此字符串而不是实际的主机名作为节点标识。如果设置了 --cloud-provider,则云驱动将确定节点的名称 (请查阅云服务商文档以确定是否以及如何使用主机名)。
--housekeeping-interval duration     默认值:10s
清理容器操作的时间间隔。
--http-check-frequency duration     默认值:20s
HTTP 服务以获取新数据的时间间隔。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--image-credential-provider-bin-dir string
指向凭据提供组件可执行文件所在目录的路径。
--image-credential-provider-config string
指向凭据提供插件配置文件所在目录的路径。
--image-gc-high-threshold int32     默认值:85
镜像垃圾回收上限。磁盘使用空间达到该百分比时,镜像垃圾回收将持续工作。 值必须在 [0,100] 范围内。要禁用镜像垃圾回收,请设置为 100。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--image-gc-low-threshold int32     默认值:80
镜像垃圾回收下限。磁盘使用空间在达到该百分比之前,镜像垃圾回收操作不会运行。 值必须在 [0,100] 范围内,并且不得大于 --image-gc-high-threshold的值。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--image-pull-progress-deadline duration     默认值:1m0s
如果在该参数值所设置的期限之前没有拉取镜像的进展,镜像拉取操作将被取消。 仅当容器运行环境设置为 docker 时,此特定于 docker 的参数才有效。
--image-service-endpoint string
[实验性特性] 远程镜像服务的端点。若未设定则默认情况下使用 --container-runtime-endpoint 的值。目前支持的类型包括在 Linux 系统上的 UNIX 套接字端点和 Windows 系统上的 npipe 和 TCP 端点。 例如:unix:///var/run/dockershim.socknpipe:////./pipe/dockershim
--iptables-drop-bit int32     默认值:15
标记数据包将被丢弃的 fwmark 位设置。必须在 [0,31] 范围内。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--iptables-masquerade-bit int32     默认值:14
标记数据包将进行 SNAT 的 fwmark 空间位设置。必须在 [0,31] 范围内。 请将此参数与 kube-proxy 中的相应参数匹配。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--keep-terminated-pod-volumes
设置为 true 表示 Pod 终止后仍然保留之前挂载过的卷,常用于调试与卷有关的问题。 已弃用:将未来版本中移除。
--kernel-memcg-notification
若启用,则 kubelet 将与内核中的 memcg 通知机制集成,不再使用轮询的方式来判定 是否 Pod 达到内存驱逐阈值。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--kube-api-burst int32     默认值:10
每秒发送到 apiserver 的突发请求数量上限。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--kube-api-content-type string     默认值:application/vnd.kubernetes.protobuf
发送到 apiserver 的请求的内容类型。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--kube-api-qps int32     默认值:5
与 apiserver 通信的每秒查询个数(QPS)。 此值必须 >= 0。如果为 0, 则使用默认 QPS(5)。 不包含事件和节点心跳 api,它们的速率限制是由一组不同的标志所控制。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--kube-reserved mapStringString     默认值:<None>
kubernetes 系统预留的资源配置,以一组 资源名称=资源数量 格式表示。 (例如:cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid='100')。 当前支持 cpumemory 和用于根文件系统的 ephemeral-storage。 请参阅相关文档获取更多信息。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--kube-reserved-cgroup string     默认值:""
给出某个顶层 cgroup 绝对名称,该 cgroup 用于管理通过标志 --kube-reserved 为 kubernetes 组件所预留的计算资源。例如:"/kube-reserved"。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--kubeconfig string
kubeconfig 配置文件的路径,指定如何连接到 API 服务器。 提供 --kubeconfig 将启用 API 服务器模式,而省略 --kubeconfig 将启用独立模式。
--kubelet-cgroups string
用于创建和运行 kubelet 的 cgroup 的绝对名称。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--lock-file string
<警告:alpha 特性> kubelet 使用的锁文件的路径。
--log-backtrace-at traceLocation     默认值::0
形式为 <file>:<N>。 当日志逻辑执行到命中 <file> 的第 <N> 行时,转储调用堆栈。 (已弃用:将在未来的版本中删除,进一步了解
--log-dir string
如果此值为非空,则在所指定的目录中写入日志文件。 (已弃用:将在未来的版本中删除,进一步了解
--log-file string
如果此值非空,使用所给字符串作为日志文件名。
--log-file-max-size uint     默认值:1800
设置日志文件的最大值。单位为兆字节(M)。如果值为 0,则表示文件大小无限制。 (已弃用:将在未来的版本中删除,进一步了解
--log-flush-frequency duration     默认值:5s
两次日志刷新之间的最大秒数(默认值为 5s)。
--log-json-info-buffer-size string     默认值:'0'
[实验性特性]在具有拆分输出流的 JSON 格式中,可以将信息消息缓冲一段时间以提高性能。 零字节的默认值禁用缓冲。大小可以指定为字节数(512)、1000 的倍数(1K)、1024 的倍数(2Ki) 或这些(3M、4G、5Mi、6Gi)的幂。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--log-json-split-stream
[实验性特性]以 JSON 格式,将错误消息写入 stderr,将 info 消息写入 stdout。 默认是将单个流写入标准输出。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--logging-format string     默认值:"text"
设置日志文件格式。可以设置的格式有:"text""json"。 非默认的格式不会使用以下标志的配置:--add-dir-header, --alsologtostderr, --log-backtrace-at, --log-dir, --log-file, --log-file-max-size, --logtostderr, --skip-headers, --skip-log-headers, --stderrthreshold, --log-flush-frequency。 非默认选项的其它值都应视为 Alpha 特性,将来出现更改时不会额外警告。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--logtostderr     默认值:true
日志输出到 stderr 而不是文件。 (已弃用:将会在未来的版本删除, 进一步了解
--make-iptables-util-chains     默认值:true
设置为 true 表示 kubelet 将确保 iptables 规则在主机上存在。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--manifest-url string
用于访问要运行的其他 Pod 规范的 URL。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--manifest-url-header string
取值为由 HTTP 头部组成的逗号分隔列表,在访问 --manifest-url 所给出的 URL 时使用。 名称相同的多个头部将按所列的顺序添加。该参数可以多次使用。例如: --manifest-url-header 'a:hello,b:again,c:world' --manifest-url-header 'b:beautiful'。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--master-service-namespace string     默认值:default
kubelet 向 Pod 注入 Kubernetes 主控服务信息时使用的命名空间。 已弃用:此标志将在未来的版本中删除。
--max-open-files int     默认值:1000000
kubelet 进程可以打开的最大文件数量。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--max-pods int32     默认值:110
此 kubelet 能运行的 Pod 最大数量。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--maximum-dead-containers int32     默认值:-1
设置全局可保留的已停止容器实例个数上限。 每个实例会占用一些磁盘空间。要禁用,请设置为负数。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--maximum-dead-containers-per-container int32     默认值:1
每个已停止容器可以保留的的最大实例数量。每个容器占用一些磁盘空间。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--memory-manager-policy string     默认值:None
内存管理器策略使用。可选值:'None', 'Static'。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--minimum-container-ttl-duration duration
已结束的容器在被垃圾回收清理之前的最少存活时间。 例如:300ms10s 或者 2h45m。 已弃用:请改用 --eviction-hard 或者 --eviction-soft。 此标志将在未来的版本中删除。
--minimum-image-ttl-duration duration     默认值:2m0s
不再使用的镜像在被垃圾回收清理之前的最少存活时间。 例如:300ms10s 或者 2h45m。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--network-plugin string
<警告:alpha 特性> 设置 kubelet/Pod 生命周期中各种事件调用的网络插件的名称。 仅当容器运行环境设置为 docker 时,此特定于 docker 的参数才有效。
--network-plugin-mtu int32
<警告:alpha 特性> 传递给网络插件的 MTU 值,将覆盖默认值。 设置为 0 则使用默认的 MTU 1460。仅当容器运行环境设置为 docker 时, 此特定于 docker 的参数才有效。 (已弃用:将会随着 dockershim 一起删除。)
--node-ip string
节点的 IP 地址(或逗号分隔的双栈 IP 地址)。 如果未设置,kubelet 将使用节点的默认 IPv4 地址(如果有)或默认 IPv6 地址(如果它没有 IPv4 地址)。 你可以传值 '::' 使其偏向于默认的 IPv6 地址而不是默认的 IPv4 地址。
--node-labels mapStringString
<警告: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 所给的配置文件中进行设置。 (进一步了解
--node-status-update-frequency duration     默认值:10s
指定 kubelet 向主控节点汇报节点状态的时间间隔。注意:更改此常量时请务必谨慎, 它必须与节点控制器中的 nodeMonitorGracePeriod 一起使用。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--non-masquerade-cidr string     默认值:10.0.0.0/8
kubelet 向该 IP 段之外的 IP 地址发送的流量将使用 IP 伪装技术。 设置为 0.0.0.0/0 则不使用伪装。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--one-output
如果设置此标志为 true,则仅将日志写入其原来的严重性级别中, 而不是同时将其写入更低严重性级别中。 已弃用:将在未来的版本中删除, (进一步了解
--oom-score-adj int32     默认值:-999
kubelet 进程的 oom-score-adj 参数值。有效范围为 [-1000,1000]。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--pod-cidr string
用于给 Pod 分配 IP 地址的 CIDR 地址池,仅在独立运行模式下使用。 在集群模式下,CIDR 设置是从主服务器获取的。对于 IPv6,分配的 IP 的最大数量为 65536。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--pod-infra-container-image string     默认值:k8s.gcr.io/pause:3.2
所指定的镜像不会被镜像垃圾收集器删除。 当容器运行环境设置为 docker 时,各个 Pod 中的所有容器都会 使用此镜像中的网络和 IPC 名字空间。 其他 CRI 实现有自己的配置来设置此镜像。
--pod-manifest-path string
设置包含要运行的静态 Pod 的文件的路径,或单个静态 Pod 文件的路径。以点(.) 开头的文件将被忽略。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--pod-max-pids int     默认值:-1
设置每个 Pod 中的最大进程数目。如果为 -1,则 kubelet 使用节点可分配的 PID 容量作为默认值。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--pods-per-core int32
kubelet 在每个处理器核上可运行的 Pod 数量。此 kubelet 上的 Pod 总数不能超过 --max-pods 标志值。因此,如果此计算结果导致在 kubelet 上允许更多数量的 Pod,则使用 --max-pods 值。值为 0 表示不作限制。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--port int32     默认值:10250
kubelet 服务监听的本机端口号。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--protect-kernel-defaults
设置 kubelet 的默认内核调整行为。如果已设置该参数,当任何内核可调参数与 kubelet 默认值不同时,kubelet 都会出错。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--provider-id string
设置主机数据库(即,云驱动)中用来标识节点的唯一标识。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--qos-reserved mapStringString
<警告:alpha 特性> 设置在指定的 QoS 级别预留的 Pod 资源请求,以一组 "资源名称=百分比" 的形式进行设置,例如 memory=50%。 当前仅支持内存(memory)。要求启用 QOSReserved 特性门控。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--read-only-port int32     默认值:10255
kubelet 可以在没有身份验证/鉴权的情况下提供只读服务的端口(设置为 0 表示禁用)。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--really-crash-for-testing
设置为 true 表示发生失效时立即崩溃。仅用于测试。 已弃用:将在未来版本中移除。
--register-node     默认值:true
向 API 服务器注册节点,如果未提供 --kubeconfig,此标志无关紧要, 因为 Kubelet 没有 API 服务器可注册。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--register-schedulable     默认值:true
注册本节点为可调度的节点。当 --register-node标志为 false 时此设置无效。 已弃用:此参数将在未来的版本中删除。
--register-with-taints mapStringString
设置本节点的污点标记,格式为 <key>=<value>:<effect>, 以逗号分隔。当 --register-node 为 false 时此标志无效。 已弃用:将在未来版本中移除。
--registry-burst int32     默认值:10
设置突发性镜像拉取的个数上限,在不超过 --registration-qps 设置值的前提下 暂时允许此参数所给的镜像拉取个数。仅在 --registry-qps 大于 0 时使用。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--registry-qps int32     默认值:5
如此值大于 0,可用来限制镜像仓库的 QPS 上限。设置为 0,表示不受限制。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--reserved-cpus string
用逗号分隔的一组 CPU 或 CPU 范围列表,给出为系统和 Kubernetes 保留使用的 CPU。 此列表所给出的设置优先于通过 --system-reserved--kube-reskube-reserved 所保留的 CPU 个数配置。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--reserved-memory string
以逗号分隔的 NUMA 节点内存预留列表。(例如 --reserved-memory 0:memory=1Gi,hugepages-1M=2Gi --reserved-memory 1:memory=2Gi)。 每种内存类型的总和应该等于--kube-reserved--system-reserved--eviction-threshold了解更多详细信息。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--resolv-conf string     默认值:/etc/resolv.conf
名字解析服务的配置文件名,用作容器 DNS 解析配置的基础。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--root-dir string     默认值:/var/lib/kubelet
设置用于管理 kubelet 文件的根目录(例如挂载卷的相关文件等)。
--rotate-certificates
<警告:Beta 特性> 设置当客户端证书即将过期时 kubelet 自动从 kube-apiserver 请求新的证书进行轮换。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--rotate-server-certificates
当 kubelet 的服务证书即将过期时自动从 kube-apiserver 请求新的证书进行轮换。 要求启用 RotateKubeletServerCertificate 特性门控,以及对提交的 CertificateSigningRequest 对象进行批复(Approve)操作。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--runonce
设置为 true 表示从本地清单或远程 URL 创建完 Pod 后立即退出 kubelet 进程。 与 --enable-server 标志互斥。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--runtime-cgroups string
设置用于创建和运行容器运行时的 cgroup 的绝对名称。
--runtime-request-timeout duration     默认值:2m0s
设置除了长时间运行的请求(包括 pulllogsexecattach 等操作)之外的其他运行时请求的超时时间。 到达超时时间时,请求会被取消,抛出一个错误并会等待重试。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--seccomp-profile-root string     默认值:/var/lib/kubelet/seccomp
<警告:alpha 特性> seccomp 配置文件目录。 已弃用:将在 1.23 或更高版本中移除,以使用 <root-dir>/seccomp 目录。
--serialize-image-pulls     默认值:true
逐一拉取镜像。建议 *不要* 在 docker 守护进程版本低于 1.9 或启用了 Aufs 存储后端的节点上 更改默认值。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--skip-headers
设置为 true 时在日志消息中去掉标头前缀。 (已弃用:将在未来的版本中删除,进一步了解
--skip-log-headers
设置为 true,打开日志文件时去掉标头。 (已弃用:将在未来的版本中删除,进一步了解
--stderrthreshold int     默认值:2
设置严重程度达到或超过此阈值的日志输出到标准错误输出。 (已弃用:将在未来的版本中删除,进一步了解
--streaming-connection-idle-timeout duration     默认值:4h0m0s
设置流连接在自动关闭之前可以空闲的最长时间。0 表示没有超时限制。 例如:5m。 注意:与 kubelet 服务器的所有连接最长持续时间为 4 小时。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--sync-frequency duration     默认值:1m0s
在运行中的容器与其配置之间执行同步操作的最长时间间隔。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--system-cgroups /
此标志值为一个 cgroup 的绝对名称,用于所有尚未放置在根目录下某 cgroup 内的非内核进程。 空值表示不指定 cgroup。回滚该参数需要重启机器。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--system-reserved mapStringString     默认值:无
系统预留的资源配置,以一组 资源名称=资源数量 的格式表示, (例如:cpu=200m,memory=500Mi,ephemeral-storage=1Gi,pid='100')。 目前仅支持 cpumemory 的设置。 更多细节可参考 相关文档。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--system-reserved-cgroup string     默认值:""
此标志给出一个顶层 cgroup 绝对名称,该 cgroup 用于管理非 kubernetes 组件, 这些组件的计算资源通过 --system-reserved 标志进行预留。 例如 "/system-reserved"。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--tls-cert-file string
包含 x509 证书的文件路径,用于 HTTPS 认证。 如果有中间证书,则中间证书要串接在在服务器证书之后。 如果未提供 --tls-cert-file--tls-private-key-file, kubelet 会为公开地址生成自签名证书和密钥,并将其保存到通过 --cert-dir 指定的目录中。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--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_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_RC4_128_SHA。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--tls-min-version string
设置支持的最小 TLS 版本号,可选的版本号包括:VersionTLS10VersionTLS11VersionTLS12VersionTLS13。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--tls-private-key-file string
包含与 --tls-cert-file 对应的 x509 私钥文件路径。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--topology-manager-policy string     默认值:none
设置拓扑管理策略(Topology Manager policy)。可选值包括:nonebest-effortrestrictedsingle-numa-node。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--topology-manager-scope string     默认值:container
拓扑提示信息使用范围。拓扑管理器从提示提供者(Hints Providers)处收集提示信息, 并将其应用到所定义的范围以确保 Pod 准入。 可选值包括:container(默认)、pod。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
-v, --v Level
设置 kubelet 日志级别详细程度的数值。
--version version[=true]
打印 kubelet 版本信息并退出。
--vmodule moduleSpec
以逗号分隔的 pattern=N 设置列表,用于文件过滤的日志记录
--volume-plugin-dir string     默认值:/usr/libexec/kubernetes/kubelet-plugins/volume/exec/
用来搜索第三方存储卷插件的目录。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
--volume-stats-agg-period duration     默认值:1m0s
指定 kubelet 计算和缓存所有 Pod 和卷的磁盘用量总值的时间间隔。要禁用磁盘用量计算, 请设置为 0。 已弃用:应在 --config 所给的配置文件中进行设置。 (进一步了解
最后修改 March 17, 2022 at 8:54 PM PST : [zh] Update kubelet.md (79bfc1746)