如何在kubernetes PHP pod中运行cronjobs?

时间:2018-05-22 14:48:11

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

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

1 个答案:

答案 0 :(得分:1)

如评论中所述,您最好的选择是创建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