ในหน้านี้
ในหน้านี้
Hosting
Kubernetes
จุดเริ่มต้นแบบเรียบง่ายสำหรับใช้งาน OpenClaw บน Kubernetes ซึ่งยังไม่ใช่การติดตั้งใช้งานที่พร้อมสำหรับระบบจริง เนื้อหาครอบคลุมทรัพยากรหลักและมีไว้เพื่อให้ปรับให้เหมาะกับสภาพแวดล้อมของคุณ
เหตุใดจึงไม่ใช้ Helm
OpenClaw เป็นคอนเทนเนอร์เดียวที่มีไฟล์การกำหนดค่าบางส่วน จุดที่ควรปรับแต่งคือเนื้อหาของเอเจนต์ (ไฟล์ Markdown, Skills และการเขียนทับการกำหนดค่า) ไม่ใช่การสร้างแม่แบบโครงสร้างพื้นฐาน Kustomize จัดการโอเวอร์เลย์ได้โดยไม่มีภาระส่วนเกินจากชาร์ต Helm หากการติดตั้งใช้งานของคุณซับซ้อนขึ้น คุณสามารถเพิ่มชาร์ต Helm ครอบไฟล์แมนิเฟสต์เหล่านี้ได้
สิ่งที่คุณต้องมี
- คลัสเตอร์ Kubernetes ที่กำลังทำงานอยู่ (AKS, EKS, GKE, k3s, kind, OpenShift เป็นต้น)
kubectlที่เชื่อมต่อกับคลัสเตอร์ของคุณ- คีย์ API สำหรับผู้ให้บริการโมเดลอย่างน้อยหนึ่งราย
เริ่มต้นอย่างรวดเร็ว
โดยค่าเริ่มต้น deploy.sh จะสร้างการยืนยันตัวตนด้วยโทเค็น เรียกดูโทเค็น Gateway ที่สร้างขึ้นเพื่อใช้กับ UI ควบคุม:
สำหรับการดีบักภายในเครื่อง ./scripts/k8s/deploy.sh --show-token จะแสดงโทเค็นหลังจากติดตั้งใช้งาน
การทดสอบภายในเครื่องด้วย Kind
หากคุณไม่มีคลัสเตอร์ ให้สร้างคลัสเตอร์ภายในเครื่องด้วย Kind:
จากนั้นติดตั้งใช้งานตามปกติด้วย ./scripts/k8s/deploy.sh
ขั้นตอนโดยละเอียด
1) ติดตั้งใช้งาน
ตัวเลือก A: คีย์ API ในสภาพแวดล้อม (ขั้นตอนเดียว)
สคริปต์จะสร้าง Kubernetes Secret ซึ่งมีคีย์ API และโทเค็น Gateway ที่สร้างโดยอัตโนมัติ จากนั้นจึงติดตั้งใช้งาน หาก Secret มีอยู่แล้ว สคริปต์จะคงโทเค็น Gateway ปัจจุบันและคีย์ของผู้ให้บริการที่ไม่ได้กำลังถูกเปลี่ยนแปลงไว้
ตัวเลือก B: สร้าง Secret แยกต่างหาก
เพิ่ม --show-token ให้กับคำสั่งใดคำสั่งหนึ่งเพื่อแสดงโทเค็นไปยัง stdout สำหรับการทดสอบภายในเครื่อง
2) เข้าถึง Gateway
สิ่งที่จะได้รับการติดตั้งใช้งาน
การปรับแต่ง
คำสั่งสำหรับเอเจนต์
แก้ไข AGENTS.md ใน scripts/k8s/manifests/configmap.yaml แล้วติดตั้งใช้งานอีกครั้ง:
การกำหนดค่า Gateway
แก้ไข openclaw.json ใน scripts/k8s/manifests/configmap.yaml ดูข้อมูลอ้างอิงฉบับเต็มได้ที่ การกำหนดค่า Gateway
เพิ่มผู้ให้บริการ
เรียกใช้อีกครั้งโดยส่งออกคีย์เพิ่มเติม:
คีย์ของผู้ให้บริการที่มีอยู่จะยังคงอยู่ใน Secret เว้นแต่คุณจะเขียนทับคีย์เหล่านั้น
หรือแพตช์ Secret โดยตรง:
เนมสเปซแบบกำหนดเอง
อิมเมจแบบกำหนดเอง
แก้ไขฟิลด์ image ใน scripts/k8s/manifests/deployment.yaml:
เปิดให้เข้าถึงได้โดยไม่ผ่านการส่งต่อพอร์ต
โดยค่าเริ่มต้น ไฟล์แมนิเฟสต์จะผูก Gateway กับ local loopback ภายในพ็อด ซึ่งทำงานร่วมกับ kubectl port-forward ได้ แต่ไม่สามารถใช้กับ Service ของ Kubernetes หรือเส้นทาง Ingress ที่จำเป็นต้องเข้าถึง IP ของพ็อดโดยตรง
หากต้องการเปิดให้เข้าถึง Gateway ผ่าน Ingress หรือตัวจัดสรรภาระงาน:
- เปลี่ยนการผูก Gateway ใน
scripts/k8s/manifests/configmap.yamlจากloopbackเป็นการผูกแบบที่ไม่ใช่ loopback ซึ่งตรงกับรูปแบบการติดตั้งใช้งานของคุณ - เปิดใช้งานการยืนยันตัวตนของ Gateway ไว้ และใช้จุดเข้าที่สิ้นสุด TLS อย่างเหมาะสม
- กำหนดค่า UI ควบคุมสำหรับการเข้าถึงระยะไกลโดยใช้โมเดลความปลอดภัยเว็บที่รองรับ (เช่น HTTPS/Tailscale Serve และระบุต้นทางที่อนุญาตอย่างชัดเจนเมื่อจำเป็น)
ติดตั้งใช้งานอีกครั้ง
คำสั่งนี้จะใช้ไฟล์แมนิเฟสต์ทั้งหมดและรีสตาร์ตพ็อดเพื่อโหลดการเปลี่ยนแปลงการกำหนดค่าหรือ Secret
รื้อถอน
คำสั่งนี้จะลบเนมสเปซและทรัพยากรทั้งหมดภายใน รวมถึง PVC
หมายเหตุด้านสถาปัตยกรรม
- โดยค่าเริ่มต้น Gateway จะผูกกับ local loopback ภายในพ็อด ดังนั้นการตั้งค่าที่ให้มาจึงมีไว้สำหรับ
kubectl port-forward - ไม่มีทรัพยากรระดับคลัสเตอร์ ทุกอย่างอยู่ภายในเนมสเปซเดียว
- การเสริมความปลอดภัย:
readOnlyRootFilesystem, ความสามารถdrop: ALLและผู้ใช้ที่ไม่ใช่ root (UID 1000) - การกำหนดค่าเริ่มต้นกำหนดให้ UI ควบคุมใช้เส้นทางการเข้าถึงภายในเครื่องที่ปลอดภัยกว่า ได้แก่ การผูกกับ loopback ร่วมกับ
kubectl port-forwardไปยังhttp://127.0.0.1:18789 - หากคุณเปลี่ยนไปใช้การเข้าถึงนอก localhost ให้ใช้รูปแบบระยะไกลที่รองรับ ได้แก่ HTTPS/Tailscale พร้อมการผูก Gateway และการตั้งค่าต้นทางของ UI ควบคุมที่เหมาะสม
- Secret จะถูกสร้างในไดเรกทอรีชั่วคราวและนำไปใช้กับคลัสเตอร์โดยตรง โดยจะไม่มีการเขียนข้อมูลลับลงในสำเนาเช็กเอาต์ของรีโพซิทอรี