如何设置Kubernetes Kubelet的限制?

时间:2019-11-01 09:20:26

标签: docker kubernetes containers pod kubelet

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

有什么方法可以设置kubelet的限制(cpu,内存)吗?我搜索了文档,但只发现了工作节点需求。

1 个答案:

答案 0 :(得分:1)

我认为您应该了解kubelet的功能。可以在kubelet documentation中找到。

  

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标志指定的配置文件设置参数。这在Set Kubelet parameters via a config file上有解释。

您可能感兴趣的标志是:

--application-metrics-count-limit int

  

(每个容器)要存储的最大应用程序指标数量(默认为100)(不建议使用)

--cpu-cfs-quota

  

为指定CPU限制的容器启用CPU CFS配额强制(默认为true)(不建议使用)

--event-qps int32

  

如果> 0,则将每秒创建的事件数限制为该值。如果为0,则为无限。 (默认5)(不推荐使用)

--event-storage-age-limit string

  

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

--event-storage-event-limit string

  

要存储的最大事件数(每种类型)。值是键值的逗号分隔列表,其中键是事件类型(例如:creation,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)(不推荐使用)