docker - 如何为 kubernetes 的 kubelet 设置限制?
问题描述
我正在使用具有 1 个主节点和 2 个具有 4 个核心 cpu 和 256mb ram 的工作人员的 kubernetes 集群。我想知道 kubelet 需要多少 cpu 和 ram。
有没有办法为 kubelet 设置限制(cpu、内存)?我搜索了文档,但只找到了工作节点要求。
解决方案
我想你应该明白是什么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)(已弃用)
推荐阅读
- sql-server - 与 SQL Server 建立连接时出现与网络相关或特定于实例的错误的 Azure AD SQL 身份验证
- ssh - 从 linux 到 windows 的 ssh 只能通过密码而不是密钥工作
- swift - 我的自定义相机视图有什么问题?
- c - 这种线分离有何不同?
- javascript - 如何在 Semantic-UI-React 中查看具有多个属性的值?
- python - python postgres在读取结果时更改行的值
- xvfb - 生成子进程时使用虚拟帧缓冲区失败
- machine-learning - 为什么我们要在使用 dropout 时缩放输出?
- css - 根据“背景位置:中心”计算背景位置?
- python - 如何根据条件拆分列