23 คะแนน โดย iwanhae 2025-06-16 | 7 ความคิดเห็น | แชร์ทาง WhatsApp

โดยส่วนตัวแล้วผมค่อนข้างชอบ Kubernetes มาก แต่ก็ยังมีบางจุดที่น่าเสียดายอยู่บ้าง คือมันมีการทำ abstraction ไว้ดีมากจนองค์ประกอบทางกายภาพจริง ๆ ถูกซ่อนไว้ ทำให้ตรวจสอบได้ยาก

ตัวอย่างเช่น

  • ในสถานการณ์ที่ Pod หนึ่งกำลังมีปัญหา Pod อื่น ๆ ที่ถูก deploy อยู่บนโหนดเดียวกันมีสถานะเป็นอย่างไร
  • Pod ที่เชื่อมต่ออยู่กับ Service ในตอนนี้ทำงานได้ปกติทั้งหมดหรือไม่?
  • ตอนนี้โหนดมีการใช้ CPU และ Memory เท่าไร? และในนั้นแต่ละ Pod ใช้สัดส่วนเท่าไร?
  • รายการ PV ที่เชื่อมต่ออยู่กับโหนดปัจจุบันมีอะไรบ้าง?

แน่นอนว่าไม่ใช่ว่าจะไม่มีข้อมูลเลย จึงมีวิธีค่อย ๆ ประกอบคำสั่ง kubectl และใช้เครื่องมือ monitoring อย่าง Prometheus เพื่อทำเป็นภาพให้ดูได้ แต่ก็เป็นเรื่องจริงที่ค่อนข้างยุ่งยาก

เพื่อช่วยในสถานการณ์แบบนั้น ผมเลยลองทำแดชบอร์ด Kubernetes แบบเรียลไทม์บนเว็บขึ้นมาตัวหนึ่ง มันทำงานในรูปแบบที่คอย WATCH resource ทั้งหมดของ Kubernetes ภายในเว็บเบราว์เซอร์ในรูปแบบ WASM โดยไม่จำเป็นต้องติดตั้งอะไรเพิ่มเติม ขอเพียงใช้คำสั่ง kubectl proxy ได้ก็พอ

7 ความคิดเห็น

 
xogns556 2025-06-20

ดูเหมือนว่าตัวเลข Running / Terminating จะเปลี่ยนกันในระดับ 0.00x วินาที ไม่ใช่แค่ทุก 1 วินาที แบบนี้มันทำงานด้วยหลักการอะไรถึงเปลี่ยนตลอดเลยครับ? คือคอยยิง k8s API อยู่เรื่อย ๆ ใช่ไหมครับ?

ผมอยากใช้นะครับ แต่ก็แอบกังวลนิดหน่อยว่ามันจะไปสร้างภาระมหาศาลให้กับ k8s API Read Request หรือเปล่า เลยอยากถามดูครับ!

 
iwanhae 2025-06-21

ใช้ WATCH API ของ K8s
https://kubernetes.io/docs/reference/…

เนื่องจากรับมาเฉพาะการเปลี่ยนแปลงผ่าน protobuf และ SSE จึงมีประสิทธิภาพค่อนข้างดีและมีภาระโหลดเพียงเล็กน้อย (อยู่ในระดับภาระโหลดที่ kubelet สร้างให้กับ kube apiserver)

อย่างไรก็ตาม หากมีหลายคนใช้งานพร้อมกัน แนะนำโหมดเซิร์ฟเวอร์มากกว่า wasm เพราะเซิร์ฟเวอร์จะรับคำขอแทนแล้วส่งข้อมูลที่เก็บไว้ในหน่วยความจำกลับให้ จึงช่วยลดภาระของ kube apiserver ได้

 
taeuk 2025-06-17

ไฟล์ WASM มีขนาดค่อนข้างใหญ่ทีเดียว อยู่ที่ประมาณ 90MB

 
iwanhae 2025-06-17

ขนาดมันค่อนข้างใหญ่ก็จริง แต่ดูเหมือนว่าเอนโทรปีจะไม่ได้สูงนัก ตอนนี้เวลาดาวน์โหลดด้วย curl ไฟล์ที่บีบอัดแบบ gzip มีขนาดแค่ประมาณ 14MB เท่านั้น แม้ตอนเสิร์ฟ WASM จริง ๆ ทุกวันนี้ก็มักจะมีการใช้ขั้นตอนการเข้ารหัสอย่าง gzip, zstd, brotoli อยู่แล้ว จึงคาดว่าทราฟฟิกที่ส่งจริงจะไม่ได้สูงมากนัก

 
kandk 2025-06-18

อยากรู้เหมือนกันว่าเมื่อบีบอัดไบนารีด้วย zstd แล้วจะเป็นอย่างไร

 
roxie 2025-06-16

ขอเปลี่ยนเรื่องนิดหน่อยครับ/ค่ะ อยากทราบว่าการแปลงไปเป็น WASM และการใช้งานนั้นราบรื่นไหม (มีความไม่สะดวกอะไรหรือเปล่าครับ/คะ)!

 
iwanhae 2025-06-16

ตอนแรกทำแบบคร่าว ๆ ด้วย WASM ก่อน แล้วค่อยรวบรวมเฉพาะลอจิกร่วมกัน จากนั้นค่อยแยกโค้ดฝั่ง Server ออกมาต่างหากทีหลัง เลยไม่ได้รู้สึกว่ามีอะไรไม่สะดวกเป็นพิเศษ ตรงกันข้าม ตอนนี้ต่อให้แก้โค้ดแบบคร่าว ๆ ก็มีผลกับทั้งฝั่ง Server และ WASM ทั้งคู่ เลยถือว่าใช้งานด้วยความพอใจอยู่พอสมควรครับ haha