Развертывание Collabora CODE в Kubernetes с помощью Helm

По состоянию на 10 октября 2026 года в реестре пакетов указана версия диаграммы 1.3.0 как последняя выпущенная версия. Установка диаграммы — лишь часть работающего развертывания. Вам также потребуется общедоступное имя хоста Collabora, действительная запись в списке разрешенных WOPI для хоста хранилища документов и настройка Ingress, которая обеспечивает обработку запросов для каждого документа в одном и том же поде. На момент написания статьи в реестре пакетов указана версия диаграммы 1.3.0; проверьте репозиторий перед установкой, поскольку версия диаграммы Helm и версия образа контейнера CODE — это разные значения.

В этой процедуре используется официальный collabora/collabora-onlineчарт и контроллер NGINX Ingress. В файле README чарта также приведены примеры использования HAProxy; аннотации для Ingress зависят от конкретного контроллера, поэтому используйте пример для вашего установленного контроллера, а не смешивайте разные аннотации.

Что подготовить в первую очередь

  • Кластер Kubernetes с правами на создание пространства имен, развертываний, сервисов и Ingress.
  • Helm 3 и установленный контроллер входящего трафика, способный предоставлять HTTPS-трафик для имени хоста, например office.example.com, .
  • Публичное имя хоста клиента WOPI, например Nextcloud или Seafile. Это хост, который Collabora должна разрешать; это не имя хоста Collabora.
  • Секретный ключ Kubernetes для учетных данных административной консоли Collabora. Не сохраняйте пример пароля из диаграммы и не добавляйте реальный пароль в файл значений.

1. Добавьте официальный репозиторий диаграмм и проверьте релиз.

Collabora публикует свой график из онлайн-репозитория проекта. Добавьте его, обновите локальный индекс и проверьте метаданные графика и значения по умолчанию перед установкой:

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

Версия диаграммы определяет пакет, а не обязательно тег образа CODE. Проверьте репозиторий образов и тег в значениях релиза, затем закрепите проверенную версию диаграммы для повторных обновлений.

Создайте секрет в пространстве имен, используя утвержденный вами рабочий процесс управления секретами. Значения диаграммы поддерживают существующий секрет и настраиваемые имена ключей; имена ключей по умолчанию — usernameи . Перед установкой passwordубедитесь, что секрет существует в пространстве имен.collabora

2. Настройте параметры хоста, входящего трафика и прокси-сервера WOPI.

Создайте файл my_values.yaml. Замените оба примера имен хостов на ваши фактические общедоступные домены. Значение aliasgroupsидентифицирует клиент WOPI (например, сервер Seafile или Nextcloud). Хост Ingress и server_nameидентифицируют службу Collabora, к которой обращаются браузеры пользователей.

replicaCount: 1

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

autoscaling:
  enabled: false

collabora:
  aliasgroups:
    - host: "https://files.example.com:443"
  extra_params: --o:ssl.enable=false --o:ssl.termination=true
  server_name: office.example.com:443
  existingSecret:
    enabled: true
    secretName: collabora-admin
    usernameKey: username
    passwordKey: password

В этом примере используется описанный в документации Collabora шаблон входящего трафика NGINX: запросы хешируются с помощью WOPISrcпараметра, а таймауты чтения и отправки прокси-сервера увеличиваются для сессий документов. Проверьте названия аннотаций в соответствии с вашей версией контроллера входящего трафика. Если вы используете HAProxy, используйте вместо этого аннотации HAProxy и конфигурацию балансировки, описанные в файле README диаграммы.

Параметры ssl.enable=false`and` ssl.termination=trueпредназначены для архитектуры, в которой TLS завершается на входе, а трафик от входа к поду является внутренним. Они не означают, что публичная конечная точка должна использовать HTTP. Сохраняйте имя хоста на входе по протоколу HTTPS и не предоставляйте напрямую доступ к службе пода по протоколу HTTP из интернета. Установите этот параметр, server_nameесли Collabora находится за обратным прокси-сервером или не может напрямую определить свое внешнее имя хоста.

Для нескольких фиксированных реплик установите replicaCountсоответствующие параметры и сохраните привязку сессии. В файле README исходного кода указано, что HPA отключен, поскольку масштабирование может нарушить совместное редактирование и копирование/вставку. Увеличение количества реплик само по себе не обеспечивает корректную маршрутизацию; убедитесь, что ваш входящий трафик отправляет запросы к одному и тому же документу в один и тот же под.

3. Установите Collabora CODE

Установите релиз из официального репозитория и дождитесь готовности развертывания:

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

kubectl get pods -n collabora
kubectl get ingress -n collabora

При обновлении существующей версии используйте helm upgradeто же имя версии, пространство имен и файл значений, а не создавайте вторую версию. Перед обновлением рабочей версии ознакомьтесь с примечаниями к выпуску диаграммы и внесенными изменениями.

Убедитесь, что под готов и что Ingress сообщает ожидаемый хост и адрес. Если он по-прежнему находится в состоянии ожидания, проверьте события и журналы, прежде чем изменять настройки ресурсов:

kubectl describe pods -n collabora
kubectl logs -n collabora deployment/<deployment-name>

Настройте параметры ЦП и памяти в соответствии с вашей рабочей нагрузкой и мощностью кластера. В файле README приведены примеры запросов и ограничений, но это не гарантирует работоспособность для каждого развертывания. Следите за возможными ограничениями, ошибками нехватки памяти и перезапусками.

