A
u
Belaid Youba Hadj Arab, Etienne Deneuve
Feb 20, 2024 · 2 min read

Système de backup pour Kibana avec Cronjob

Side view worker wearing gloves

Qu’est ce qu’un cronjob ?

CronJob créer de job de façon périodique. il est destiné à l’exécution d’actions régulières programmées telles que les sauvegardes, la génération de rapports, etc. Il exécute périodiquement un travail selon un calendrier donné, écrit au format Cron.

Persistent Volume & Persistent Volume Claim

  • Avant de déployer notre cronjob, nous devons d’abord préparer le terrain en déployant un Persistent Volume ainsi qu’un Persistent Volume Claim. c’est grace a eux qu’on pourra lier notre dossier où iront les backup et notre storage account.
  1. Voilà le premier yaml qu’on nommera fileshare-pv.yaml qui sera le Persistent Volume :

    apiVersion: v1
    kind: PersistentVolume
    metadata:
    annotations:
    pv.kubernetes.io/provisioned-by: file.csi.azure.com
    name: azurefilekibana
    namespace: <namespace-ou-est-déployé-kibana>
    spec:
    capacity:
    storage: 10Gi
    accessModes:
    - ReadWriteMany
    persistentVolumeReclaimPolicy: Retain
    storageClassName: azurefile-csi
    csi:
    driver: file.csi.azure.com
    readOnly: false
    volumeHandle: unique-volumeid
    volumeAttributes:
    resourceGroup:
    shareName:
    nodeStageSecretRef:
    name: azure-secret
    namespace: <namespace-ou-est-déployé-kibana>
    mountOptions:
    - dir_mode=0777
    - file_mode=0777
    - uid=0
    - gid=0
    - mfsymlinks
    - cache=strict
    - nosharesock
    - nobrl
  2. Le deuxième yaml, qu’on nommera fileshare-pvc.yaml sera quant a lui le Persistent Volume Claim :

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: azurefilekibana
    namespace: <namespace-ou-est-déployé-kibana>
    spec:
    accessModes:
    - ReadWriteMany
    storageClassName: azurefile-csi
    resources:
    requests:
    storage: 10Gi
  3. Et le dernier yaml sera celui qui contiendra les credentials pour pouvoir se lier a notre storage account, on le nommera fileshare-secret.yaml :

    apiVersion: v1
    kind: Secret
    metadata:
    name: azure-secret
    namespace: es
    type: Opaque
    data:
    azurestorageaccountkey: # doit être obligatoirement encodé en base64
    azurestorageaccountname: # doit être obligatoirement encodé en base64

    Pour récupérer la azurestorageaccountkey, allez dans portal, puis dans le storage account, et enfin Access keys.

Le cronjob

  • Pour que notre cronjob puisse fonctionner, il aura besoin de 3 composants :
  1. le dockerconfigjson qui sera utilisé pour pull l’image docker que nous avons crée et push dans le azure container registry
Backup Kibana Tutorial

Articles relatifs