Helmを使用してKubernetes上にCollabora CODEをデプロイする

2026年10月10日現在、アップストリームのパッケージレジストリには、チャートバージョン1.3.0が最新リリースとして記載されています。チャートのインストールは、動作するデプロイメントの一部にすぎません。パブリックなCollaboraホスト名、ドキュメントストレージホスト用の有効なWOPI許可リストエントリ、および各ドキュメントのリクエストを同じポッドに保持するイングレス設定も必要です。アップストリームのパッケージレジストリには、執筆時点でチャートバージョン1.3.0が記載されています。HelmチャートバージョンとCODEコンテナイメージバージョンは別々の値であるため、インストール前にリポジトリを確認してください。

この手順では、公式collabora/collabora-onlineチャートとNGINX Ingressコントローラーを使用します。チャートのREADMEにはHAProxyの例も含まれています。Ingressのアノテーションはコントローラー固有のものであるため、異なるアノテーションを混在させるのではなく、インストール済みのコントローラーの例を使用してください。

まず最初に準備するもの

  • 名前空間、デプロイメント、サービス、およびイングレスを作成する権限を持つKubernetesクラスター。
  • Helm 3 と、ホスト名 (例: ) に対して HTTPS を提供できるインストール済みのイングレス コントローラーが必要ですoffice.example.com。
  • NextcloudやSeafileなどのWOPIクライアントの公開ホスト名。これはCollaboraが許可する必要のあるホスト名であり、Collaboraのホスト名ではありません。
  • Collabora管理コンソールの認証情報用のKubernetesシークレット。チャートのサンプルパスワードを保存したり、実際のパスワードを値ファイルにコミットしたりしないでください。

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。 2 つの例のホスト名を実際のパブリック ドメインに置き換えてください。 の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を使用する場合は、チャートのREADMEにあるHAProxyアノテーションと負荷分散設定を使用してください。

とオプションはssl.enable=false、ssl.termination=trueTLS がイングレスで終了し、イングレスからポッドへのトラフィックが内部トラフィックとなる設計用です。これらは、パブリックエンドポイントで HTTP を使用する必要があるという意味ではありません。イングレスホスト名を HTTPS に維持し、ポッドのプレーン HTTP サービスをインターネットに直接公開しないでください。Collaboraserver_nameがリバースプロキシの背後にある場合、または外部ホスト名を直接推測できない場合に設定します。

複数の固定レプリカを使用する場合は、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新しいリリースを作成するのではなく、同じリリース名、ネームスペース、および値ファイルを使用してください。本番環境のインスタンスをアップグレードする前に、チャートのリリースノートとレンダリングされた変更点を確認してください。

Pod が準備完了状態であり、Ingress が期待されるホストとアドレスを報告していることを確認してください。保留状態が続く場合は、リソース設定を変更する前にイベントとログを確認してください。

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

ワークロードとクラスタ容量に合わせてCPUとメモリのサイズを設定してください。チャートのREADMEには、要求と制限の例が記載されていますが、すべてのデプロイメントで保証されるものではありません。スロットリング、メモリ不足による強制終了、再起動に注意してください。

4. 発見内容と文書編集内容を確認する

DNSとTLSが有効になった後、公開ホスト名を使用してCollaboraの検出エンドポイントにリクエストを送信します。

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

正常な応答には、イングレスエラーページや証明書警告ではなく、WOPI検出XMLが含まれているはずです。次に、同じ公開Collabora URLを使用してWOPIクライアントを設定し、CollaboraにaliasgroupsそのクライアントのHTTPSホスト名とポートが含まれていることを確認してください。クライアントの具体的な設定は、ストレージ製品によって異なります。

WOPIクライアントからテストドキュメントを開き、小さな変更を加えます。エディタが読み込まれること、共同作業が必要な場合は別のブラウザセッションが参加できること、変更内容がストレージサービスに保存されることを確認します。このエンドツーエンドのチェックにより、DNS、イングレスTLS、セッションルーティング、WOPIホスト認証、およびファイル転送が検証されます。

