使用 Helm 在 Kubernetes 上部署 Collabora CODE
安裝官方 Collabora Helm chart,配置 WOPI 存取和入口親和性,並驗證部署是否正確,避免常見的設定錯誤。
截至 2026 年 10 月 10 日,上游軟體包倉庫將 Chart 版本 1.3.0 列為最新版本。安裝 Chart 只是部署的一部分。您還需要一個公開的 Collabora 主機名稱、一個有效的文檔儲存主機 WOPI 允許清單條目,以及一個入口配置,確保每個文件的請求都在同一個 Pod 中。在撰寫本文時,上游軟體包倉庫列出的 Chart 版本為 1.3.0;安裝前請檢查倉庫,因為 Helm Chart 版本和 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 鏡像標籤。請檢查發佈值中的鏡像倉庫和標籤,然後鎖定您已審核過的圖表版本,以便進行可重複的升級。
使用您已核准的金鑰管理工作流程建立命名空間範圍的金鑰。此圖表的值支援現有金鑰和可設定的金鑰名稱;預設金鑰名稱為 `<Secret_name>` 和username`<Secret_name> password`。安裝前,請先驗證該金鑰是否存在於collabora命名空間中。
創建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,請改用圖表 README 中的 HAProxy 註解和負載平衡配置。
這ssl.enable=false兩個ssl.termination=true選項適用於 TLS 在入口處終止,且從入口到 Pod 的流量為內部流量的設計。它們並不意味著公共端點應該使用 HTTP。請將入口主機名稱保留為 HTTPS,並且不要將 Pod 的純 HTTP 服務直接暴露給網際網路。server_name當 Collabora 位於反向代理程式之後或無法直接推斷其外部主機名稱時,請設定此選項。
對於多個固定副本,請replicaCount謹慎設定並保持會話親和性。上游 README 檔案目前指出 HPA 已停用,因為擴充功能可能會中斷協作編輯和複製/貼上功能。僅增加副本數量並不能提供正確的路由;請確認您的入口是否將對同一文件的請求傳送到同一個 Pod。
從官方倉庫安裝此版本,並等待部署完成:
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 的 URL 中aliasgroups包含該用戶端的 HTTPS 主機名稱和連接埠。客戶端的具體設定取決於儲存產品。
從 WOPI 用戶端開啟一個測試文件並進行少量修改。確認編輯器載入正常,如果需要協作,第二個瀏覽器工作階段可以加入,並且修改已儲存回儲存服務。此端對端檢查涵蓋 DNS、入口 TLS、會話路由、WOPI 主機授權和檔案傳輸。
coolwsd_xml_content值會取代預設設定文件,因此需要完整的設定檔內容。除非您擁有完整且版本相容的 XML 配置,否則請優先使用圖表專用的別名群組和參數值。安裝官方 Collabora Helm chart,配置 WOPI 存取和入口親和性,並驗證部署是否正確,避免常見的設定錯誤。
使用瀏覽器請求、WOPI 日誌和有針對性的代理檢查來找出 Collabora 開啟空白文件的原因,並選擇符合證據的修復方案。
正確配置 CODE Docker 字典並標記文件段落,以便英語、法語和其他受支援的語言獲得正確的拼字檢查。
在 coolwsd 中調整每個視圖的非活動閾值,並將其與後台標籤頁變暗、文件卸載、自動儲存和登入過期區分開來。
停止計劃的 CODE 更新檢查,審查可選的遠端服務,並在不中斷文件編輯的情況下使用出站網路控制。
透過為您的部署配置 Collabora 的發現 URL、HTTPS 和 WOPI 存取權限,在 Seafile 中啟用安全性文件編輯。
測試系統剪貼簿,調整瀏覽器權限,並確定嵌入式 Collabora 整合何時需要更改 iframe 策略。
將字體檔案掛載到 Docker 和 Collabora 的系統範本中,以便自訂字體出現在編輯器中並在文件中正確渲染。
備份 coolwsd.xml 及其部署來源,安全地恢復它們,並在使用者返回編輯之前驗證程式碼。
在程式碼中允許確切的 Nextcloud 或其他 WOPI 來源,然後驗證活動主機允許列表,並將其與 Nextcloud 的來源 IP 限制區分開來。