Kubernetes 库伯内特斯·克罗恩的工作
我有一个部署在K8S上的rails应用程序。在我的web应用程序中,有一个cronjob每天晚上8点运行,需要6个小时才能完成。我注意到,从cronjob启动几小时后,出现了Kubernetes 库伯内特斯·克罗恩的工作,kubernetes,kubernetes-cronjob,Kubernetes,Kubernetes Cronjob,我有一个部署在K8S上的rails应用程序。在我的web应用程序中,有一个cronjob每天晚上8点运行,需要6个小时才能完成。我注意到,从cronjob启动几小时后,出现了OOMkilled错误。我还增加了一个吊舱的内存,但错误仍然发生 这是我的yaml文件: apiVersion:batch/v1beta1 种类:克朗乔 元数据: 名称:同步数据 规格: 日程安排:“0 20***”#每天晚上20:00:00 并发策略:禁止 成功工作存储限制:5 作业失败存储限制:5 作业模板: 规格: t
OOMkilled
错误。我还增加了一个吊舱的内存,但错误仍然发生
这是我的yaml
文件:
apiVersion:batch/v1beta1
种类:克朗乔
元数据:
名称:同步数据
规格:
日程安排:“0 20***”#每天晚上20:00:00
并发策略:禁止
成功工作存储限制:5
作业失败存储限制:5
作业模板:
规格:
ttlSecondsAfterFinished:100
模板:
规格:
serviceAccountName:同步数据
容器:
-名称:同步数据
资源:
请求:
内存:2024Mi#OOMKilled
cpu:1000m
限制:
内存:2024Mi#OOMKilled
cpu:1000m
图片:xxxxxxx.dkr.ecr.ap-northeast-1.amazonaws.com/path
imagePullPolicy:如果不存在
命令:
-“/bin/sh”
-“-c”
- |
rake xxx:yyyy#需要约6小时才能完成
餐馆政策:永不
在K8S上运行长时间的cronjob有什么最佳实践吗?
欢迎任何帮助 老实说,kubernetes中没有正确的资源请求/限制内容,因为这完全取决于你的pod在做什么。我建议或者您可以做的一件事是部署垂直吊舱自动缩放,并观察垂直吊舱自动缩放器为您的cron作业提供的完美资源请求/限制。这是一篇非常好的文章,你可以从它开始,你将了解如何在你的需求中利用它
老实说,kubernetes中没有正确的资源请求/限制内容,因为它完全取决于你的pod正在做什么。我建议或者您可以做的一件事是部署垂直吊舱自动缩放,并观察垂直吊舱自动缩放器为您的cron作业提供的完美资源请求/限制。这是一篇非常好的文章,你可以从它开始,你将了解如何在你的需求中利用它
发生OOM死亡有两个原因
您应该有适当的监控来实际确定原因。适当的监控将向您显示哪些POD符合预期,哪些不符合预期。您还可以对长时间运行的pod使用节点选择器,并设置优先级类,该类将首先删除非cron pod。OOM死机有两个原因
您应该有适当的监控来实际确定原因。适当的监控将向您显示哪些POD符合预期,哪些不符合预期。您还可以对长时间运行的POD使用节点选择器,并设置优先级级别,这将首先删除非cron POD。您使用的k8s是什么?它是独立的(安装在您的服务器上)还是管理的(EKS/GKE等)?您使用的k8s是什么?它是独立的(安装在您的服务器上)还是管理的(EKS/GKE等)?