【问题标题】:Kubernetes cron job oomkilledKubernetes cron 作业 oomkilled
【发布时间】:2023-03-07 09:02:03
【问题描述】:

我有一个部署在 K8S 上的 rails 应用程序。在我的 Web 应用程序中,每天晚上 8 点运行一个 cronjob,需要 6 个小时才能完成。我注意到 OOMkilled 错误发生在 cronjob 启动几个小时后。我还增加了一个 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 的最佳实践? 欢迎任何帮助!

【问题讨论】:

  • 你用的是什么k8s?它是独立的(安装在您的服务器上)还是托管的(EKS/GKE 等)?

标签: kubernetes kubernetes-cronjob


【解决方案1】:

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

  1. 您的 pod 占用的内存超过了指定的限制。在这种情况下,您显然需要增加限制。

  2. 如果节点中的所有 pod 占用的内存超过了它们所请求的内存,那么 Kubernetes 将杀死一些 pod 以释放空间。在这种情况下,您可以为该 pod 赋予更高的优先级。

您应该进行监控以实际确定原因。适当的监控将向您显示哪些 pod 按预期执行,哪些未按预期执行。您还可以对长时间运行的 pod 使用节点选择器并设置优先级,这将首先删除非 cron pod。

【讨论】:

    【解决方案2】:

    老实说,kubernetes 中没有正确的资源请求/限制内容,因为它完全取决于您的 pod 它在做什么。我建议或您可以做的一件事是部署垂直 pod 自动缩放并观察垂直 pod 自动缩放器为您的 cron 作业建议的完美资源请求/限制。这是您可以开始的非常好的文章,您将了解如何在您的需求中利用它。

    https://medium.com/infrastructure-adventures/vertical-pod-autoscaler-deep-dive-limitations-and-real-world-examples-9195f8422724

    【讨论】:

      猜你喜欢
      • 2021-07-17
      • 1970-01-01
      • 2019-11-21
      • 2021-06-16
      • 2022-07-15
      • 1970-01-01
      • 1970-01-01
      • 2020-12-11
      • 2022-10-26
      相关资源
      最近更新 更多