- Adjust the script to include logic for cleaning up old backups - Added support for handling PostgreSQL data directories - Ensure temporary directories are cleaned after use This update improves the backup process by ensuring that old backups are properly cleaned up to save storage space and enhance efficiency. It also includes logic to handle specific cases for PostgreSQL directories, providing a more robust backup operation.
121 lines
3.2 KiB
YAML
121 lines
3.2 KiB
YAML
apiVersion: apps/v1
|
|
kind: DaemonSet
|
|
metadata:
|
|
name: node-backup-daemon
|
|
namespace: backup-system
|
|
spec:
|
|
selector:
|
|
matchLabels:
|
|
app: node-backup
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: node-backup
|
|
spec:
|
|
#nodeSelector:
|
|
# kubernetes.io/hostname: "vkvm-us1"
|
|
affinity:
|
|
nodeAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
nodeSelectorTerms:
|
|
- matchExpressions:
|
|
- key: kubernetes.io/hostname
|
|
operator: NotIn
|
|
values:
|
|
- vkvm-us2
|
|
- aliyun-gz2
|
|
# - matchExpressions:
|
|
# #- key: region
|
|
# # operator: NotIn
|
|
# # values:
|
|
# # - cn
|
|
# - key: kubernetes.io/hostname
|
|
# operator: In
|
|
# values:
|
|
# - zgocloud-us1
|
|
containers:
|
|
- name: backup-container
|
|
image: alpine:latest
|
|
imagePullPolicy: IfNotPresent
|
|
command:
|
|
- /bin/sh
|
|
- -c
|
|
- |
|
|
# 安装依赖工具
|
|
apk add --no-cache bash s3cmd tar rsync curl jq
|
|
|
|
# 启动一个循环,每分钟检查一次触发文件
|
|
while true; do
|
|
bash /scripts/s3cmd-trigger.sh
|
|
date
|
|
sleep 60
|
|
done
|
|
env:
|
|
- name: NODE_NAME # 使用 Downward API 获取 Pod 运行的节点名
|
|
valueFrom:
|
|
fieldRef:
|
|
fieldPath: spec.nodeName
|
|
- name: S3_ENDPOINT
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: s3-credentials
|
|
key: endpoint
|
|
- name: S3_ACCESS_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: s3-credentials
|
|
key: access-key
|
|
- name: S3_SECRET_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: s3-credentials
|
|
key: secret-key
|
|
- name: S3_BUCKET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: s3-credentials
|
|
key: bucket
|
|
- name: S3_SUBPATH
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: backup-config
|
|
key: subpath
|
|
optional: true
|
|
- name: BACKUPS_TO_KEEP
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: backup-config
|
|
key: backups-to-keep
|
|
optional: true
|
|
- name: USE_HTTPS
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: backup-config
|
|
key: use-https
|
|
optional: true
|
|
- name: SIGNATURE_V2
|
|
valueFrom:
|
|
configMapKeyRef:
|
|
name: backup-config
|
|
key: signature-v2
|
|
optional: true
|
|
volumeMounts:
|
|
- name: host-data
|
|
mountPath: /data
|
|
- name: scripts
|
|
mountPath: /scripts
|
|
- name: feishu-webhook-volume
|
|
mountPath: /etc/feishu-webhook # 挂载飞书 Webhook Secret
|
|
readOnly: true
|
|
volumes:
|
|
- name: host-data
|
|
hostPath:
|
|
path: /data
|
|
- name: scripts
|
|
configMap:
|
|
name: backup-script
|
|
defaultMode: 0755
|
|
- name: feishu-webhook-volume
|
|
secret:
|
|
secretName: feishu-webhook
|