как запустить задачи rails rake в работе kubernetes cron

avatar
karlos
8 августа 2021 в 21:09
477
1
0

Мы развертываем приложение Rails в Kubernetes.

Задача assets:precompile выполняется как часть процесса сборки образа Docker.

Мы хотим запускать задачи rake, такие как задача rake db:migrate и другие задачи, при каждом развертывании.

Текущее решение, мы используем kubectl exec.

deplyment.yaml

apiVersion: extensions/v1
kind: Deployment
metadata:
  name: rails-app
spec:
  template:
    spec:
      containers:
        - image: test/rails-app:v0.0.1
          name: myapp
          imagePullPolicy: IfNotPresent

Получить список модулей

$ kubectl get pods

Затем выполните в модуле rails:

$ kubectl exec rails-app-4007005961-1st7s                              \
          -- bash -c                                               \
          'bin/rake db:migrate

'

Нам нужно использовать kubernentes cronjob (.yaml), чтобы запустить наши рейк-таки, но мы не знаем, какой образ докера мы должны использовать? как подключиться к стручку рельсов и запустить задачу грабли?. пример реализации ?

Источник

Ответы (1)

avatar
3minus1
9 августа 2021 в 04:59
1

Нам нужно использовать kubernentes cronjob (.yaml) для запуска наших рейк-таков

Я не думаю, что вам нужен k8s cronjob для выполнения миграции БД. Возможно, вы захотите использовать ресурс job в k8s и запустить его как часть сценария CI/CD. Запустите его прямо перед тем, как применить файл deployment.yaml. В случае сбоя задания миграции следует прервать развертывание.