Kubernetes(k8s) 错误状态下的Pod CPU/内存请求不被释放?

发表于: 2020-12-02   最后更新时间: 2020-12-03 15:28:18   2,660 游览

我有一些由CronJobs创建的pods处于Error状态,似乎这些pods请求的 CPU/内存 没有被释放,kubelet没有杀死它们。并且阻止了其他的pods被调度。

这是预期的行为吗?我是否应该用手清理它们来找回资源?

谢谢。

发表于 2020-12-02

是的,错误中的Pods,你应该删除这个Pods以释放分配给它的资源。

但是,处于ComplexedFailed状态的pods不需要被清理以释放分配给它们的资源。可以通过运行简单的Job来检查节点中分配的内存资源。

Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource                   Requests     Limits
  --------                   --------     ------
  cpu                        811m (86%)   1143m (121%)
  memory                     555Mi (19%)  1115Mi (39%)

Job示例:

apiVersion: batch/v1
kind: Job
metadata:
  creationTimestamp: null
  name: test-job
spec:
  template:
    metadata:
      creationTimestamp: null
    spec:
      containers:
      - command:
        - date
        image: busybox
        name: test-job
        resources:
          requests:
            memory: 200Mi
      restartPolicy: Never

job部署后的内存。

  Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource                   Requests     Limits
  --------                   --------     ------
  cpu                        811m (86%)   1143m (121%)
  memory                     555Mi (19%)  1115Mi (39%)

你看,没有增加。

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题