gpt4 book ai didi

kubernetes - Kubernetes Cron工作惨淡

转载 作者:行者123 更新时间:2023-12-02 11:59:55 25 4
gpt4 key购买 nike

我有一个部署在K8S上的Rails应用程序。在我的网络应用程序中,每天晚上8点运行一个cronjob,这需要6个小时才能完成。我注意到从cronjob启动几个小时后发生OOMkilled错误。我还增加了Pod的内存,但错误仍然发生。
这是我的yaml文件:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: sync-data
spec:
schedule: "0 20 * * *" # At 20:00:00pm every day
concurrencyPolicy: Forbid
successfulJobsHistoryLimit: 5
failedJobsHistoryLimit: 5
jobTemplate:
spec:
ttlSecondsAfterFinished: 100
template:
spec:
serviceAccountName: sync-data
containers:
- name: sync-data
resources:
requests:
memory: 2024Mi # OOMKilled
cpu: 1000m
limits:
memory: 2024Mi # OOMKilled
cpu: 1000m
image: xxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/path
imagePullPolicy: IfNotPresent
command:
- "/bin/sh"
- "-c"
- |
rake xxx:yyyy # Will take ~6 hours to finish
restartPolicy: Never

是否有最佳实践在K8S上运行耗时的cronjob?
欢迎任何帮助!

最佳答案

OOM被杀死可能有两个原因。

  • 您的pod占用的内存超过了指定的限制。在这种情况下,您需要明显增加该限制。
  • 如果节点中的所有Pod占用的内存超出了他们的请求,那么Kubernetes将杀死一些Pod以释放空间。在这种情况下,您可以赋予此 Pane 更高的优先级。

  • 您应该进行监视,以实际确定这样做的原因。适当的监视将向您显示哪些Pod的性能符合预期,而哪些效果不理想。您还可以将节点选择器用于长时间运行的Pod,并设置优先级类别,这将首先删除非cron Pod。

    关于kubernetes - Kubernetes Cron工作惨淡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63752358/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com