Kubernetes未调度CronJob

eqzww0vc  于 2023-05-16  发布在  Kubernetes
关注(0)|答案(1)|浏览(143)

我正在运行一个microk8s示例,并试图每60秒运行一次CronJob,但它根本不起作用。我的理解是CronJob不需要任何手动干预来启动它们,但是这个系统已经运行了一个多月,我没有看到cron作业的pod(处于 any 状态),所以我决定尝试使用kubectl create job --from=cronjob/health-status-cron health-status-cron手动启动它。手动启动后,作业成功完成:

health-status-cron-2hh96                   0/1     Completed   0          17h

我希望Kubernetes会开始安排未来的工作,但它没有。以下是我的清单(其中一些是用Helm模板化的,但这不重要):

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: health-status-cron
  namespace: {{ .Values.global.namespace }}
  labels:
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/release-name: {{ .Release.Name }}
    app.kubernetes.io/release-namespace: {{ .Release.Namespace }}
spec:
  schedule: "* * * * *"
  concurrencyPolicy: Replace
  successfulJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: health-status-cron
            image: busybox
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - /usr/bin/curl -k http://restfulservices/api/system-health
          restartPolicy: OnFailure

还需要注意的是,根据以下内容,该作业在35天内未安排:

$ k -ntango get cronjobs
NAME                   SCHEDULE    SUSPEND   ACTIVE   LAST SCHEDULE   AGE
health-status-cron     * * * * *   False     0        35d             36d

在这一点上,我完全不知道我做错了什么,或者为什么这个特定的作业没有运行。任何帮助都非常感谢。
编辑:我最终放弃了整个命名空间并重新部署。不幸的是,我仍然不知道根本原因,但现在一切似乎都正常了。

rsaldnfx

rsaldnfx1#

你可以检查一些其他的东西:
1.你有任何状态为failed的cron pod吗?如果你这样做,检查这些吊舱的原因。
1.是不是以前工作过,然后突然停止了?

  1. cronjob资源是否在事件中有任何内容?kubectl describe cronjob health-status-cron -n tango
    1.你的cron运行的代码是否需要> 1分钟才能完成?如果是这样的话,你的日程安排太激进了,你可能想放松一下日程安排
  2. cronjob控制器还有一些限制,您可能需要检查:https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/#cron-job-limitations。特别是“失业”的概念。如果cronjob控制器“错过”调度100个或更多的作业,它将“冻结”作业,不再调度它。当集群或类似设备不使用时,您是否缩小了它的规模?
    1.集群中是否安装了任何自定义/第三方webhook或插件?这些可能会干扰pod的创建。
    1.您是否在命名空间中创建了任何 * 作业 *?kubectl get jobs -n tango如果你发现了大量的job对象,检查它们,看看为什么它们没有生成pod。
    我在2020年遇到了一个有点类似的问题(writeup有一个链接,指向我在Kubernetes项目本身中提出的问题):https://blenderfox.com/2020/08/07/the-snowball-effect-in-kubernetes/

相关问题