ติดตั้ง Collabora CODE บน Kubernetes ด้วย Helm

ณ วันที่ 10 ตุลาคม 2569 รีจิสทรีแพ็กเกจต้นทางระบุว่าเวอร์ชันของชาร์ตคือ 1.3.0 การติดตั้งชาร์ตเป็นเพียงส่วนหนึ่งของการใช้งานจริง คุณยังต้องมีชื่อโฮสต์ Collabora สาธารณะ รายการอนุญาต WOPI ที่ถูกต้องสำหรับโฮสต์จัดเก็บเอกสาร และการตั้งค่า ingress ที่เก็บคำขอสำหรับแต่ละเอกสารไว้ใน pod เดียวกัน รีจิสทรีแพ็กเกจต้นทางระบุเวอร์ชันของชาร์ตคือ 1.3.0 ณ เวลาที่เขียนบทความนี้ โปรดตรวจสอบที่เก็บข้อมูลก่อนติดตั้ง เนื่องจากเวอร์ชันของชาร์ต Helm และเวอร์ชันของอิมเมจคอนเทนเนอร์ CODE เป็นค่าที่แยกจากกัน

ขั้นตอนนี้ใช้collabora/collabora-onlineแผนภูมิอย่างเป็นทางการและ NGINX Ingress Controller ไฟล์ README ของแผนภูมิยังมีตัวอย่าง HAProxy ด้วย คำอธิบายประกอบของ ingress นั้นเฉพาะเจาะจงกับคอนโทรลเลอร์ ดังนั้นให้ใช้ตัวอย่างสำหรับคอนโทรลเลอร์ที่คุณติดตั้งไว้แทนที่จะผสมคำอธิบายประกอบต่างๆ เข้าด้วยกัน

สิ่งที่ต้องเตรียมก่อนเป็นอันดับแรก

  • คลัสเตอร์ Kubernetes ที่มีสิทธิ์ในการสร้างเนมสเปซ, ดีเพนเดนต์, เซอร์วิส และอินเกรส
  • Helm 3 และตัวควบคุมการเข้าถึง (ingress controller) ที่ติดตั้งไว้ซึ่งสามารถให้บริการ 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 เสมอไป ตรวจสอบที่เก็บรูปภาพและแท็กในค่าการเผยแพร่ จากนั้นตรึงเวอร์ชันแผนภูมิที่คุณตรวจสอบไว้สำหรับการอัปเกรดซ้ำได้

สร้าง Secret ที่มีขอบเขตเฉพาะเนมสเปซโดยใช้เวิร์กโฟลว์การจัดการ Secret ที่ได้รับการอนุมัติของคุณ ค่าในแผนภูมิรองรับ Secret ที่มีอยู่แล้วและชื่อคีย์ที่กำหนดค่าได้ ชื่อคีย์เริ่มต้นคือusernameและpasswordตรวจสอบว่า Secret มีอยู่ใน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

ตัวอย่างนี้เป็นไปตามรูปแบบ ingress ของ NGINX ที่ Collabora ได้บันทึกไว้: คำขอจะถูกแฮชโดยใช้WOPISrcพารามิเตอร์ และเวลาหมดอายุการอ่านและการส่งของพร็อกซีจะถูกขยายออกไปสำหรับเซสชันเอกสาร โปรดตรวจสอบชื่อคำอธิบายประกอบกับเวอร์ชัน ingress-controller ของคุณ หากคุณใช้ HAProxy โปรดใช้คำอธิบายประกอบ HAProxy และการกำหนดค่าการปรับสมดุลใน README ของแผนภูมิแทน

ตัว เลือก ssl.enable=falseเหล่านี้ssl.termination=trueมีไว้สำหรับการออกแบบที่ TLS สิ้นสุดที่ฝั่งขาเข้า และการรับส่งข้อมูลจากฝั่งขาเข้าไปยังพอดเป็นการรับส่งข้อมูลภายใน ไม่ได้หมายความว่าปลายทางสาธารณะควรใช้ HTTP ให้คงชื่อโฮสต์ของฝั่งขาเข้าไว้บน HTTPS และอย่าเปิดเผยบริการ HTTP ธรรมดาของพอดสู่ภายนอกโดยตรง ตั้งค่าserver_nameเมื่อ Collabora อยู่เบื้องหลังพร็อกซีแบบย้อนกลับ หรือไม่สามารถอนุมานชื่อโฮสต์ภายนอกได้โดยตรง

สำหรับสำเนาคงที่หลายชุด ให้ตั้งค่าreplicaCountอย่างรอบคอบและรักษาความสัมพันธ์ของเซสชันไว้ เอกสาร README ต้นทางระบุว่า HPA ถูกปิดใช้งานเนื่องจากการปรับขนาดอาจรบกวนการแก้ไขร่วมกันและการคัดลอก/วาง จำนวนสำเนาที่มากขึ้นเพียงอย่างเดียวไม่ได้ทำให้การกำหนดเส้นทางถูกต้อง โปรดตรวจสอบให้แน่ใจว่า ingress ของคุณส่งคำขอสำหรับเอกสารเดียวกันไปยัง pod เดียวกัน

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>

