Cloud
Blog
Cloud12 min

Déployer Collabora Online + Nextcloud sur Kubernetes avec Hikube

Matthieu Robin18 février 2022

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 :

Collabora Nextcloud 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

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.

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.

Cet article vous parle ?

Hidora peut vous accompagner sur ce sujet.

Besoin d'un accompagnement ?

Parlons de votre projet. 30 minutes, sans engagement.