Lab9 Job & CronJob Solution
Job
Créer un job nommé init permettant de créer un répertoire de sauvegarde dont le nom est passé par Variable d’Environnement
Créer un ConfigMap pour la variable d’environnement
vi cm-dir.ymlapiVersion: v1kind: ConfigMapmetadata: name: backup-dirdata: dir: sauvegardekubectl apply -f cm-dir.ymlCréer un Job pour Créer le répertoire de sauvegarde
vi job-init.ymlapiVersion: batch/v1kind: Jobmetadata: name: initspec: template: spec: restartPolicy: OnFailure containers: - name: init image: alpine:3.12 command: ["/bin/sh"] args: ["-c","mkdir /mnt/$BACKUP_DIR"] env: - name: BACKUP_DIR valueFrom: configMapKeyRef: name: backup-dir key: dir volumeMounts: - name: data mountPath: /mnt volumes: - name: data persistentVolumeClaim: claimName: nfs-pvcVérifier que le répertoire a été créé
ls -l /home/shares/userXCronJob
Créer un CronJob nommé backup qui permet de sauvegarder les logs (/var/log) du Node du cluster
vi cronjob.ymlapiVersion: batch/v1kind: CronJobmetadata: name: cronspec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: backup image: alpine:3.12 command: ["/bin/sh"] args: ["-c","tar -cvf /mnt/$BACKUP_DIR/backup.tar.`date +%h%d-%H%M` /logs_master"] env: - name: BACKUP_DIR valueFrom: configMapKeyRef: name: backup-dir key: dir volumeMounts: - name: logs mountPath: /logs_master - name: data mountPath: /mnt restartPolicy: OnFailure affinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: node-role.kubernetes.io/control-plane operator: Exists
volumes: - name: data persistentVolumeClaim: claimName: nfs-pvc - name: logs hostPath: path: /var/log type: Directorykubectl apply -f cronjob.ymlVérifier que la sauvegarde s’est bien effectuée
ls -l /home/shares/userX/sauvegarde