【问题标题】:how to start rails rake tasks in kubernetes cron job如何在 kubernetes cron 作业中启动 rails rake 任务
【发布时间】:2021-10-12 17:13:06
【问题描述】:

我们正在 Kubernetes 上部署 Rails 应用程序。

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

获取 pod 列表

$ kubectl get pods

然后在 rails pod 上执行:

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

'

我们需要使用 kubernentes cronjob (.yaml) 来启动我们的 rake taks,但我们不知道必须使用哪个 docker 镜像?如何连接到 rails pod 并启动 rake 任务? 实现示例?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 kubernetes kubernetes-cronjob


    【解决方案1】:

    我们需要使用 kubernentes cronjob (.yaml) 来启动我们的 rake taks

    我认为您不需要 k8s cronjob 来运行您的数据库迁移。您可能想在 k8s 中使用 job 资源,并将其作为 CI/CD 脚本的一部分运行。在应用 deployment.yaml 文件之前运行它。如果迁移作业失败,您应该中止部署。

    【讨论】:

      猜你喜欢
      • 2014-05-27
      • 1970-01-01
      • 2011-12-03
      • 2021-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      相关资源
      最近更新 更多