4. Проверка обнаружения и редактирования документа.

После активации DNS и TLS отправьте запрос к конечной точке обнаружения Collabora, используя общедоступное имя хоста:

curl -fsS https://office.example.com/hosting/discovery

В успешном ответе должен содержаться XML-код обнаружения WOPI, а не страница ошибки входящего трафика или предупреждение о сертификате. Затем настройте свой WOPI-клиент, используя тот же общедоступный URL-адрес Collabora, и убедитесь, что Collabora aliasgroupsвключает имя хоста и порт HTTPS этого клиента. Точные настройки клиента зависят от используемого продукта хранения.

Откройте тестовый документ в клиенте WOPI и внесите небольшое изменение. Убедитесь, что редактор загрузился, что можно подключить вторую сессию браузера, если требуется совместная работа, и что изменения сохранены в хранилище. Эта сквозная проверка проверяет работу DNS, входящего TLS, маршрутизации сессий, авторизации хоста WOPI и передачи файлов.

Распространенные предположения, которые следует проверить

  • «Helm установлен, поэтому Collabora готова к работе в производственной среде». Диаграмма создает ресурсы Kubernetes, но DNS, TLS, авторизация хостов WOPI, маршрутизация входящего трафика и определение размера ресурсов по-прежнему зависят от вашего кластера. Проверьте каждый из пунктов выше.
  • «Хост входящего трафика и хост WOPI — это одни и те же настройки». Они часто различаются: хост входящего трафика — это публичный адрес Collabora; хост WOPI — это сервер хранения. Внесите каждое значение в соответствующее поле таблицы.
  • «Увеличение количества реплик автоматически улучшает взаимодействие». Диаграмма вышестоящего сервера документирует привязку сеансов и в настоящее время отключает HPA, поскольку масштабирование может нарушить совместное редактирование. Начните с одной реплики или с заданного фиксированного количества и сохраните привязку маршрутизации.
  • «Небольшой фрагмент XML можно предоставить в качестве пользовательской конфигурации». Значение диаграммы coolwsd_xml_contentзаменяет файл конфигурации по умолчанию и требует полного содержимого файла. Для групп псевдонимов и параметров следует отдавать предпочтение значениям, указанным в диаграмме, если у вас нет полной, совместимой с версией конфигурации XML.

Официальные ссылки

Оставить комментарий

Развертывание Collabora CODE в Kubernetes с помощью Helm

Развертывание Collabora CODE в Kubernetes с помощью Helm

Установите официальный Helm-диаграмму Collabora, настройте доступ к WOPI и привязку входящего трафика, а также проверьте развертывание на наличие распространенных ошибок настройки.

Как отследить пустой документ Collabora до слоя, вызвавшего ошибку.

Как отследить пустой документ Collabora до слоя, вызвавшего ошибку.

Используйте запросы браузера, журналы WOPI и целевые проверки прокси-серверов, чтобы выяснить, почему Collabora открывает пустой документ, и выберите решение, соответствующее полученным данным.

Включить многоязычную проверку орфографии в Collabora Online CODE

Включить многоязычную проверку орфографии в Collabora Online CODE

Настройте словари CODE Docker и правильно разметьте фрагменты документа, чтобы проверка орфографии на английском, французском и других поддерживаемых языках выполнялась корректно.

Настройте таймер простоя Collabora для активных представлений документов.

Настройте таймер простоя Collabora для активных представлений документов.

В coolwsd отрегулируйте пороговое значение неактивности для каждого представления и различайте его от затемнения фоновых вкладок, выгрузки документов, автосохранения и истечения срока действия авторизации.

Отключите проверку обновления кода Collabora и нежелательные подключения.

Отключите проверку обновления кода Collabora и нежелательные подключения.

Остановите запланированные проверки обновлений CODE, просмотрите дополнительные удаленные сервисы и используйте исходящие сетевые элементы управления, не нарушая редактирование документов.

Подключите Seafile и Collabora, используя правильный URL-адрес WOPI.

Подключите Seafile и Collabora, используя правильный URL-адрес WOPI.

Обеспечьте безопасное редактирование документов в Seafile, настроив URL-адрес обнаружения Collabora, HTTPS и доступ WOPI для вашей системы.

Восстановить функции копирования и вставки между Collabora и настольными приложениями.

Восстановить функции копирования и вставки между Collabora и настольными приложениями.

Проверьте буфер обмена системы, настройте разрешения браузера и определите, когда для встроенной интеграции Collabora требуется изменение политики iframe.

Сделайте пользовательские шрифты доступными в Docker-контейнере Collabora CODE.

Сделайте пользовательские шрифты доступными в Docker-контейнере Collabora CODE.

Смонтируйте файлы шрифтов в Docker и системную панель Collabora, чтобы пользовательские шрифты отображались в редакторе и корректно отображались в документах.

Восстановите настройки кода Collabora без потери изменений развертывания.

Восстановите настройки кода Collabora без потери изменений развертывания.

Создайте резервную копию файла coolwsd.xml и его исходных файлов развертывания, безопасно восстановите их и проверьте код, прежде чем пользователи вернутся к редактированию.

Исправьте проверку хоста WOPI в CODE, сопоставив источник хоста.

Исправьте проверку хоста WOPI в CODE, сопоставив источник хоста.

Разрешите использование именно Nextcloud или другого источника WOPI в коде, затем проверьте список разрешенных активных хостов и сопоставьте его с ограничением Nextcloud по IP-адресу источника.