Introduction : Une alternative souveraine à Google Workspace et Microsoft 365
Nextcloud s'est établi comme la solution de référence pour l'auto-hébergement collaboratif. Au-delà du simple stockage de fichiers, Nextcloud offre une suite complète de services : calendrier, contacts, gestion de tâches, et communication en temps réel. En y intégrant Collabora Online, vous bénéficiez d'une suite bureautique complète avec édition collaborative de documents.
Pour les organisations soucieuses de souveraineté des données et de conformité RGPD, cette combinaison représente une alternative robuste à Google Workspace ou Microsoft 365. Et lorsque vous la déployez sur Kubernetes via Hikube, vous accédez à la scalabilité, la résilience et la flexibilité que seule l'orchestration de conteneurs peut offrir.
Ce guide vous accompagne dans le déploiement de cette architecture sur Hikube, la plateforme Kubernetes managée de Hidora.
Pourquoi Kubernetes pour Nextcloud + Collabora ?
Trois raisons principales motivent un déploiement Kubernetes plutôt qu'une simple instance de machine virtuelle.
Scalabilité élastique
Avec Kubernetes, vous dimensionnez vos ressources selon la demande. Les pods Nextcloud et Collabora se répliquent horizontalement. Lors d'une augmentation du trafic, de nouveaux pods démarrent automatiquement. Une fois le pic passé, ils se réduisent. Vous payez uniquement pour les ressources consommées.
Résilience et haute disponibilité
Kubernetes s'assure que vos services restent disponibles même en cas de défaillance de nœud. Les pods sont redémarrés automatiquement. Les mises à jour s'effectuent sans interruation de service grâce aux stratégies de rolling update. Vos données critiques de collaboration ne connaissent pas d'interruption.
Gestion simplifiée des mises à jour
Grâce aux Helm charts, les mises à jour de Nextcloud et Collabora deviennent prévisibles et testables. Vous contrôlez précisément les versions déployées et pouvez revenir à une version antérieure en quelques secondes si nécessaire.
Architecture déployée sur Hikube
Voici les composants de notre architecture Kubernetes :
Tier frontal
- Ingress Controller : Gère l'accès HTTP/HTTPS externe avec certificats TLS automatisés
- Nextcloud Pods : Replicas multiples pour l'équilibreur de charge
- Collabora Online Pods : Service d'édition documentaire scalable
Tier applicatif
- Service Nextcloud : ClusterIP exposant les replicas Nextcloud
- Service Collabora : ClusterIP pour la communication intra-cluster
- ConfigMaps : Stockage des configurations Nextcloud
- Secrets : Données sensibles (identifiants, clés API)
Tier données
- PostgreSQL StatefulSet : Base de données relationnelle avec persistance
- Redis Cache : Améliore les performances de sessions et mise en cache
- Persistent Volumes (PV) : Stockage des fichiers Nextcloud
- Persistent Volumes Claims (PVC) : Demandes de stockage pour les données
Hidora fournit les Persistent Volumes managés sur son infrastructure de stockage distribuée, garantissant durabilité et résilience.
Déploiement via Helm charts
Helm est le gestionnaire de paquets Kubernetes. Les Helm charts encapsulent toute la configuration nécessaire.
Installation des prérequis
Commencez par initialiser votre contexte Hikube :
kubectl config use-context hikube-cluster
kubectl create namespace nextcloud
Ajout des dépôts Helm
helm repo add nextcloud https://nextcloud.github.io/helm/
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
Configuration des valeurs Helm
Créez un fichier values-nextcloud.yaml :
replicaCount: 3
image:
repository: nextcloud
tag: "28.0"
nextcloud:
host: nextcloud.votre-domaine.ch
username: admin
password: changez-moi
persistence:
enabled: true
storageClass: "hikube-fast"
size: 100Gi
redis:
enabled: true
auth:
enabled: true
password: redis-secure-password
postgresql:
enabled: true
postgresqlPassword: postgres-secure-password
primary:
persistence:
enabled: true
size: 50Gi
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
hosts:
- host: nextcloud.votre-domaine.ch
paths:
- path: /
pathType: Prefix
tls:
- secretName: nextcloud-tls
hosts:
- nextcloud.votre-domaine.ch
Déploiement Nextcloud
helm install nextcloud nextcloud/nextcloud \
-n nextcloud \
-f values-nextcloud.yaml
Configuration de Collabora Online
Pour Collabora Online, utilisez le chart officiel :
helm repo add collabora https://collaboraonline.github.io/helm-collabora-online
helm repo update
Fichier values-collabora.yaml :
replicaCount: 2
image:
tag: "24.04"
persistence:
enabled: true
size: 20Gi
resources:
limits:
cpu: 2000m
memory: 2Gi
requests:
cpu: 1000m
memory: 1Gi
ingress:
enabled: true
className: nginx
annotations:
cert-manager.io/cluster-issuer: "letsencrypt-prod"
hosts:
- host: collabora.votre-domaine.ch
paths:
- path: /
pathType: Prefix
tls:
- secretName: collabora-tls
hosts:
- collabora.votre-domaine.ch
Déploiement :
helm install collabora collabora/collabora-online \
-n nextcloud \
-f values-collabora.yaml
Bonnes pratiques de déploiement
Un déploiement réussi va au-delà de la simple installation. Voici les pratiques que nous recommandons systématiquement à nos clients Hikube.
Séparer les secrets de la configuration. Ne stockez jamais les mots de passe directement dans vos fichiers values.yaml. Utilisez un gestionnaire de secrets comme Sealed Secrets ou External Secrets Operator pour injecter les credentials depuis un vault sécurisé. Sur Hikube, vous pouvez connecter directement HashiCorp Vault ou utiliser les Kubernetes Secrets chiffrés au repos.
Définir des PodDisruptionBudgets. Pour garantir la disponibilité pendant les mises à jour ou les maintenances de nœuds, configurez un PDB qui empêche Kubernetes de supprimer trop de pods simultanément :
apiVersion: policy/v1
kind: PodDisruptionBudget
metadata:
name: nextcloud-pdb
namespace: nextcloud
spec:
minAvailable: 2
selector:
matchLabels:
app.kubernetes.io/name: nextcloud
Configurer les health checks correctement. Nextcloud met plusieurs secondes à démarrer. Ajustez les probes pour éviter les redémarrages intempestifs :
livenessProbe:
httpGet:
path: /status.php
port: 80
initialDelaySeconds: 30
periodSeconds: 15
timeoutSeconds: 5
readinessProbe:
httpGet:
path: /status.php
port: 80
initialDelaySeconds: 15
periodSeconds: 10
Activer les Network Policies. Limitez les communications réseau entre les pods. Collabora ne devrait communiquer qu'avec Nextcloud, et Nextcloud ne devrait accéder qu'à PostgreSQL et Redis. Toute autre communication doit être explicitement refusée.
Volumes persistants sur Hikube
Hikube propose plusieurs classes de stockage optimisées pour différents usages.
Pour les fichiers Nextcloud (lecture/écriture fréquente, haute disponibilité)
Utilisez hikube-fast, basée sur SSD répliquée avec protection contre les défaillances de nœud.
Pour PostgreSQL (accès séquentiel intense)
Utilisez hikube-general, offrant un bon équilibre performance/coût avec réplication.
Configuration des PVC
Hikube crée automatiquement les Persistent Volumes lors du lancement des Helm charts. Vous pouvez monitorer leur utilisation :
kubectl get pvc -n nextcloud
kubectl describe pvc nextcloud-nextcloud -n nextcloud
Pour augmenter la taille dynamiquement sans interruption :
kubectl patch pvc nextcloud-nextcloud -n nextcloud \
-p '{"spec":{"resources":{"requests":{"storage":"200Gi"}}}}'
Configuration d'Ingress avec TLS
Hikube inclut un Ingress Controller Nginx et cert-manager pour les certificats Let's Encrypt automatiques.
Pour activer HTTPS :
kubectl apply -f - <<EOF
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: letsencrypt-prod
spec:
acme:
server: https://acme-v02.api.letsencrypt.org/directory
email: admin@votre-domaine.ch
privateKeySecretRef:
name: letsencrypt-prod
solvers:
- http01:
ingress:
class: nginx
EOF
Vérifiez les certificats :
kubectl get certificate -n nextcloud
Scaling et optimisation des performances
Scaling horizontal
Ajustez les replicas Nextcloud selon votre charge :
kubectl scale deployment nextcloud --replicas=5 -n nextcloud
Ou via Helm :
helm upgrade nextcloud nextcloud/nextcloud \
-n nextcloud \
--set replicaCount=5 \
-f values-nextcloud.yaml
Autoscaling avec HPA
Pour une scalabilité automatique basée sur la charge CPU :
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: nextcloud-hpa
namespace: nextcloud
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: nextcloud
minReplicas: 3
maxReplicas: 10
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 70
Optimisation des ressources
Pour une collaboration optimal, Hikube vous permet d'ajuster les limites de ressources :
kubectl set resources deployment nextcloud \
--limits=cpu=2,memory=2Gi \
--requests=cpu=500m,memory=512Mi \
-n nextcloud
Collabora Online, gourmand en ressources pour l'édition, bénéficie de 2 CPU et 2 GB RAM minimum par pod.
Monitoring et observabilité
Un déploiement de production sans monitoring, c'est naviguer à l'aveugle. Voici comment mettre en place une observabilité complète pour votre stack Nextcloud + Collabora.
Métriques Prometheus
Nextcloud expose des métriques via l'endpoint /ocs/v2.php/apps/serverinfo/api/v1/info. Configurez un ServiceMonitor pour les collecter automatiquement :
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
name: nextcloud-monitor
namespace: nextcloud
spec:
selector:
matchLabels:
app.kubernetes.io/name: nextcloud
endpoints:
- port: http
path: /ocs/v2.php/apps/serverinfo/api/v1/info
interval: 60s
Les métriques essentielles à surveiller incluent le nombre d'utilisateurs actifs, l'espace de stockage utilisé, le nombre de fichiers partagés, et les performances de la base de données.
Alertes critiques
Configurez des alertes pour les situations qui nécessitent une intervention immédiate :
- Espace disque PVC > 85% : les utilisateurs stockent beaucoup de fichiers, et un PVC plein provoque des erreurs d'écriture silencieuses
- Pods Collabora en CrashLoopBackOff : l'édition collaborative est en panne, les utilisateurs ne peuvent plus modifier leurs documents
- Latence PostgreSQL > 500ms : la base de données ralentit, probablement à cause de requêtes non optimisées ou d'un manque de ressources
- Taux d'erreur HTTP 5xx > 1% : quelque chose ne fonctionne pas correctement côté serveur
Tableaux de bord Grafana
Créez un dashboard Grafana dédié qui affiche en temps réel l'état de santé de votre plateforme collaborative. Les panels les plus utiles incluent le nombre de sessions d'édition Collabora actives, l'utilisation CPU/mémoire par pod, le hit rate du cache Redis, et le lag de réplication PostgreSQL si vous utilisez un setup haute disponibilité.
Cette visibilité opérationnelle permet d'anticiper les problèmes avant qu'ils n'affectent les utilisateurs, et de justifier les décisions de scaling auprès de votre direction.
Conformité et souveraineté des données
RGPD et hébergement en Suisse
Vos données restent hébergées en Suisse sur l'infrastructure Hidora. Aucun tiers n'y accède. Vous contrôlez intégralement l'accès et les droits utilisateurs.
Sauvegardes et récupération
Hikube intègre les snapshots de volumes persistants. Configurez une politique de sauvegarde :
kubectl apply -f - <<EOF
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: nextcloud-backup
namespace: nextcloud
spec:
volumeSnapshotClassName: hikube-snapshoter
source:
persistentVolumeClaimName: nextcloud-nextcloud
EOF
Audit et logging
Activez les logs d'audit Hikube pour tracer tous les accès et modifications. Intégrez avec votre système SIEM pour une conformité continue.
Prochaines étapes et support
Le déploiement de Nextcloud avec Collabora Online sur Kubernetes demande expertise et attention aux détails. Configuration des certificats, optimisation des performances, gestion des volumes persistants, monitoring et scaling automatique constituent un ensemble technique non trivial.
Hikube simplifie l'infrastructure Kubernetes, mais la configuration applicative reste votre responsabilité. C'est où nos services de consulting et nos services managés apportent une valeur inestimable.
Hidora peut vous aider à :
- Designer l'architecture optimale pour vos besoins de collaboration
- Configurer et déployer Nextcloud + Collabora sur Hikube
- Mettre en place la haute disponibilité et les sauvegardes
- Optimiser les performances pour votre charge utilisateurs
- Gérer les mises à jour sécurisées
- Assurer la conformité RGPD et de souveraineté
Contactez notre équipe pour une consultation gratuite sur votre projet de collaboration souveraine.

CEO & Co-fondateur
Fondateur de Hidora, passionné par le cloud natif et la souveraineté numérique suisse. Plus de 15 ans dans l'écosystème cloud.



