Stockage distribué Ceph sur Proxmox VE 3 Nœuds
Pour garantir la haute disponibilité des données sur l'infrastructure comoweb.fr, l'ensemble du stockage est confié à un cluster Ceph distribué et auto-cicatrisant, configuré de manière hyperconvergée sur les 3 nœuds physiques Proxmox VE.
Ceph fournit simultanément trois modes de stockage distincts et complémentaires :
- Ceph RBD (RADOS Block Device) : Volumes blocs ultra-rapides pour les PersistentVolumes Kubernetes et disques de VMs.
- CephFS : Système de fichiers distribué compatible POSIX avec montage multi-clients (
ReadWriteMany- RWX). - Ceph S3 Object Storage (RadosGW) : API compatible AWS S3 pour le stockage de sauvegardes, images et buckets applicatifs.
Cluster Proxmox VE (3 Nœuds Physiques)
┌─────────────────────┬─────────────────────┬─────────────────────┐
│ Nœud pve-01 │ Nœud pve-02 │ Nœud pve-03 │
│ OSD 0 (NVMe/SSD) │ OSD 1 (NVMe/SSD) │ OSD 2 (NVMe/SSD) │
│ MON 1 / MGR │ MON 2 / MGR │ MON 3 / MGR │
└──────────┬──────────┴──────────┬──────────┴──────────┬──────────┘
│ │ │
└─────────────────────┼─────────────────────┘
│
Réseau Dédié Ceph (10G Mesh)
▼
┌───────────────────────────────────────────────┐
│ Pools Ceph Déclaratifs │
├───────────────────────┬───────────────────────┤
│ Ceph RBD (Block) │ CephFS (Shared RWX) │
│ -> PersistentVolumes│ -> Partage multi-pod│
├───────────────────────┴───────────────────────┤
│ S3 RadosGW (Object Storage) │
│ -> Buckets AWS S3 compatibles │
└───────────────────────────────────────────────┘
1. Ceph RBD : Le moteur des disques Kubernetes
Les pods Kubernetes ont besoin de disques persistants performants pour les bases de données (MariaDB, PostgreSQL) et les logs applicatifs. Grâce au pilote Ceph-CSI, Kubernetes alloue automatiquement des volumes RBD :
# Définition du StorageClass Ceph RBD
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: ceph-rbd
provisioner: rbd.csi.ceph.com
parameters:
clusterID: comoweb-ceph-cluster
pool: k8s-rbd-pool
imageFeatures: layering
csi.storage.k8s.io/provisioner-secret-name: csi-rbd-secret
csi.storage.k8s.io/provisioner-secret-namespace: ceph-csi
reclaimPolicy: Delete
allowVolumeExpansion: true
2. CephFS : Le partage de fichiers en RWX
Pour les besoins de synchronisation où plusieurs pods doivent accéder au même volume en lecture et écriture simultanées (comme les configurations partagées ou les répertoires d'upload), CephFS fournit un système de fichiers POSIX distribué sans goulot d'étranglement NFS.
3. S3 RadosGW : Object Storage natif
Pour s'affranchir des services cloud propriétaires comme AWS S3 tout en conservant une compatibilité API standard, le RadosGW Ceph expose une interface d'API objet S3 complète :
- Sauvegardes automatisées des bases de données et des clusters.
- Stockage des artefacts GitLab CI et des dépôts de paquetages.
- Chiffrement au repos et gestion des politiques IAM de buckets.