我有一个EKS集群和一个RDS (mariadb)。我试图通过CronJob中的脚本对给定的数据库进行备份。CronJob对象如下所示:
apiVersion: batch/v1
kind: CronJob
metadata:
name: mysqldump
namespace: mysqldump
spec:
schedule: "* * * * *"
concurrencyPolicy: Replace
jobTemplate:
spec:
template:
spec:
containers:
- name: mysql-backup
image: viejo/debian-mysqldump:latest
envFrom:
- configMapRef:
name: mysqldump-config
args:
- /bin/bash
- -c
- /root/mysqldump.sh "(${MYSQLDUMP_DATABASES})" > /proc/1/fd/1 2>/proc/1/fd/2 || echo KO > /tmp/healthcheck
resources:
limits:
cpu: "0.5"
memory: "0.5Gi"
restartPolicy: OnFailure脚本名为mysqldump.sh,它从ConfigMap对象获取所有必要的详细信息。它在环境变量MYSQLDUMP_DATABASES中对数据库进行转储,并将其移到S3桶中。
注意:我将把一些变量移到一个Secret__中,但是在我需要使用它之前。
什么都没发生。脚本从未被执行--我尝试在脚本之前放置一个"echo starting The backup",并在它之后添加"echo backup“,但我没有看到它们中的任何一个。如果我访问容器并手动执行相同的精确命令,它就会工作:
root@mysqldump-27550908-sjwfm:/# /root/mysqldump.sh "(${MYSQLDUMP_DATABASES})" > /proc/1/fd/1 2>/proc/1/fd/2 || echo KO > /tmp/healthcheck
root@mysqldump-27550908-sjwfm:/#

有人能指出一个可能的问题吗?
发布于 2022-05-20 15:01:38
尝试将args更改为command
...
command:
- /bin/bash
- -c
- /root/mysqldump.sh "(${MYSQLDUMP_DATABASES})" > /proc/1/fd/1 2>/proc/1/fd/2 || echo KO > /tmp/healthcheck
...https://stackoverflow.com/questions/72320893
复制相似问题