Exécuter Collabora en ligne sur plusieurs nœuds Kubernetes

Pour un déploiement Collabora Online multi-nœuds, utilisez le graphique Helm Kubernetes de Collabora derrière un proxy d'entrée ou un proxy inverse afin de centraliser toutes les requêtes concernant un même document sur le même pod Collabora. Cette affinité de session est essentielle : un équilibrage de charge classique de type round-robin peut répartir les requêtes d'édition et de presse-papiers d'un utilisateur sur différents pods et perturber l'édition collaborative. L'exemple ci-dessous utilise trois réplicas, un proxy d'entrée NGINX et un nombre fixe de réplicas ; remplacez les noms d'hôtes et le secret TLS par les vôtres.

Une invite de terminal avec la commande permettant d'ajouter le dépôt officiel Collabora Helm
La commande du terminal ajoute le dépôt officiel de graphiques Helm de Collabora avant le déploiement.

De quoi avez-vous besoin avant d'ajouter des répliques ?

Vous avez besoin d'un cluster Kubernetes opérationnel avec au moins deux nœuds de travail, Helm, un contrôleur d'entrée prenant en charge la règle d'affinité requise, un nom DNS tel que `@ office.example.comCollabora.com` et un certificat TLS pour ce nom. Nextcloud doit être accessible par chaque pod Collabora à son origine WOPI publique, par exemple `@ https://cloud.example.comCollabora.com`. CODE et Nextcloud sont des services distincts ; ce guide configure la couche Collabora puis connecte son URL publique à Nextcloud Office.

Utilisez la configuration multi-réplicas documentée du graphique Collabora plutôt que de placer plusieurs conteneurs Docker indépendants derrière un équilibreur de charge générique. Un équilibreur de charge qui répartit chaque requête sans tenir compte de la source WOPI indiquée dans la documentation peut interrompre les sessions. Ce guide suit les instructions officielles du graphique Helm Collabora, disponibles le 10 octobre 2026. Les valeurs du graphique peuvent changer ; vérifiez donc les valeurs pour la version exacte que vous prévoyez d'installer.

1. Configurez les réplicas, l'affinité d'entrée et l'hôte WOPI.

Ajoutez le dépôt de graphiques, mettez à jour son index et examinez les valeurs par défaut actuelles du graphique avant d'écrire votre fichier de remplacement :

helm repo add collabora https://collaboraonline.github.io/online/
helm repo update
helm show values collabora/collabora-online

Créez le cluster my_values.yamlavec les paramètres de base ci-dessous. Cet exemple utilise l'annotation NGINX Ingress décrite dans le fichier README du graphique Collabora. Le hachage est effectué de WOPISrcsorte que les requêtes associées à un même document atteignent le même pod. La connexion TLS publique est également terminée au niveau de l'entrée ; les paramètres du serveur Collabora affichés correspondent à ce modèle TLS terminé par un proxy.

Un éditeur YAML affichant trois réplicas Collabora, la mise à l'échelle automatique désactivée et le hachage d'entrée NGINX par WOPISrc
Le fichier de valeurs définit un nombre fixe de répliques et achemine les requêtes de chaque document via WOPISrc.
replicaCount: 3
autoscaling:
  enabled: false

ingress:
  enabled: true
  className: nginx
  annotations:
    nginx.ingress.kubernetes.io/upstream-hash-by: "$arg_WOPISrc"
    nginx.ingress.kubernetes.io/proxy-body-size: "0"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "600"
  hosts:
    - host: office.example.com
      paths:
        - path: /
          pathType: ImplementationSpecific
  tls:
    - secretName: office-example-tls
      hosts:
        - office.example.com

collabora:
  aliasgroups:
    - host: "https://cloud.example.com:443"
  extra_params: --o:ssl.enable=false --o:ssl.termination=true

L' aliasgroupsentrée correspond à l'hôte WOPI de Nextcloud, et non au nom d'hôte Collabora. Veillez à utiliser une configuration précise, en respectant le schéma, le nom d'hôte et le port fournis par Nextcloud. Le secret TLS d'entrée doit se trouver dans l'espace de noms d'entrée et contenir un certificat valide office.example.com. Si la connexion TLS se termine ailleurs, suivez le modèle de proxy correspondant dans la documentation du graphique au lieu de copier extra_paramsaveuglément les deux indicateurs.

