【问题标题】:How can I run cronjobs in kubernetes PHP pods?如何在 kubernetes PHP pod 中运行 cronjobs?
【发布时间】:2018-11-01 09:28:39
【问题描述】:

我有运行 2 个 PHP 应用程序 pod 的 Kubernetes 复制控制器。现在,我需要安排 3 个 cronjobs 在这些 pod 中运行一些 PHP 脚本。我怎样才能实现它? (容器的基础镜像是 centos:7)。

【问题讨论】:

标签: docker kubernetes containers centos7 google-kubernetes-engine


【解决方案1】:

正如 cmets 中所说,您最好的选择是创建 Kubernetes CronJobs

如果您不想公开 PHP 函数,您可以随时使用在 PHP pod 中执行命令的容器。

这是一个创建 cronjob 的示例。这个 cronjob 为每个带有 app=my-php 标签的 pod 运行 kubectl exec,在每个 pod 中调用 ls。

  apiVersion: batch/v1beta1
  kind: CronJob
  metadata:
    name: hello-cron
  spec:
    schedule: "*/1 * * * *"
    jobTemplate:
      spec:
        template:
          spec:
            containers:
            - name: kubectl
              image: lachlanevenson/k8s-kubectl
              command:
                - /bin/sh
                - -c
              args: 
                - kubectl get pod -l app=my-php -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}{end}' | xargs -i kubectl exec {} ls
            restartPolicy: Never

【讨论】:

  • 嗨。非常感谢您的回答。上面的脚本适用于 os 提供的命令。但是,当我尝试执行我的脚本时,我收到“rpc 错误:代码 = 2 desc = oci 运行时错误:exec 失败:container_linux.go:247:启动容器进程导致:exec 格式错误”。但是,当我进入容器时,我可以执行脚本。
猜你喜欢
  • 2020-03-01
  • 1970-01-01
  • 2022-12-17
  • 2018-10-04
  • 1970-01-01
  • 2016-04-08
  • 2015-07-22
  • 2021-02-19
  • 2020-05-13
相关资源
最近更新 更多