以下是需要翻译的内容:
据我所知,这应该运行
另外,当我检查Pods(使用
作为一个旁注,以Job的形式运行此过程是否正确?如何将Job连接到Google Cloud Storage?还是我应该完全做其他事情?
我猜在数据库容器中运行
在Google Cloud Container Engine上运行Postgres数据库的最佳备份实践是什么?
我的想法是将备份存储在Google Cloud Storage中,但我不确定如何将磁盘/ Pod 连接到存储桶。
我正在使用以下配置在Kubernetes集群中运行Postgres:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: postgres-deployment
spec:
replicas: 1
template:
metadata:
labels:
app: postgres
spec:
containers:
- image: postgres:9.6.2-alpine
imagePullPolicy: IfNotPresent
env:
- name: PGDATA
value: /var/lib/postgresql/data
- name: POSTGRES_DB
value: my-database-name
- name: POSTGRES_PASSWORD
value: my-password
- name: POSTGRES_USER
value: my-database-user
name: postgres-container
ports:
- containerPort: 5432
volumeMounts:
- mountPath: /var/lib/postgresql
name: my-postgres-volume
volumes:
- gcePersistentDisk:
fsType: ext4
pdName: my-postgres-disk
name: my-postgres-volume
我尝试创建一个Job来运行备份:
apiVersion: batch/v1
kind: Job
metadata:
name: postgres-dump-job
spec:
template:
metadata:
labels:
app: postgres-dump
spec:
containers:
- command:
- pg_dump
- my-database-name
# `env` value matches `env` from previous configuration.
image: postgres:9.6.2-alpine
imagePullPolicy: IfNotPresent
name: my-postgres-dump-container
volumeMounts:
- mountPath: /var/lib/postgresql
name: my-postgres-volume
readOnly: true
restartPolicy: Never
volumes:
- gcePersistentDisk:
fsType: ext4
pdName: my-postgres-disk
name: my-postgres-volume
据我所知,这应该运行
pg_dump
命令并将备份数据输出到标准输出(应该出现在kubectl logs
中)。另外,当我检查Pods(使用
kubectl get pods
)时,它显示Pod永远无法跳出“挂起”状态,我认为这是由于没有足够的资源来启动Job。作为一个旁注,以Job的形式运行此过程是否正确?如何将Job连接到Google Cloud Storage?还是我应该完全做其他事情?
我猜在数据库容器中运行
pg_dump
(使用kubectl exec
)可能不明智,因为会影响性能,但在开发/暂存服务器上可能没问题?