確認すべき一般的な前提

  • 「Helmがインストールされたので、Collaboraは本番環境での使用準備が整いました。」このチャートはKubernetesリソースを作成しますが、DNS、TLS、WOPIホスト認証、イングレスルーティング、リソースサイジングはクラスターに依存します。上記の各項目を確認してください。
  • 「イングレスホストとWOPIホストは同じ設定です。」実際には、これらは異なる場合が多いです。イングレスホストはCollaboraのパブリックアドレスであり、WOPIホストはストレージサーバーです。それぞれを適切なチャートフィールドに入力してください。
  • 「レプリカ数を増やすと、コラボレーションが自動的に向上します。」上流チャートはセッションアフィニティを文書化しており、スケーリングによって共同編集が妨げられる可能性があるため、現在はHPAを無効にしています。レプリカ数を1つ、または意図的に固定数に設定し、ルーティングアフィニティを維持してください。
  • 「小さなXML断片をカスタム設定として指定できます。」チャートのcoolwsd_xml_content値はデフォルトの設定ファイルを置き換えるため、ファイルの内容全体が必要です。完全なバージョン互換のXML設定がない限り、エイリアスグループとパラメーターにはチャート専用の値を使用することをお勧めします。

公式資料

コメントを残す

Helmを使用してKubernetes上にCollabora CODEをデプロイする

Helmを使用してKubernetes上にCollabora CODEをデプロイする

Collabora公式Helmチャートをインストールし、WOPIアクセスとイングレスアフィニティを設定し、一般的な設定ミスがないかデプロイメントを確認します。

Collaboraの空白ドキュメントをトレースして、問題のあるレイヤーを特定する

Collaboraの空白ドキュメントをトレースして、問題のあるレイヤーを特定する

Collaboraが空白のドキュメントを開く理由を特定するために、ブラウザのリクエスト、WOPIログ、およびターゲットを絞ったプロキシチェックを使用し、証拠に合った修正方法を選択してください。

Collabora Online CODEで多言語スペルチェックを有効にする

Collabora Online CODEで多言語スペルチェックを有効にする

CODE Dockerの辞書を設定し、文書の該当箇所に正しくタグを付けることで、英語、フランス語、およびその他のサポートされている言語で適切なスペルチェックが行われるようにします。

Collaboraのアクティブなドキュメントビューのアイドルタイマーを設定する

Collaboraのアクティブなドキュメントビューのアイドルタイマーを設定する

coolwsdでビューごとの非アクティブしきい値を調整し、背景タブの暗転、ドキュメントのアンロード、自動保存、ログイン期限切れとは区別します。

Collabora CODEの更新チェックと不要な接続を無効にする

Collabora CODEの更新チェックと不要な接続を無効にする

定期的なCODE更新チェックを停止し、オプションのリモートサービスを確認し、ドキュメント編集を妨げることなくアウトバウンドネットワーク制御を使用できます。

SeafileとCollaboraを正しいWOPI URLに接続します。

SeafileとCollaboraを正しいWOPI URLに接続します。

Seafileで安全なドキュメント編集を有効にするには、デプロイメント用にCollaboraの検出URL、HTTPS、およびWOPIアクセスを設定してください。

Collaboraとデスクトップアプリ間のコピー&ペースト機能を復元する

Collaboraとデスクトップアプリ間のコピー&ペースト機能を復元する

システムクリップボードをテストし、ブラウザの権限を調整し、埋め込み型Collabora統合においてiframeポリシーの変更が必要なタイミングを特定します。

Collabora CODE Dockerでカスタムフォントを利用できるようにする

Collabora CODE Dockerでカスタムフォントを利用できるようにする

フォントファイルをDockerとCollaboraのシステムプレートにマウントすることで、カスタムフォントがエディタに表示され、ドキュメント内で正しくレンダリングされるようになります。

Collabora CODEの設定を、デプロイメントの変更を失うことなく復元する

Collabora CODEの設定を、デプロイメントの変更を失うことなく復元する

coolwsd.xmlとそのデプロイメントソースをバックアップし、安全に復元してから、ユーザーが編集を再開する前にCODEを検証してください。

CODEのWOPIホストチェックを修正し、ホストオリジンを一致させる

CODEのWOPIホストチェックを修正し、ホストオリジンを一致させる

CODE内でNextcloudまたはその他のWOPIオリジンを正確に許可し、アクティブなホスト許可リストを確認して、Nextcloudの送信元IP制限と区別します。