Helmを使用してKubernetes上にCollabora CODEをデプロイする
Collabora公式Helmチャートをインストールし、WOPIアクセスとイングレスアフィニティを設定し、一般的な設定ミスがないかデプロイメントを確認します。
2026年10月10日現在、アップストリームのパッケージレジストリには、チャートバージョン1.3.0が最新リリースとして記載されています。チャートのインストールは、動作するデプロイメントの一部にすぎません。パブリックなCollaboraホスト名、ドキュメントストレージホスト用の有効なWOPI許可リストエントリ、および各ドキュメントのリクエストを同じポッドに保持するイングレス設定も必要です。アップストリームのパッケージレジストリには、執筆時点でチャートバージョン1.3.0が記載されています。HelmチャートバージョンとCODEコンテナイメージバージョンは別々の値であるため、インストール前にリポジトリを確認してください。
この手順では、公式collabora/collabora-onlineチャートとNGINX Ingressコントローラーを使用します。チャートのREADMEにはHAProxyの例も含まれています。Ingressのアノテーションはコントローラー固有のものであるため、異なるアノテーションを混在させるのではなく、インストール済みのコントローラーの例を使用してください。
office.example.com。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。
を作成します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は無効になっていると記載されています。レプリカ数を増やすだけでは適切なルーティングは提供されません。イングレスが同じドキュメントへのリクエストを同じポッドに送信することを確認してください。
公式リポジトリからリリースをインストールし、デプロイメントの準備が整うまでお待ちください。
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には、要求と制限の例が記載されていますが、すべてのデプロイメントで保証されるものではありません。スロットリング、メモリ不足による強制終了、再起動に注意してください。
DNSとTLSが有効になった後、公開ホスト名を使用してCollaboraの検出エンドポイントにリクエストを送信します。
curl -fsS https://office.example.com/hosting/discovery
正常な応答には、イングレスエラーページや証明書警告ではなく、WOPI検出XMLが含まれているはずです。次に、同じ公開Collabora URLを使用してWOPIクライアントを設定し、CollaboraにaliasgroupsそのクライアントのHTTPSホスト名とポートが含まれていることを確認してください。クライアントの具体的な設定は、ストレージ製品によって異なります。
WOPIクライアントからテストドキュメントを開き、小さな変更を加えます。エディタが読み込まれること、共同作業が必要な場合は別のブラウザセッションが参加できること、変更内容がストレージサービスに保存されることを確認します。このエンドツーエンドのチェックにより、DNS、イングレスTLS、セッションルーティング、WOPIホスト認証、およびファイル転送が検証されます。
coolwsd_xml_content値はデフォルトの設定ファイルを置き換えるため、ファイルの内容全体が必要です。完全なバージョン互換のXML設定がない限り、エイリアスグループとパラメーターにはチャート専用の値を使用することをお勧めします。Collabora公式Helmチャートをインストールし、WOPIアクセスとイングレスアフィニティを設定し、一般的な設定ミスがないかデプロイメントを確認します。
Collaboraが空白のドキュメントを開く理由を特定するために、ブラウザのリクエスト、WOPIログ、およびターゲットを絞ったプロキシチェックを使用し、証拠に合った修正方法を選択してください。
CODE Dockerの辞書を設定し、文書の該当箇所に正しくタグを付けることで、英語、フランス語、およびその他のサポートされている言語で適切なスペルチェックが行われるようにします。
coolwsdでビューごとの非アクティブしきい値を調整し、背景タブの暗転、ドキュメントのアンロード、自動保存、ログイン期限切れとは区別します。
定期的なCODE更新チェックを停止し、オプションのリモートサービスを確認し、ドキュメント編集を妨げることなくアウトバウンドネットワーク制御を使用できます。
Seafileで安全なドキュメント編集を有効にするには、デプロイメント用にCollaboraの検出URL、HTTPS、およびWOPIアクセスを設定してください。
システムクリップボードをテストし、ブラウザの権限を調整し、埋め込み型Collabora統合においてiframeポリシーの変更が必要なタイミングを特定します。
フォントファイルをDockerとCollaboraのシステムプレートにマウントすることで、カスタムフォントがエディタに表示され、ドキュメント内で正しくレンダリングされるようになります。
coolwsd.xmlとそのデプロイメントソースをバックアップし、安全に復元してから、ユーザーが編集を再開する前にCODEを検証してください。
CODE内でNextcloudまたはその他のWOPIオリジンを正確に許可し、アクティブなホスト許可リストを確認して、Nextcloudの送信元IP制限と区別します。