เลือกขนาด CPU และหน่วยความจำให้เหมาะสมกับปริมาณงานและความจุของคลัสเตอร์ เอกสาร README ของแผนภูมิแสดงตัวอย่างคำขอและข้อจำกัด ไม่ใช่การรับประกันสำหรับทุกการใช้งาน โปรดระวังการลดความเร็ว (throttling), การหยุดทำงานเนื่องจากหน่วยความจำไม่เพียงพอ (OOM kills) และการรีสตาร์ท

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, การกำหนดเส้นทางขาเข้า และการกำหนดขนาดทรัพยากรยังคงขึ้นอยู่กับคลัสเตอร์ของคุณ ตรวจสอบแต่ละรายการข้างต้นอีกครั้ง
  • “การตั้งค่า ingress host และ WOPI host นั้นเหมือนกัน”แต่ในความเป็นจริงมักจะแตกต่างกัน: ingress host คือที่อยู่สาธารณะของ Collabora ส่วน WOPI host คือเซิร์ฟเวอร์จัดเก็บข้อมูล ใส่ค่าแต่ละค่าลงในช่องที่ถูกต้องในแผนภูมิ
  • “จำนวนสำเนาที่มากขึ้นจะช่วยปรับปรุงการทำงานร่วมกันโดยอัตโนมัติ”แผนภูมิต้นทางแสดงความสัมพันธ์ของเซสชันและปัจจุบันปิดใช้งาน HPA เนื่องจากขนาดที่ใหญ่ขึ้นอาจรบกวนการแก้ไขร่วมกัน เริ่มต้นด้วยสำเนาเดียวหรือจำนวนที่กำหนดไว้ล่วงหน้า และรักษาความสัมพันธ์ของการกำหนดเส้นทางไว้
  • “สามารถระบุส่วนย่อยของ XML ขนาดเล็กเป็นค่าการกำหนดค่าแบบกำหนดเองได้” ค่า ของแผนภูมิcoolwsd_xml_contentจะแทนที่ไฟล์การกำหนดค่าเริ่มต้นและต้องใช้เนื้อหาไฟล์ทั้งหมด ควรใช้ค่าเฉพาะของแผนภูมิสำหรับกลุ่มนามแฝงและพารามิเตอร์ เว้นแต่คุณจะมีไฟล์การกำหนดค่า XML ที่สมบูรณ์และเข้ากันได้กับเวอร์ชัน

ข้อมูลอ้างอิงอย่างเป็นทางการ

ฝากความเห็น

หยุดการสิ้นสุดเซสชันการแก้ไขโค้ดที่ 10 นาที

หยุดการสิ้นสุดเซสชันการแก้ไขโค้ดที่ 10 นาที

ตรวจสอบหาสาเหตุของการตัดการเชื่อมต่อ CODE ที่กินเวลา 10 นาที ว่าเกิดจากพร็อกซี โหลดบาลานเซอร์ หรือเส้นทาง WebSocket จากนั้นแก้ไขค่าหมดเวลาและตรวจสอบว่าเซสชันยังคงเชื่อมต่ออยู่หรือไม่

ติดตั้ง Collabora CODE บน Kubernetes ด้วย Helm

ติดตั้ง Collabora CODE บน Kubernetes ด้วย Helm

ติดตั้ง Helm chart อย่างเป็นทางการของ Collabora กำหนดค่าการเข้าถึง WOPI และความสัมพันธ์ของ ingress และตรวจสอบการปรับใช้โดยปราศจากข้อผิดพลาดในการตั้งค่าทั่วไป

ติดตามเอกสาร Collabora ว่างเปล่าไปยังเลเยอร์ที่ล้มเหลว

ติดตามเอกสาร Collabora ว่างเปล่าไปยังเลเยอร์ที่ล้มเหลว

ใช้คำขอจากเบราว์เซอร์ บันทึก WOPI และการตรวจสอบพร็อกซีแบบเจาะจงเพื่อค้นหาสาเหตุที่ Collabora เปิดเอกสารว่างเปล่า และเลือกวิธีแก้ไขที่เหมาะสมกับหลักฐานที่พบ

เปิดใช้งานการตรวจสอบการสะกดคำหลายภาษาใน Collabora Online (โค้ด)

เปิดใช้งานการตรวจสอบการสะกดคำหลายภาษาใน Collabora Online (โค้ด)

ตั้งค่าพจนานุกรมและแท็กข้อความในเอกสารของ 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

ทำให้สามารถใช้ฟอนต์แบบกำหนดเองได้ใน Collabora CODE Docker

ทำให้สามารถใช้ฟอนต์แบบกำหนดเองได้ใน Collabora CODE Docker

ติดตั้งไฟล์ฟอนต์ลงใน Docker และ systemplate ของ Collabora เพื่อให้แบบอักษรที่กำหนดเองปรากฏในโปรแกรมแก้ไขและแสดงผลได้อย่างถูกต้องในเอกสาร

กู้คืนการตั้งค่า Collabora CODE โดยไม่สูญเสียการเปลี่ยนแปลงการปรับใช้

กู้คืนการตั้งค่า Collabora CODE โดยไม่สูญเสียการเปลี่ยนแปลงการปรับใช้

สำรองข้อมูล coolwsd.xml และซอร์สโค้ดสำหรับการปรับใช้ กู้คืนอย่างปลอดภัย และตรวจสอบโค้ดก่อนที่ผู้ใช้จะกลับมาแก้ไขอีกครั้ง