当前位置: 首页 > 知识库问答 >
问题:

如何在kubernetes cron作业中启动rails rake任务

支彭亮
2023-03-14

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

资产:预编译任务作为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

获取pods列表

$ kubectl get pods

然后在rails pod上执行:

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

'

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

共有1个答案

乐正玺
2023-03-14

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

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

 类似资料:
  • 是否可以从一个Docker容器中提交一个Mesos上的Spark作业,其中有一个Mesos master(没有Zookeeper)和一个Mesos agent,每个都在独立的Docker容器中运行(目前在同一主机上)?在http://Mesos.apache.org/documentation/latest/container-image/上描述的Mesos容器化器似乎适用于Mesos应用程序只是

  • 我必须执行简单的cron作业。例如,每天上午10点,我必须打开一个链接,然后链接做所有的工作。为此,我使用cron-job.org。 然而事情变得复杂了,我需要一个关于我应该如何进行的建议。 这个任务很简单,每天在某个时间,我必须执行这个作业(打开一个链接),但是这个时间是动态的,我从JSON数据中获取。 真正的问题是,我需要在每天00:00阅读一个json,其中包含作业在该特定日子必须执行的时间

  • 我的路线计划每月在凌晨1:00运行一次,如果我的应用程序在这段时间内关闭,就会出现问题,所以我想在应用程序启动时运行该作业。 它使用时间段(如果服务重新启动,作业将运行),但不使用cron表达式。 我试过使用以下方法,但没有成功。 从(“quartz2://scheduler?cron=0 45 15 1 1/1?”? 有人能让我知道,如果我错过了什么。

  • 我有一个用Spring Boot(1.4.1.Release)开发的Spring批处理作业。 它成功地从命令行运行,并将作业执行数据写入MySQL。它在Spring Batch Admin(2.0.0.M1,指向MySQL)中显示为不可启动的作业,我可以看到作业执行度量。 我想知道以前有没有人这样做过。文档中有一节添加您自己的启动作业。但是它没有指定在哪里为作业添加实现jar? 是spring-b

  • 有人能给这点启示吗?