Higlo
Higlo est notre opérateur kubernetes de gestion de données, en particulier sur
S3. Il est surtout capable à ce stade de synchroniser des buckets S3 sur
des backends rclone
à des fins de sauvegarde.
Cette page décrit notre configuration Higlo pour la sauvegarde.
Le remote de sauvegarde
Sur le Minio hébergé dans fr-halfa1
, nous disposons d’un bucket
garage
pour les sauvegardes générées par Higlo depuis les buckets
S3 de Kity.
Un remote Higlo nommé halfa-encrypted
est configuré dans le namespace
tedomum-backups
. Il est appuyé sur un second remote, en clair, nommé
halfa-plain
. Si Higlo supporte des remotes et synchronisations planifiées
dans multiples buckets, nous avons choisi de concentrer celles de TeDomum dans
un unique namespace pour simplifier la gestion.
Le remote utilise un overlay de chiffrement rclone
pour chiffrer les données
avant envoi.
Le remote de sauvegarde garage
Sur le cluster Garage de Kity, nous disposons d’une clé tedomum-backups
, en
lecture sur l’ensemble des buckets ayant besoin de sauvegarde.
Un remote nommé backups-garage
est configuré dans le namespace
tedomum-backups
.
Ajouter une synchronisation
Pour synchroniser un nouveau bucket de Garage, une synchronisation planifiée doit être
ajoutée dans le namespace tedomum-backups
:
apiVersion: higlo.acides.org/v1alpha1
kind: Sync
metadata:
name: bucket-name
namespace: tedomum-backups
spec:
source:
remote: backups-garage
path: /bucket-name/path/eventuel
destination:
remote: halfa-encrypted
path: /bucket-name/path/eventuel
# s'assurer que les backups sont étalés dans le temps
schedule: "0 4 * * *"
# conserve les différences
backup: true
Consulter l’état des synchronisations
L’état des remotes et des synchronisations Higlo peut déjà être consulté via les objets Higlo :
kubectl get remote -n tedomum-backups
kubectl get sync -n tedomum-backups
Sinon, Higlo génère en réalité des CronJob
et donc des Job
pour chaque
backup :
kubectl get cronjob -n tedomum-backups
kubectl get job -n tedomum-backups
Les jobs de backup et les pods associés remontent en erreur explicite en cas de problème.