gpt4 book ai didi

通过 Kubernetes 作业和持久卷声明进行 Django 迁移

转载 作者:行者123 更新时间:2023-12-02 11:39:11 25 4
gpt4 key购买 nike

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

持久卷

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

最佳答案

我觉得不错。不确定是否需要在新 pod 启动时运行此作业一次还是每次?

如果它每次都在 Django 服务 pod 启动之前运行,也许你可以通过 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;']

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

关于通过 Kubernetes 作业和持久卷声明进行 Django 迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59583098/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com