如何确定kubernetes pod临时存储请求和限制?

时间:2019-11-26 06:54:11

标签: kubernetes

我在Pod中运行的服务输出了太多日志,并导致临时存储不足。结果,吊舱被逐出,其他服务无法部署到k8s。

那么,如何确定Pod资源临时存储请求和限制以避免这种情况?我找不到有关临时存储的最佳实践。

3 个答案:

答案 0 :(得分:2)

请注意,默认情况下,如果您未对ephemeral-storage设置任何限制,则pod可以访问其正在运行的节点的整个磁盘,因此如果您确定该pod因以下原因而被逐出这样,那么您可以确定豆荚将所有食物消耗掉了。您可以从kubelet日志中进行检查,因为kubelet是负责检测此行为并逐出容器的人。

现在,您有两个选择。您既可以设置ephemeral-storage限制,进行受控的容器驱逐,也可以仅获取外部卷,将其映射到容器中,然后将日志获取到节点外部。

您还可以按照shubham_asati的建议监视磁盘使用情况,但是如果它吞噬了所有磁盘,那么它就吞噬了所有磁盘。您只是要看看它是如何填写的。

答案 1 :(得分:1)

您需要部署prometheus和grafana,以了解Pod消耗了多少内存和cpu。然后相应地在该广告连播上设置这些请求和限制

临时存储的请求和限制设置是一项新功能,尚处于测试阶段。您可能需要再等几个月才能使用该功能。

但是,如果您使用的是k8s 1.18,则可以测试临时存储的请求和限制设置

答案 2 :(得分:1)

我想可以将Pod的临时存储定义为cpu请求/限制。 请参见此https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/#local-ephemeral-storage,但此功能处于beta阶段K8的1.16版中。

要检查名称空间级别的资源消耗视图https://kubernetes.io/docs/concepts/policy/resource-quotas/#storage-resource-quota

您可以为每个吊舱设置请求/临时存储空间。

关于您的问题

  1. 使用kubectl检查临时存储的名称空间配额 描述名称空间
  2. 在容器中尝试du -sh/。

然后比较两个输出的存储。