Как запустить cronjobs в PHP-модулях kubernetes? - PullRequest
0 голосов
/ 22 мая 2018

У меня есть контроллер репликации Kubernetes, на котором запущено 2 модуля PHP-приложения.Теперь мне нужно запланировать 3 cronjobs, которые запускают несколько PHP-скриптов в этих модулях.Как мне этого добиться?(Базовое изображение для контейнера составляет Centos: 7).

1 Ответ

0 голосов
/ 23 мая 2018

Как сказано в комментариях, ваш лучший вариант - создать Kubernetes CronJobs .

Если вы не хотите предоставлять свои функции PHP, вы всегда можете использовать контейнер, который выполняет команды в вашемPHP pods.

Вот пример создания cronjob.Этот cronjob запускает kubectl exec для каждого модуля с меткой app = my-php, вызывая 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
...