Pod CPU / 错误状态的内存请求不释放

Pod CPU / Memory requests in error state are not released

我有一些 pods 由处于 Error 状态的 CronJobs 创建,似乎这些 pods 请求的 CPU / 内存自 kubelet 以来未被释放没有杀死他们。它会阻止其他 pods 被安排。

这是预期的行为吗?我应该手动清理它们以取回资源吗?

谢谢。

Pods 在 Error 您应该删除此 pod 以释放分配给它的资源。

然而 pods 在 CompletedFailed 状态不需要清理释放分配给他们的资源。可以通过运行简单的Job查看node中分配的内存资源。

作业前的内存分配:

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%)

工作示例:

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 

作业部署后的内存:

  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%)