【问题标题】:Flag '-c' in kubernetes cronjobs command/args在 kubernetes cronjobs 命令/args 中标记“-c”
【发布时间】:2022-01-19 12:40:12
【问题描述】:

Creating a Cron Job

标志“-c”在 Kubernetes Cronjob 中有什么作用?

kind: CronJob
metadata:
  name: hello
spec:
  schedule: "* * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - date; echo Hello from the Kubernetes cluster
          restartPolicy: OnFailure

【问题讨论】:

  • 你好,它是标准的shell。 “-c”代表命令。所以它要求 shell 二进制运行 date 命令,然后回显一个字符串。如果您在任何 linux 容器中运行“/bin/sh --help”,您可能会得到更好的理解。
  • @François 感谢您的回答!
  • 很高兴它有帮助:)

标签: kubernetes command args kubernetes-cronjob


【解决方案1】:

社区 wiki 以供清晰和进一步搜索。

@François 完全正确。 /bin/sh -c 直接来自 unix,仅表示您在 shell 之后发出的命令。这不是 k8s cronjob 的参数:

如果存在 -c 选项,则从字符串中读取命令。如果 之后有争论 字符串,它们被分配给位置参数,从 $0 开始。

您也可以查看What is /bin/sh -c?

【讨论】:

    【解决方案2】:

    “-c”标志不属于Cronjob,它被unix sh执行命令使用:

    /bin/sh -c date; echo Hello from the Kubernetes cluster
    

    所以你需要阅读 unix sh 的文档,而不是 kubernetes。

    【讨论】:

    • 我从未说过它必须与 Kubernetes 做一些事情。我刚刚在 Cronjob 文档中遇到它。我的问题是:它有什么作用。 @Francois 的回复很有帮助。无论如何感谢您的回答
    猜你喜欢
    • 1970-01-01
    • 2018-11-01
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 2018-06-27
    • 2020-01-19
    • 1970-01-01
    • 2013-11-14
    相关资源
    最近更新 更多