为什么作业不创建 pod Kubernetes (Openshift)

问题描述 投票:0回答:1

我使用 openshift 命令创建了一个作业;

oc create job <my-job> --from=cronjob/<my-cronjob>

,但它不会自动创建 Pod。我找不到这里缺少什么。可能需要更改

my-cronjob
的 yaml 上的某些内容。所以这是 yaml;

kind: CronJob
apiVersion: batch/v1
metadata:
  annotations:
    meta.helm.sh/release-name: xxx
    meta.helm.sh/release-namespace: xxx
  resourceVersion: '7504720716'
  name: my-cronjob
  uid: xxxx
  creationTimestamp: '2023-02-17T14:27:25Z'
  generation: 3
  managedFields:
    - manager: helm
      operation: Update
      apiVersion: batch/v1
      time: '2023-04-19T09:06:08Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:metadata':
          'f:annotations':
            .: {}
            'f:meta.helm.sh/release-name': {}
            'f:meta.helm.sh/release-namespace': {}
          'f:labels':
            .: {}
            'f:app.kubernetes.io/managed-by': {}
        'f:spec':
          'f:concurrencyPolicy': {}
          'f:failedJobsHistoryLimit': {}
          'f:jobTemplate':
            'f:spec':
              'f:template':
                'f:spec':
                  'f:containers':
                    'k:{"name":"my-job"}':
                      .: {}
                      'f:envFrom': {}
                      'f:image': {}
                      'f:imagePullPolicy': {}
                      'f:name': {}
                      'f:resources':
                        .: {}
                        'f:limits':
                          .: {}
                          'f:cpu': {}
                          'f:ephemeral-storage': {}
                          'f:memory': {}
                        'f:requests':
                          .: {}
                          'f:cpu': {}
                          'f:ephemeral-storage': {}
                          'f:memory': {}
                      'f:terminationMessagePath': {}
                      'f:terminationMessagePolicy': {}
                  'f:dnsPolicy': {}
                  'f:restartPolicy': {}
                  'f:schedulerName': {}
                  'f:securityContext': {}
                  'f:terminationGracePeriodSeconds': {}
          'f:schedule': {}
          'f:successfulJobsHistoryLimit': {}
          'f:suspend': {}
    - manager: kube-controller-manager
      operation: Update
      apiVersion: batch/v1
      time: '2023-08-16T08:05:04Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:status':
          'f:lastScheduleTime': {}
      subresource: status
    - manager: Mozilla
      operation: Update
      apiVersion: batch/v1
      time: '2023-12-05T09:10:40Z'
      fieldsType: FieldsV1
      fieldsV1:
        'f:spec':
          'f:jobTemplate':
            'f:spec':
              'f:template':
                'f:spec':
                  'f:containers':
                    'k:{"name":"my-job"}':
                      'f:command': {}
  namespace: ifxbertsearch-staging
  labels:
    app.kubernetes.io/managed-by: Helm
spec:
  schedule: 0 1 * * *
  concurrencyPolicy: Forbid
  suspend: true
  jobTemplate:
    metadata:
      creationTimestamp: null
    spec:
      template:
        metadata:
          creationTimestamp: null
        spec:
          containers:
            - name: my-job
              image: >-
                xxx
              command:
                - python
                - main.py
                - '49'
              envFrom:
                - configMapRef:
                    name: env-variables
              resources:
                limits:
                  cpu: '4'
                  ephemeral-storage: 10Mi
                  memory: 5Gi
                requests:
                  cpu: '2'
                  ephemeral-storage: 10Mi
                  memory: 3Gi
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
              imagePullPolicy: Always
          restartPolicy: Never
          terminationGracePeriodSeconds: 30
          dnsPolicy: ClusterFirst
          securityContext: {}
          schedulerName: default-scheduler
  successfulJobsHistoryLimit: 3
  failedJobsHistoryLimit: 1
status: {}

所以我需要弄清楚,为什么 cronjob 不创建作业将在其上运行的 pod。

kubernetes yaml openshift jobs kubernetes-cronjob
1个回答
0
投票

您的 CronJob 已暂停:

spec:
  suspend: true

根据文档

您可以通过设置来暂停 CronJob 的作业执行 可选 .spec.suspend 字段设置为 true。该字段默认为 false。

此设置不会影响 CronJob 已经执行的作业 开始了。

如果您将该字段设置为 true,则所有后续执行都会 暂停(它们仍保持计划状态,但 CronJob 控制器不会 启动作业来运行任务),直到您取消暂停 CronJob。

它还会影响从该 CronJob 手动创建的任何作业,因此您需要在 CronJob 资源中删除该行:)

© www.soinside.com 2019 - 2024. All rights reserved.