apiVersion: v1
kind: ServiceAccount
metadata:
name: crontab-sa
namespace: kube-public
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
name: crontab-role
namespace: kube-public
rules:
- apiGroups: [""]
resources: ["pods", "pods/exec", "deployments", "statefulsets", "daemonsets"]
verbs: ["get", "list", "watch", "update", "patch", "create", "exec"]
- apiGroups: ["apps"]
resources: ["deployments"]
verbs: ["get", "list", "watch", "update", "patch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: crontab-role-binding
namespace: kube-public
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: crontab-role
subjects:
- kind: ServiceAccount
name: crontab-sa
namespace: kube-public
---
apiVersion: batch/v1
kind: CronJob
metadata:
name: confluence-bak
namespace: kube-public
spec:
concurrencyPolicy: Allow
failedJobsHistoryLimit: 1
jobTemplate:
spec:
template:
spec:
containers:
- args:
- >
#!/bin/bash
#这里要确认confluence备份的日期格式#这里要确认confluence备份的日期格式以及confluence备份系统执行备份的时间(默认每日凌晨2点)
today=$(date +%Y_%m_%d)
kubectl cp
kube-public/confluence-0:/var/atlassian/application-data/confluence/backups/backup-$today.zip
/confluence-bak/confluence-bak-$today.zip
kubectl -n kube-public exec confluence-0 -- find
/var/atlassian/application-data/confluence/backups/ -mtime +3
-type f -exec rm -f {} \;
command:
- /bin/bash
- '-c'
image: harbor.uenpay.com/base/kubectl
imagePullPolicy: Always
name: confluence-bak
volumeMounts:
- mountPath: /confluence-bak
name: confluence-bak
dnsPolicy: ClusterFirst
restartPolicy: OnFailure
schedulerName: default-scheduler
securityContext:
runAsUser: 0
serviceAccount: crontab-sa
serviceAccountName: crontab-sa
terminationGracePeriodSeconds: 30
volumes:
- name: confluence-bak
nfs:
path: /data/nfs/confluence-bak
server: d1-nfs001
schedule: 30 18 * * *
successfulJobsHistoryLimit: 1
suspend: false |