ด่วน: การทำ CI/CD push deployments กำลังล้มเหลวเนื่องจากปัญหานี้ เวิร์กโหลด (workloads) ยังคงทำงานอยู่แต่ไม่สามารถ deploy โค้ดใหม่ได้
สภาพแวดล้อม:
- Self-hosted บน Tencent Cloud VM (Ubuntu 24, k3s v1.32.4+k3s1)
- nats:2.10.7-alpine, ส่วนประกอบทั้งหมดของ Zeabur กำลังทำงาน
อาการ:
- Dashboard ไม่สามารถดูหรือจัดการบริการแต่ละรายการได้
- เวิร์กโหลดจริงยังคงให้บริการทราฟฟิกได้ตามปกติ (HTTPS 200)
- zeabur-kube-watch บันทึก log อย่างต่อเนื่อง: nats: API error: code=503 err_code=10023 description=insufficient resources
การวินิจฉัย:
-
JetStream ถูกปิดใช้งาน (DISABLED) บน nats-0: $ wget -qO- http://localhost:8222/jsz { "disabled": true, "config": { "max_memory": 0, "max_storage": 0 }, "streams": 0, "consumers": 0, "messages": 0, "bytes": 0 }
-
nats.conf ไม่มีบล็อก jetstream: port: 4222 pid_file: "/var/run/nats/nats.pid" http: 8222 server_name: $POD_NAME lame_duck_grace_period: 10s lame_duck_duration: 30s authorization: { user: admin, password: "..." }
-
PVC nats-data-nats-0 (1Gi, local-path) มีสถานะเป็น Bound แต่ไม่ได้ถูก mount เข้าไปในคอนเทนเนอร์ nats — คำสั่ง
mountภายในคอนเทนเนอร์แสดงว่าไม่มี path /data -
ขีดจำกัดหน่วยความจำบนคอนเทนเนอร์ nats คือ 128Mi แต่ตัวแปรสภาพแวดล้อม GOMEMLIMIT คือ 4GiB
-
การรีสตาร์ท nats-0 (kubectl delete pod) ไม่ช่วยอะไร — ข้อผิดพลาดกลับมาทันทีเนื่องจากสาเหตุหลักคือ kube-watch พยายามใช้โปรโตคอล JetStream กับเซิร์ฟเวอร์ที่ปิดใช้งาน JetStream อยู่
คำถาม:
zeabur-kube-watchถูกคาดหวังให้ใช้ JetStream หรือไม่? ถ้าใช่ ทำไม JetStream ถึงไม่ถูกเปิดใช้งานใน nats.conf ที่มาพร้อมกัน?- มีวิธีที่ปลอดภัยในการเปิดใช้งาน JetStream บน nats-0 ที่มีอยู่หรือไม่ หรือฉันต้องรอการอัปเดตเซิร์ฟเวอร์?
- เวิร์กโหลดของฉันจะยังคงไม่ได้รับผลกระทบหากฉันปล่อยทิ้งไว้แบบนี้ใช่หรือไม่?