通过Kubernetes Job和持久卷声明进行Django迁移 [英] Django migrations by Kubernetes Job and persistent Volume Claim

查看:53
本文介绍了通过Kubernetes Job和持久卷声明进行Django迁移的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在Kubernetes Django部署的应用程序上使用Job和持久卷声明进行迁移和迁移模型的最佳方法是吗?

Is the best approach to make migrations and migrate models using a Job and a Persistent Volume Claim on Kubernetes Django deployed app?

持久量

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: csi-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: do-block-storage

工作

apiVersion: batch/v1
kind: Job
metadata:
  name: django-migrations-job
spec:
  template:
    spec:
      containers:
        - name: app
          image: user/app:latest
          command: ["/bin/sh", "-c"]
          args: ["python manage.py makemigrations app; python manage.py migrate"]
          volumeMounts:
           - mountPath: "/container-code-dir/app/migrations"
             name: my-do-volume
      volumes:
        - name: my-do-volume
          persistentVolumeClaim:
           claimName: csi-pvc

推荐答案

对我来说还不错.不确定在新容器启动时是否需要一次或每次运行此作业?

Looks fine for me. Not sure if you need run this job once or every time, when a new pod is up?

如果它在每次启动Django服务pod之前都在运行,也许您可​​以获得有关初始化容器

If it is running before Django service pod started every time, maybe you can get help with Init Containers

示例:

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod
  labels:
    app: myapp
spec:
  containers:
  - name: myapp-container
    image: busybox:1.28
    command: ['sh', '-c', 'echo The app is running! && sleep 3600']
  initContainers:
  - name: init-myservice
    image: busybox:1.28
    command: ['sh', '-c', 'until nslookup myservice; do echo waiting for myservice; sleep 2; done;']
  - name: init-mydb
    image: busybox:1.28
    command: ['sh', '-c', 'until nslookup mydb; do echo waiting for mydb; sleep 2; done;']

您可以为部署做同样的事情

you can do the same for deployment

这篇关于通过Kubernetes Job和持久卷声明进行Django迁移的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