Attention : la mise à l’échelle automatique dépend de la version. L’exemple du fichier README du graphique désactive la mise à l’échelle automatique et prévient que celle-ci peut perturber l’édition collaborative et les opérations copier-coller, alors que le fichier de valeurs actuellement publié l’active par défaut. Pour obtenir un cluster initial prévisible, désactivez-la explicitement et choisissez un nombre de réplicas fixe. Ne réactivez la mise à l’échelle automatique qu’après avoir consulté les recommandations de la version exacte du graphique et effectué des tests de montée et de descente en charge lors de sessions d’édition réelles.

2. Installez le graphique et vérifiez l'emplacement des modules.

Installez le graphique dans un espace de noms dédié. Le dépôt officiel du graphique documente ce modèle de commande :

helm install --create-namespace \
  --namespace collabora \
  collabora-online collabora/collabora-online \
  -f my_values.yaml

Vérifiez ensuite que le déploiement a atteint le nombre de réplicas souhaité et voyez quels nœuds de travail hébergent les pods :

Une invite de commande dans le terminal avec `kubectl get pods -n collabora -o wide` permet d'inspecter l'emplacement des pods.
Utilisez la liste détaillée des pods pour vérifier leur état de préparation et le nœud attribué à chaque réplique.
kubectl get pods -n collabora -o wide
kubectl get ingress -n collabora
helm status collabora-online -n collabora

Vérifiez que les trois pods sont prêts, que l'entrée possède l'hôte attendu et que les réplicas sont répartis sur les nœuds de travail si une résilience au niveau des nœuds est requise. Le nombre de réplicas seul ne garantit pas que Kubernetes placera les pods sur des nœuds distincts. Le modèle de graphique officiel expose les paramètres de sélection des nœuds, d'affinité et de tolérance ; configurez des règles d'ordonnancement adaptées à votre cluster et validez le graphique généré avant de vous y fier. Si votre version de graphique n'expose pas la stratégie dont vous avez besoin, utilisez une extension de graphique prise en charge ou une personnalisation de déploiement Kubernetes plutôt que de supposer que les pods sont répartis.

3. Connectez-vous à Nextcloud et vérifiez l'affinité des documents.

Dans Nextcloud, installez ou activez l' application Nextcloud Office , puis ouvrez les paramètres d'administration → Office . Sélectionnez le serveur Collabora externe et saisissez https://office.example.coml'URL du serveur. Cette URL correspond au point de terminaison TLS public accessible à la fois par le serveur Nextcloud et par les navigateurs des utilisateurs ; ne saisissez pas l'adresse IP du pod ni l'adresse du service interne.

Ouvrez un fichier DOCX ou ODT de test depuis Nextcloud. Modifiez-le depuis deux sessions utilisateur distinctes et vérifiez que les modifications sont visibles pour les deux utilisateurs. Consultez également les outils de développement du navigateur ou les journaux d'entrée pour détecter d'éventuelles erreurs WebSocket ; l'entrée doit maintenir la connexion à l'éditeur ouverte en permanence. Si les requêtes d'un fichier sont réparties sur plusieurs pods, vérifiez que le WOPISrcparamètre de requête est présent à l'endroit où l'entrée applique la règle de hachage et que le contrôleur d'entrée installé respecte l'annotation.

Un éditeur de documents Collabora Online affichant une liste de contrôle de déploiement de cluster avec une barre d'outils de mise en forme
Un document ouvert permet à l'utilisateur de vérifier son identité une fois que Nextcloud pointe vers l'URL Collabora en cluster.

Que prouve un cluster sain ?

Un test réussi confirme que Nextcloud peut accéder au point de terminaison Collabora et qu'un document peut être modifié via l'entrée configurée. Il ne garantit cependant pas la continuité de chaque session active en cas de panne d'un pod ou d'un nœud. L'état d'édition étant géré par le pod hébergeant le document, une panne peut contraindre les utilisateurs à se reconnecter ou à rouvrir un fichier, même si d'autres répliques restent disponibles. Il est recommandé de tester les scénarios de maintenance et de panne avec des documents non critiques et de planifier les mises à niveau en prenant en compte la gestion des sessions WebSocket de longue durée.

