Helmを使用してKubernetes上にCollabora CODEをセットアップする方法
公式Helmチャートを使用して、Kubernetes上にCollabora CODEをデプロイします。イングレス、TLS、WOPIホストアクセス、シークレット、スケーリング、エンドツーエンドチェックを設定します。
Collabora Online のページは、CODE ポッドが実行された後でも空白のままだったり、オフィス サーバーが利用できないと表示されたりすることがあります。正常なポッドはセットアップの一部にすぎません。ブラウザと WOPI アプリケーションがパブリック ホスト名経由で Collabora にアクセスできる必要があり、TLS とプロキシの設定が一致している必要があり、Collabora が WOPI ホストを信頼している必要があります。公式の Collabora Helm チャートはサーバーを Kubernetes にデプロイしますが、Nextcloud、ownCloud、またはその他の WOPI ホストをインストールまたは構成するわけではありません。
このガイドでは、Collaboraが管理するNGINX Ingressの例を含むHelmチャートを使用します。サンプルドメインはご自身のドメインに置き換えてください。CODEはCollabora Online Development Editionの略で、評価、家庭での使用、小規模チーム向けに設計されています。Collaboraは、安定したサポート付きリリースが必要な本番環境での使用は推奨していません。本番ワークロードについては、サポートされているCollabora Online製品とそのライセンスおよびサポート条件を検討してください。
kubectlおよびクラスターにアクセスできるHelm 3。office.example.comパブリックイングレスアドレスを指すDNS名、およびCollaboraネームスペースにKubernetes Secretとして保存されたTLS証明書。cloud.example.com。Collabora は WOPI アプリケーションにアクセスできる必要があり、アプリケーションとユーザーのブラウザは Collabora にアクセスできる必要があります。自宅やテスト環境での迅速なデプロイには、単一のCODEポッドを使用することでルーティングを簡素化できます。レプリカを複数作成することで容量を向上させることができますが、CollaboraのKubernetesガイドでは、同じドキュメントの編集セッションが同じポッドに到達するように、WOPISrcベースのロードバランシングが必要であると指摘しています。イングレスコントローラが必要なアフィニティを提供できることを確認する前に、レプリカをスケールアップしないでください。
Collaboraは、CollaboraOnlineプロジェクトからチャートを公開しています。リリースページには現在、チャートバージョン1.3.5(2026年10月6日確認)が掲載されています。ご使用の環境で利用可能なバージョンを確認し、チャートバージョンを固定してください。そうすることで、後日リポジトリが更新された際に、デプロイするチャートが意図せず変更されることを防ぐことができます。
helm repo add collabora https://collaboraonline.github.io/online/
helm repo update
helm search repo collabora/collabora-online --versions
公式チャートリポジトリは、オーバーライドを書き込む前に現在のデフォルト設定を確認するのに役立ちます。
helm show values collabora/collabora-online --version 1.3.5
このガイドに従って作業を進める際に、リポジトリに互換性のある新しいチャートがリストされている場合は、そのバージョンに置き換える前に、リリースノートと値を確認してください。チャートのバージョンとCODEアプリケーションイメージのバージョンは関連するリリース入力項目ですが、同じ設定ではありません。
チャートのオプションの Collabora 管理者認証情報用に名前空間と Kubernetes Secret を作成します。プレースホルダーのパスワードを強力なシークレットに置き換えるか、組織のシークレット マネージャーまたは GitOps シークレット ワークフローを使用して Secret を作成します。 に実際のパスワードをコミットしないでくださいvalues.yaml。
kubectl create namespace collabora
kubectl -n collabora create secret generic collabora-admin \
--from-literal=username=admin \
--from-literal=password='REPLACE_WITH_A_LONG_RANDOM_PASSWORD'
このチャートは、既存のシークレットを参照することをサポートしています。これを有効にすることで、管理者パスワードをHelmの値ファイルに直接記述する必要がなくなります。シークレットは、このデプロイメントを管理する名前空間とユーザーまたはサービスアカウントに限定してください。
という名前のファイルを作成しますcollabora-values.yaml。この例では、ingress-nginx、という名前のTLSシークレットoffice-example-com-tls、およびにあるNextcloudを想定していますhttps://cloud.example.com。エイリアスグループには、Collaboraが接続を許可されているWOPIアプリケーションホストの名前を指定する必要があります。これは、公開されているCollaboraホスト名ではありません。
replicaCount: 1
autoscaling:
enabled: false
ingress:
enabled: true
className: nginx
annotations:
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-com-tls
hosts:
- office.example.com
collabora:
aliasgroups:
- host: "https://cloud.example.com:443"
extra_params: "--o:ssl.enable=false --o:ssl.termination=true"
existingSecret:
enabled: true
secretName: collabora-admin
このチャートのドキュメントに記載されている例ではaliasgroups、リバースプロキシがTLSを終端する場合にWOPIホストとこれらのSSLパラメータを許可するように設定されています。この構成では、外部トラフィックoffice.example.comはHTTPSを使用し、イングレスはクラスタ内部でHTTP経由でCollaboraにトラフィックを転送します。イングレスがTLSパススルーまたは別の内部プロトコルを使用している場合は、これらのSSLフラグをそのままコピーせず、実際のTLSパスとチャートの現在の値に合わせて調整してください。
TLS シークレットがcollabora名前空間に存在することを確認してください。別のイングレス コントローラーを使用する場合は、クラスとアノテーションをそのコントローラーのドキュメントに記載されている同等のものに置き換えてください。WebSocket トラフィックを有効にし、長時間接続を許可してください。コントローラーのデフォルト設定はコントローラーによって異なります。
まずマニフェストをレンダリングしてYAMLエラーを検出し、生成されたIngress、Service、ワークロードの設定を確認します。次に、固定されたチャートリリースをインストールします。
helm template collabora-online collabora/collabora-online \
--namespace collabora \
--version 1.3.5 \
--values collabora-values.yaml
helm upgrade --install collabora-online collabora/collabora-online \
--namespace collabora \
--version 1.3.5 \
--values collabora-values.yaml
リソースが開始される様子をご覧ください。
kubectl get pods,services,ingress -n collabora
kubectl get events -n collabora --sort-by=.lastTimestamp
WOPIアプリケーションを接続する前に、ポッドがReady状態になるまでお待ちください。Pending状態のままの場合は、クラスタに十分なスケジューリング可能なCPUとメモリがあるか、また、ノードセレクタ、テイント、リソースクォータによって配置が妨げられていないかを確認してください。この表では、リソース要求と制限はオペレーターが選択できます。CollaboraのREADMEには、本番環境向けのより大きなリソース値の例が記載されていますが、実際のサイジングは同時編集とドキュメントのワークロードによって異なります。
WOPIアプリケーションのOfficeまたはCollaboraの設定を開き、外部サービスURLを入力しますhttps://office.example.com。Nextcloudの場合、管理マニュアルでは、Office管理設定でCollabora OnlineサーバーのURLを設定する方法が記載されています。また、設定で接続できるホストが制限されている場合は、NextcloudのWOPIリクエスト許可リストを確認してください。このアドレスは、エンドユーザーのブラウザとWOPIリクエストを行うアプリケーションサーバーの両方からアクセス可能である必要があります。
接続が「認証されていない WOPI ホスト」または同様のメッセージで失敗した場合は、実際の WOPI ホスト URL を と比較してくださいcollabora.aliasgroups。スキーム、ホスト名、ポートを確認し、正当な代替ホスト名を意図的に追加してください。影響を理解していない限り、広範なホストパターンは避けてください。複数の WOPI アプリケーションを使用する場合は、すべてのドメインを許可するのではなく、チャートに記載されているエイリアス グループ構造に従って、各ホストを許可してください。
小規模なテストでは、オートスケーリングを無効にしたレプリカを1つ使用することで、ルーティングの複雑さを回避できます。複数のレプリカを使用する場合は、CollaboraチャートのREADMEにWOPISrcクエリ引数に基づくNGINXアフィニティが示されています。ingress-nginxを使用する場合は、ドキュメントに記載されている注釈をイングレスに追加してください。
nginx.ingress.kubernetes.io/upstream-hash-by: "$arg_WOPISrc"
これにより、同じドキュメントへのリクエストが同じバックエンド Pod にルーティングされるため、共同編集やクリップボードのリクエストに重要となります。ご使用の ingress-controller の正確なバージョンについては、ドキュメントをご確認ください。ingress-nginx でサポートされている注釈は、HAProxy、Traefik、または Gateway API 実装では自動的に有効になるわけではありません。レプリカ数を増やしたり、オートスケーリングを有効にした後は、同じドキュメントへの同時編集をテストし、Collabora ログと ingress アクセス ログを監視してください。リソースのサイジング、セッションの動作、および高可用性については、ワークロード固有の検証が必要です。
kubectl get pods,svc,ingress -n collabora。curl -fsS https://office.example.com/hosting/discovery | head -c 300kubectl logs -n collabora deploy/collabora-online --tail=100
チャートが異なる名前のワークロードを作成する場合は、kubectl get deployments -n collabora実際の名前を使用して置き換えてください。検出応答が成功したということは、公開エンドポイントがCollaboraメタデータを提供していることを示しているだけで、WOPI認証やドキュメント保存が正しく機能していることを証明するものではありません。エンドツーエンドのドキュメントテストが最終確認となります。
aliasgroups。オフィス サーバーのホスト名を置き換えないでください。kubectl describe pod、利用可能なクラスタに対して現実的なリソース要求と制限を設定します。チャートがインストールされ、検出エンドポイントにアクセス可能で、WOPIアプリケーションを通じて実際のドキュメントが正常に開かれて保存された場合、コアCODEデプロイメントは正常に動作しています。チャートのバージョンを固定し、チャートのアップグレード、イングレスの変更、またはスケーリングの変更後にこれらのチェックを繰り返してください。
公式Helmチャートを使用して、Kubernetes上にCollabora CODEをデプロイします。イングレス、TLS、WOPIホストアクセス、シークレット、スケーリング、エンドツーエンドチェックを設定します。
LibreOffice Impressで作成した大きなプレゼンテーションのサイズを小さくするには、大きすぎる写真を圧縮し、適切な解像度とJPEG品質を選択し、保存したファイルをチェックして、スライドの読みやすさを損なわないようにします。
Collabora Online CODEをDockerにインストールし、リバースプロキシ経由で安全に公開し、Nextcloud Officeに接続して、ブラウザベースのドキュメント編集が機能することを確認します。
VPS 上で ONLYOFFICE Docs のメモリ エラーを診断し、ホストと Docker の制限を確認し、ログと忘れられたドキュメントを確認し、安全にスワップを追加し、アクティブな編集を危険にさらすことなく再起動します。
Collabora Online のコピー&ペーストとローカルアプリとの連携に関するトラブルシューティングは、キーボードショートカット、ブラウザのクリップボード権限、HTTPS、iframe ポリシー、コンテンツ形式などをテストすることで行います。
Linux 版 ONLYOFFICE デスクトップエディタでテキストがぼやける問題を解決するには、ディスプレイのスケーリング、アプリのインターフェースのスケーリング、フォントの利用可能性、レンダリング範囲を安全な順序で確認してください。
Writerフォームコントロールの追加方法、ラベルとタブ順序の設定方法、PDF作成フォームを有効にしたエクスポート方法、そして共有前にインタラクティブPDFをテストする方法を学びましょう。
ONLYOFFICE Workspace、DocSpace、またはDocsとの連携において、印刷とダウンロードをブロックする方法を学び、各共有方法に適用される制御機能を確認してください。
Nginxの背後で発生するONLYOFFICEドキュメントサーバーの502エラーのトラブルシューティングを行います。サービスの状態、ログ、アップストリームポート、転送ヘッダー、WebSocket、およびDockerネットワークを確認します。
ONLYOFFICE Documentsがセルフホスト型サーバーでタイムアウトする問題を解決するには、適切なポータルまたはWebDAV URL、ネットワークアクセス、HTTPS、認証情報、およびサーバールーティングを確認してください。