【发布时间】:2020-02-13 23:01:52
【问题描述】:
我们使用 mysql 数据库在 k8s(GCP) 中部署一个 laravel 项目。现在我想在 cronjob 的帮助下不时备份这个数据库,我关注了articles,但我无法创建备份文件。但是,根据文章,我们需要在GCP 中创建存储桶和服务帐户
它可以正常工作,但存储桶中没有备份文件。
cronjob.yaml 文件
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: backup-cronjob
spec:
schedule: "*/1 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: backup-container
image: gcr.io/thereport/abcd
env:
- name: DB_NAME
valueFrom:
configMapKeyRef:
name: backup-configmap
key: db
- name: GCS_BUCKET
valueFrom:
configMapKeyRef:
name: backup-configmap
key: gcs-bucket
- name: DB_HOST
valueFrom:
secretKeyRef:
name: backup
key: db_host
- name: DB_USER
valueFrom:
secretKeyRef:
name: backup
key: username
- name: DB_PASS
valueFrom:
secretKeyRef:
name: backup
key: password
- name: GCS_SA
valueFrom:
secretKeyRef:
name: backup
key: thereport-541be75e66dd.json
args:
- /bin/bash
- -c
- mysqldump --u root --p"root" homestead > trydata.sql; gcloud config set project thereport; gcloud auth activate-service-account --key-file backup; gsutil cp /trydata.sql gs://backup-buck
restartPolicy: OnFailure
【问题讨论】:
-
您好,您的 kube 服务帐号是否有权在您的存储桶中写入对象?快速尝试(不是真正的实现)让您的bucket public 并尝试运行该作业,如果您在此之后在您的存储桶中看到转储文件,您将需要查看您的存储桶策略以访问您的 kube .
标签: mysql kubernetes google-cloud-platform devops kubernetes-cronjob