首页 > 解决方案 > 如何为 kubernetes 的 kubelet 设置限制?

问题描述

我正在使用具有 1 个主节点和 2 个具有 4 个核心 cpu 和 256mb ram 的工作人员的 kubernetes 集群。我想知道 kubelet 需要多少 cpu 和 ram。

有没有办法为 kubelet 设置限制(cpu、内存)?我搜索了文档,但只找到了工作节点要求。

标签: dockerkuberneteskubelet

解决方案


我想你应该明白是什么kubelet。这可以在kubelet 文档中找到。

kubelet 是在每个节点上运行的主要“节点代理”。它可以使用以下之一向 apiserver 注册节点:主机名;覆盖主机名的标志;或云提供商的特定逻辑。

kubelet 根据 PodSpec 工作。PodSpec 是描述 pod 的 YAML 或 JSON 对象。kubelet 采用一组通过各种机制(主要通过 apiserver)提供的 PodSpec,并确保这些 PodSpec 中描述的容器运行且健康。kubelet 不管理不是由 Kubernetes 创建的容器。

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

文件:在命令行上作为标志传递的路径。将定期监视此路径下的文件是否有更新。监控周期默认为 20 秒,可通过标志配置。

HTTP 端点:在命令行上作为参数传递的 HTTP 端点。该端点每 20 秒检查一次(也可以使用标志进行配置)。

HTTP 服务器:kubelet 还可以侦听 HTTP 并响应一个简单的 API(当前未规范)以提交新的清单。

您可以将几个标志与 kubelet 一起使用,但它们大多已弃用,并且应通过 Kubelet 的 --config 标志指定的配置文件设置参数。这是通过配置文件设置 Kubelet 参数的解释。

您可能感兴趣的标志是:

--application-metrics-count-limit int

要存储的最大应用程序指标数(每个容器)(默认 100)(已弃用)

--cpu-cfs-quota

为指定 CPU 限制的容器启用 CPU CFS 配额强制(默认为 true)(已弃用)

--event-qps int32

如果 > 0,则将每秒创建的事件限制为此值。如果为 0,则无限制。(默认 5)(已弃用)

--event-storage-age-limit string

存储事件的最大时间长度(每种类型)。值是逗号分隔的键值列表,其中键是事件类型(例如:创建、oom)或“默认”,值是持续时间。默认应用于所有未指定的事件类型(默认“default=0”)(已弃用)

--event-storage-event-limit string

要存储的最大事件数(每种类型)。值是一个逗号分隔的键值列表,其中键是事件类型(例如:创建、oom)或“默认”,值是整数。默认应用于所有未指定的事件类型(默认“default=0”)(已弃用)

--log-file-max-size uint

定义日志文件可以增长到的最大大小。单位是兆字节。如果值为 0,则最大文件大小不受限制。(默认 1800)

--pods-per-core int32

可以在此 Kubelet 上运行的每个核心的 Pod 数。此 Kubelet 上的 Pod 总数不能超过 max-pods,因此如果此计算导致 Kubelet 上允许的 Pod 数量较大,则将使用 max-pods。值 0 禁用此限制。(已弃用)

--registry-qps int32

如果 > 0,则将注册表拉取 QPS 限制为该值。如果为 0,则无限制。(默认 5)(已弃用)


推荐阅读