ข้ามไปเนื้อหาหลัก
คอนเทนเนอร์· ~14 นาที

Requests และ Limits — จองและจำกัดทรัพยากร

บอก K8s ว่า Pod ต้องการเท่าไร และห้ามใช้เกินเท่าไร

เปรียบเทียบให้เห็นภาพ

จองโต๊ะร้านอาหาร: request = "จองไว้ 4 ที่นั่งแน่ ๆ" (K8s การันตีให้และใช้เลือก node) · limit = "นั่งได้มากสุด 6 ที่ ห้ามเกิน" (เพดานที่ใช้ได้จริง) — เกินแล้วโดนเบรก

ทุก container ควรระบุ requests (ทรัพยากรที่การันตี ใช้ตอน scheduler เลือก node) และ limits (เพดานสูงสุด) สำหรับ CPU และ memory

request = จองไว้ (จัด node) · limit = เพดานห้ามเกิน

request
ใช้เพิ่มได้
limit

เกิน limit: CPU → throttle (ช้า) · Memory → OOMKilled (ตาย+restart)

request = พื้นที่จองไว้ (ใช้จัด node) · limit = เพดานห้ามเกิน · เกิน mem limit = OOMKilled
resources:
  requests:          # การันตีขั้นต่ำ (scheduler ใช้เลือก node)
    cpu: "250m"      # 250 millicores = 0.25 CPU
    memory: "256Mi"
  limits:            # เพดานสูงสุด
    cpu: "500m"
    memory: "512Mi"
ระบุ resources ใน container

สรุป Key Takeaways

  • requests = การันตี (ใช้เลือก node) · limits = เพดานสูงสุด
  • เกิน CPU limit = throttle (ช้า) · เกิน memory limit = OOMKilled (ตาย+restart)
  • ควรตั้งทุก container — ไม่ตั้งเลยเสี่ยงล้ม node
อ่านจบแล้วอย่าลืมทำเครื่องหมาย