PostgreSQL, MySQL, Redis,
MongoDB, ClickHouse.
kubectl apply — c'est tout.
Cinq bases de données entièrement managées sur Hikube. Réplication automatique, failover, sauvegardes S3, credentials auto-générés. Zéro maintenance du moteur de base de données.
5 BDD
HA native
S3 backup
0 config
Le bon moteur pour chaque usage
Chaque service repose sur un opérateur Kubernetes reconnu : CloudNativePG, MariaDB-Operator, Spotahome, Altinity. La gestion du cycle de vie (déploiement, réplication, failover, backup) est entièrement automatisée.
Chaque base de données en détail
Postgres
Service PostgreSQL managé basé sur CloudNativePG. Un primary accepte les écritures, les réplicas sont synchronisés en streaming replication depuis le primary. En cas de panne, un réplica est automatiquement promu sans intervention manuelle.
Les réplicas sont répartis sur des datacenters différents. Avec replicas: 3, vous obtenez 1 primary + 2 standbys sur 3 sites.
- Sauvegardes WAL + PITR
Les WAL sont archivés en continu vers S3. Restauration possible à n'importe quel instant entre deux backups. - Utilisateurs et bases déclaratifs
Déclarez vos users, databases, rôles admin et readonly directement dans le manifeste. Credentials stockés dans un Secret auto-généré. - Extensions PostgreSQL
Activez uuid-ossp, pgcrypto, hstore et d'autres extensions par base dans la section databases[name].extensions. - Réplication synchrone optionnelle
Configurez quorum.minSyncReplicas pour qu'une transaction ne soit validée qu'après confirmation d'un réplica.
Recommandation production
apiVersion: apps.cozystack.io/v1alpha1
kind: Postgres
metadata:
name: example
spec:
replicas: 3
resourcesPreset: micro
size: 10Gi
users:
user1:
password: strongpassword
databases:
myapp:
roles:
admin:
- user1
readonly:
- user2
extensions:
- uuid-ossp
quorum:
minSyncReplicas: 0
maxSyncReplicas: 0
backup:
enabled: false
# destinationPath: s3://bucket/path/
# endpointURL: https://prod.s3.hikube.cloud
# retentionPolicy: 30d
MySQL
Service MySQL managé basé sur MariaDB-Operator. MariaDB est un fork open-source de MySQL entièrement compatible avec les clients et protocoles MySQL — vos applications fonctionnent sans modification. Avec replicas: 3, vous obtenez 1 primary + 2 réplicas répartis sur des datacenters différents.
La réplication utilise le binlog de MariaDB. En cas de panne du primary, l'opérateur promeut automatiquement un réplica.
- Compatible MySQL 100%
Clients, protocoles, drivers MySQL fonctionnent sans adaptation. Le CRD s'appelle MySQL, l'opérateur utilise MariaDB en interne. - Sauvegardes Restic vers S3
Snapshots chiffrés avec rétention configurable (--keep-last, --keep-daily). Stockés sur n'importe quel bucket S3 compatible. - Exposition externe optionnelle
external: true crée un service LoadBalancer avec IP publique pour les connexions hors cluster. - Switchover manuel
Bascule planifiée du primary vers un autre nœud via modification du manifeste — utile pour la maintenance.
Exposition externe
apiVersion: apps.cozystack.io/v1alpha1
kind: MySQL
metadata:
name: example
spec:
replicas: 3
resourcesPreset: nano
size: 10Gi
external: true
users:
user1:
password: hackme
maxUserConnections: 1000
databases:
myapp1:
roles:
admin:
- user1
readonly:
- user2
backup:
enabled: false
# resticPassword: <password>
# s3Bucket: s3. example.org/mysql
# schedule: "0 2 * * *"
Redis
Service Redis managé avec architecture master-réplicas et Redis Sentinel. Avec replicas: 3, vous obtenez 3 pods Redis (master + réplicas) et 3 pods Sentinel pour la supervision. Le Sentinel détecte la panne du master et promeut automatiquement un réplica.
Les données sont persistées via RDB/AOF sur des volumes Kubernetes. Le mot de passe est auto-généré et stocké dans un Secret.
- Sentinel et quorum automatiques
/strong>
3 pods Sentinel minimum pour garantir le quorum (majorité 2/3). Le failover est déclenché par consensus entre Sentinels.
- Authentification par défaut
authEnabled: true par défaut — mot de passe auto-généré. Désactivez uniquement en développement isolé. - Persistance RDB/AOF
Les données survivent aux redémarrages. Configurez la storageClass selon vos besoins de performance vs résilience. - Connexion via Sentinel recommandée
Connectez vos apps via le service rfs-redis-<name> (port 26379) pour suivre automatiquement le master après failover.
StorageClass et réplication
apiVersion: apps.cozystack.io/v1alpha1
kind: Redis
metadata:
name: example
spec:
replicas: 3 # 3 Redis + 3 Sentinel
resourcesPreset: nano
size: 1Gi
authEnabled: true # Mot de passe auto-généré
external: false
Bash
# Récupérer le mot de passe
kubectl get secret redis-example-auth \
-o json 1 jq -r \
' data | to_entries[] | "\ (.key): \. value |@base64d)"'
MongoDB
Service MongoDB managé basé sur le MongoDB Kubernetes Operator. Chaque instance déploie un Replica Set — un primary accepte les écritures, les secondaries reçoivent les modifications en réplication oplog. En cas de panne du primary, une élection automatique désigne un nouveau primary parmi les secondaires.
MongoDB est une base orientée documents (BSON/JSON) sans schéma fixe, particulièrement adaptée aux données semi-structurées, aux APIs REST et aux applications dont le modèle de données évolue fréquemment.
- Replica Set avec élection automatique
3 membres minimum pour le quorum — 1 primary + 2 secondaries. Le primary est élu automatiquement par vote majoritaire en cas de panne. - Base orientée documents
Stockage BSON (JSON binaire), schéma flexible, indexation sur n'importe quel champ. Idéal pour les catalogues, profils utilisateurs, données IoT, APIs. - Sauvegardes S3 intégrées
Snapshots via Restic vers tout bucket S3 compatible — y compris les buckets Hikube Object Storage. - Credentials auto-générés
Utilisateurs et mots de passe déclarés dans le manifeste, stockés dans un Secret Kubernetes auto-généré.
Recommandation production
apiVersion: apps.cozystack.io/v1alpha1
kind: MongoDB
metadata:
name: example
spec:
replicas: 3 # 1 primary + 2 secondaries
resourcesPreset: micro
size: 10G1
users:
appuser:
password: strongpassword
roles:
myapp:
- readwrite
analyst:
password: readonlypass
roles:
myapp:
- read
backup:
enabled: false
# resticPassword: <password>
# s3Bucket: s3.example.org/mongo
# schedule: "0 2 * * *”
ClickHouse
Base de données OLAP orientée colonnes, optimisée pour les requêtes analytiques sur de grands volumes. L'architecture repose sur deux paramètres : les shards distribuent les données horizontalement (plus de shards = plus de capacité et de parallélisme), les réplicas dupliquent chaque shard pour la haute disponibilité.
ClickHouse Keeper (alternative à ZooKeeper, protocole Raft) coordonne la réplication entre les réplicas. Il nécessite un nombre impair d'instances (3 recommandé) pour le quorum.
- OLAP uniquement
ClickHouse n'est pas adapté aux transactions fréquentes (UPDATE/DELETE unitaires). Pour du transactionnel, utilisez PostgreSQL ou MySQL. - Sharding et parallélisme
Les requêtes SELECT s'exécutent en parallèle sur tous les shards. Pour de petits volumes, 1 shard + 2 réplicas suffit. - ClickHouse Keeper intégré
Déployé automatiquement avec 3 instances par défaut. Gère la coordination Raft entre les réplicas de chaque shard. - Sauvegardes Restic vers S3
Même modèle que MySQL — snapshots chiffrés, rétention configurable, endpoint S3 compatible Hikube.
Recommandation production
apiVersion: apps.cozystack.io/v1alpha1
kind: ClickHouse
metadata:
name: example
spec:
shards: 1 # Partitions horizontales
replicas: 2 # Copies par shard → 2 pods
resourcesPreset: small
size: 10Gi
clickhouseKeeper:
enabled: true
replicas: 3 # Toujours impair
resourcesPreset: micro
size: 1Gi
users:
user1:
password: strongpassword
analyst:
readonly: true
password: readonlypass
Moins d'ops, plus de code métier
Maintenir une base de données en production, c'est gérer des mises à jour de version, surveiller la réplication, configurer les sauvegardes, tester les procédures de restauration et intervenir à 3h du matin quand un primary tombe. Ce n'est pas de la valeur ajoutée, c'est de l'infrastructure.
Sur Hikube, cette charge disparaît. Vous déclarez ce que vous voulez, type de base, nombre de réplicas, taille, utilisateurs, et l'opérateur provisionne, réplique, bascule en failover et sauvegarde automatiquement. Vos équipes se concentrent sur les requêtes, le schéma et les performances applicatives, pas sur l'infrastructure.
Les bases de données sont hébergées en Suisse, dans le même datacenter que vos clusters Kubernetes Hikube. La latence entre votre application et votre base est minimale et vos données ne quittent pas l'espace européen.
Failover automatique sans intervention
Panne du primary ? L'opérateur promeut un réplica en quelques secondes. Aucune alerte à 3h du matin, aucune action manuelle.
Scaling déclaratif
Changez replicas ou size dans le manifeste, appliquez. L'opérateur s'occupe du rolling update sans downtime.
Sauvegardes testables et planifiées
WAL archiving pour PostgreSQL, Restic pour MySQL / MongoDB / ClickHouse. Rétention configurable, restauration documentée. Une sauvegarde qui n'a jamais été testée n'est pas une sauvegarde.
Credentials Kubernetes-natifs
Chaque base génère un Secret dans votre namespace. Injectez-le dans vos pods via envFrom, aucune clé en clair dans vos manifestes ou dépôts Git.
Quelle base pour quel besoin ?
Chaque moteur a ses forces. Voici les situations concrètes où chacun s'impose et pourquoi.
Application SaaS multi-tenant
Chaque client dispose d'un schéma isolé dans la même instance PostgreSQL. Transactions ACID, contraintes d'intégrité, jointures complexes. Le réplica secondaire absorbe les requêtes de reporting sans impacter le primary.
CMS et plateforme e-commerce
WordPress, Magento, PrestaShop. Toutes ces applications sont conçues pour MySQL. Migration depuis un MySQL auto-hébergé sans changement de code. Le LoadBalancer externe donne un accès direct depuis les outils d'administration.
Cache de sessions et rate limiting
Stockage de sessions utilisateurs dans une API haute fréquence. Latence sub-milliseconde, expiration automatique des clés (TTL), compteurs atomiques pour le rate limiting. Le Sentinel garantit la continuité même si le master tombe.
Catalogue produits et API REST
Catalogue e-commerce avec des attributs variables selon la catégorie (vêtements, électronique, alimentaire). Le schéma flexible de MongoDB évite les migrations de table à chaque nouveau type de produit. Indexation sur n'importe quel champ imbriqué..
Analytics temps réel sur logs applicatifs
Ingestion de milliards d'événements (logs, métriques, clics). Les requêtes agrégées s'exécutent en quelques secondes même sur des tables de plusieurs téraoctets grâce au stockage colonne et au sharding. Idéal pour les dashboards BI et les alertes temps réel.
Stack complète pour une application ML
PostgreSQL pour les données structurées (utilisateurs, jobs), Redis pour la file de jobs ML et le cache des résultats, MongoDB pour les artefacts et métadonnées des modèles (structure variable), ClickHouse pour les métriques d'inférence en temps réel.
Ce que partagent tous les services
Chaque base de données managée sur Hikube expose les mêmes mécanismes fondamentaux, quelle que soit la technologie choisie.
-
Déploiement déclaratif via kubectl
Un manifeste YAML, un kubectl apply. L'opérateur provisionne et maintient le cluster automatiquement. -
Credentials auto-générés dans un Secret
Chaque service génère un Secret Kubernetes <service>-<name>-credentials contenant les mots de passe. Aucune configuration manuelle des accès. -
Sauvegardes S3 intégrées
PostgreSQL utilise WAL archiving + CloudNativePG. MySQL et ClickHouse utilisent Restic. Tous vers n'importe quel endpoint S3 compatible y compris les buckets Hikube. -
Presets de ressources ou configuration explicite
resourcesPreset (nano à 2xlarge) pour démarrer vite. resources.cpu et resources.memory pour les environnements de production. Les deux sont mutuellement exclusifs.
Questions sur les bases de données managées
Puis-je sauvegarder vers les buckets S3 Hikube ?
backup de votre manifeste. Les sauvegardes restent ainsi dans la même infrastructure, en Suisse.
Quelle est la différence entre resourcesPreset et resources ?
resourcesPreset applique un profil prédéfini (nano, micro, small…). C'est le moyen le plus simple de démarrer. Si vous définissez resources.cpu et resources.memory explicitement, le preset est entièrement ignoré. Les deux sont mutuellement exclusifs — ne les combinez pas dans le même manifeste.
ClickHouse est-il adapté à mes requêtes transactionnelles ?
UPDATE / DELETE unitaires, transactions ACID). Pour du transactionnel, utilisez PostgreSQL ou MySQL sur Hikube.
Le service MySQL est-il compatible avec mes applications MySQL existantes ?
Combien de réplicas Redis faut-il pour le failover automatique ?
replicas: 3, vous obtenez 3 pods Redis et 3 pods Sentinel, ce qui garantit le quorum même si un Sentinel est indisponible.