【问题标题】:Predictable pod name in kubernetes cron jobKubernetes cron 作业中可预测的 pod 名称
【发布时间】:2021-04-09 18:47:16
【问题描述】:

我在 kubernetes 上有一个 cron 作业,我为了测试目的而触发它:

kubectl create -f src/cronjob.yaml
kubectl create job --from=cronjob/analysis analysis-test

这将创建一个名为 analysis-test-<random-string> 的 pod。我想知道是否可以省略或使后缀可预测?

过滤cronjob.yaml

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: analysis
  labels:
    job: analysis
spec:
  schedule: "0 0 * * 0"
  concurrencyPolicy: "Forbid"
  suspend: true
  failedJobsHistoryLimit: 3
  successfulJobsHistoryLimit: 3
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: container-name
              image: myimage
              env:
              - name: ENVIRONMENT
                value: "DEV"
              imagePullPolicy: IfNotPresent
              command: [ "/bin/bash", "-c", "--" ]
              args: [ "while true; do sleep 30; done;"]

【问题讨论】:

    标签: kubernetes cron kubernetes-pod kubernetes-cronjob


    【解决方案1】:

    从 v1beta1 开始,不,你不能,这是关于 cronjob 的文档 https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/

    这是文档的摘录:

    为 CronJob 资源创建清单时,请确保您提供的名称是有效的 DNS 子域名。名称不得超过 52 个字符。这是因为 CronJob 控制器会自动为提供的作业名称附加 11 个字符,并且作业名称的最大长度限制为不超过 63 个字符。

    这里还有一个 CronJob v1beta1 规范的参考页面,用于查看可用的选项配置: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#cronjobspec-v1beta1-batch


    稍微挖掘一下源代码,可以看到 CronJob 控制器是如何创建 Job Resource 的 https://github.com/kubernetes/kubernetes/blob/v1.20.1/pkg/controller/cronjob/cronjob_controller.go#L327 https://github.com/kubernetes/kubernetes/blob/v1.20.1/pkg/controller/cronjob/utils.go#L219

    【讨论】:

      猜你喜欢
      • 2019-11-21
      • 2022-07-15
      • 2023-03-07
      • 2019-06-03
      • 2017-05-02
      • 2019-03-16
      • 2021-07-17
      • 2017-07-05
      • 1970-01-01
      相关资源
      最近更新 更多