我有一个 Kubernetes cron 作业,在运行时收到 OOMKilled(内存不足)消息。这个特定的 cron 作业每天运行一次。节点本身有 4 GB RAM。
在某处发现 cron 作业的默认大小是 100 MB?在哪里可以查看或更改 Kubernetes cron 作业的默认值?
您只需向该作业添加资源和限制,这样就可以防止它被 OOM 终止。需要注意的一件事是资源和限制如何发挥作用。我在 Stack 上的这个答案中解释了一些场景。值得检查官方文档以避免常见错误,而且 CPU 和内存资源/限制的工作方式也略有不同。
关于资源和限制的默认值取决于您的集群所在的位置。例如,在我的 kubeadm 中,默认情况下命名空间中没有任何资源或限制default
:
kubectl describe ns default
Name: default
Labels: <none>
Annotations: <none>
Status: Active
No resource quota.
No resource limits.
Run Code Online (Sandbox Code Playgroud)
这是针对 GKE 的:
因此,您的选择是为您的命名空间设置请求和限制,或者只是将其添加到作业规范中,如下例所示:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: testing-hello
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: hi-there
image: busybox
args:
- /bin/sh
- -c
- date; echo "Hello, World!"
resources:
requests:
cpu: "100Mi"
limits:
cpu: "100Mi"
restartPolicy: OnFailure
Run Code Online (Sandbox Code Playgroud)
通常您也只需按此处所述设置每个命名空间的资源和限制。
归档时间: |
|
查看次数: |
9776 次 |
最近记录: |