Pour connaître la syntaxe actuelle et les limitations, consultez le fichier README et les valeurs du graphique Helm Kubernetes officiel de Collabora , le fichier de valeurs du graphique publié et le manuel de configuration d'Office pour Nextcloud . Vérifiez que les paramètres correspondent à la version du graphique que vous installez, car les exemples et les valeurs par défaut du dépôt peuvent différer.

Laisser un commentaire

Exécuter Collabora en ligne sur plusieurs nœuds Kubernetes

Exécuter Collabora en ligne sur plusieurs nœuds Kubernetes

Déployez des réplicas Collabora CODE avec Helm, conservez chaque document sur un pod via l'affinité WOPI et vérifiez l'entrée, le placement des nœuds et l'édition Nextcloud.

Rétablir la connexion WebSocket de Collabora via le proxy

Rétablir la connexion WebSocket de Collabora via le proxy

Tracez une erreur de négociation de socket entre le navigateur et coolwsd, puis faites correspondre la route du proxy inverse à votre version de Collabora, y compris la modification Apache CODE 26.04.

Corrigez les erreurs de preuve WOPI en vérifiant les clés, la découverte et les URL.

Corrigez les erreurs de preuve WOPI en vérifiant les clés, la découverte et les URL.

Détecter les échecs de preuve WOPI de Collabora dus à des clés non concordantes, des données de découverte obsolètes, une dérive d'horloge ou des modifications d'URL de proxy, sans affaiblir la validation.

Corriger un affichage incorrect du menu déroulant de la taille de police de Collabora Online

Corriger un affichage incorrect du menu déroulant de la taille de police de Collabora Online

Réinitialisez le zoom du navigateur, testez une session propre et identifiez quand un menu de taille incorrecte nécessite une mise à jour du serveur Collabora.

Connectez Nextcloud à un conteneur Collabora CODE auto-hébergé

Connectez Nextcloud à un conteneur Collabora CODE auto-hébergé

Déployez Collabora CODE avec Docker, connectez-le en toute sécurité à Nextcloud Office et vérifiez l'édition de documents grâce à des contrôles WOPI et proxy pratiques.

Suivi des échecs de connexion Collabora avec les journaux coolwsd

Suivi des échecs de connexion Collabora avec les journaux coolwsd

Activez temporairement coolwsd pour le débogage, capturez une ouverture ayant échoué et utilisez la séquence de journaux pour distinguer les problèmes WebSocket, WOPI, proxy et conteneur.

Définissez un mot de passe sécurisé pour la console d'administration Collabora

Définissez un mot de passe sécurisé pour la console d'administration Collabora

Configurez la connexion d'administrateur Collabora Online pour Docker ou Linux, redémarrez le service approprié et vérifiez le nouveau mot de passe sans le divulguer.

Diagnostic d'une utilisation élevée du processeur à l'aide de coolwsd ou loolwsd de Collabora

Diagnostic d'une utilisation élevée du processeur à l'aide de coolwsd ou loolwsd de Collabora

Avant de modifier les paramètres de Collabora ou de redémarrer le service, vérifiez si la charge du processeur provient de documents actifs, de processus de travail inactifs ou de la capacité du serveur.

Augmenter la limite de mémoire du conteneur CODE sans deviner

Augmenter la limite de mémoire du conteneur CODE sans deviner

Vérifiez si Docker limite la mémoire de Collabora CODE, augmentez la limite de mémoire de Compose en toute sécurité et confirmez que le conteneur en cours d'exécution a bien reçu la nouvelle limite.

Personnaliser les barres d'outils Collabora CODE sans modifier le code source

Personnaliser les barres d'outils Collabora CODE sans modifier le code source

Simplifiez Collabora CODE grâce au mode Compact ou à onglets et aux contrôles WOPI PostMessage pour masquer en toute sécurité les boutons, commandes et onglets sélectionnés.