0Pricing
Kubernetes Basics · บทเรียน

โควตาทรัพยากรและช่วงจำกัดทรัพยากร

ป้องกันปัญหาผู้ใช้งานร่วมที่รบกวนกันและเวิร์กโหลดที่ใช้ทรัพยากรเกินควบคุม ด้วยการบังคับใช้ ResourceQuotas ระดับเนมสเปซและ LimitRanges ต่อพ็อด

โควตาทรัพยากรและช่วงจำกัดทรัพยากร เป็นบทเรียน Kubernetes Basics ฟรีบน CoddyKit นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Kubernetes Basics และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน

แนวป้องกันสำหรับคลัสเตอร์ที่ใช้ร่วมกัน

ในคลัสเตอร์ที่ใช้ร่วมกัน ทีมหนึ่งอาจใช้ทรัพยากรทั้งหมดโดยไม่ได้ตั้งใจ ResourceQuotas และ LimitRanges คือแนวป้องกันที่ช่วยให้เนมสเปซต่าง ๆ ใช้งานได้อย่างเป็นธรรมและป้องกันระบบหยุดทำงาน

ResourceQuota คืออะไร

ResourceQuota จำกัดทรัพยากรรวมที่เนมสเปซหนึ่งสามารถใช้ได้ ได้แก่ CPU หน่วยความจำ และจำนวนออบเจ็กต์ เช่น พ็อดหรือบริการ

โควตาทรัพยากรประมวลผล

โควตานี้จำกัดคำขอและขีดจำกัดรวมของพ็อดทั้งหมดในเนมสเปซ

apiVersion: v1
kind: ResourceQuota
metadata:
  name: team-compute
  namespace: team-a
spec:
  hard:
    requests.cpu: '4'
    requests.memory: 8Gi
    limits.cpu: '8'
    limits.memory: 16Gi

โควตาจำนวนอ็อบเจ็กต์

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

spec:
  hard:
    pods: '20'
    services: '5'
    persistentvolumeclaims: '10'

กฎการบังคับใช้โควตา

เมื่อกำหนด ResourceQuota สำหรับการประมวลผลแล้ว พ็อดทุกตัวต้องประกาศคำขอและขีดจำกัด มิฉะนั้นจะถูกปฏิเสธ โควตาไม่สามารถคำนวณพ็อดที่ไม่จำกัดขนาดได้

ตรวจสอบการใช้โควตา

ตรวจสอบว่าโควตาถูกใช้ไปมากเพียงใดในเวลาใดก็ได้

kubectl describe resourcequota team-compute -n team-a
# Resource         Used  Hard
# requests.cpu     2     4
# requests.memory  3Gi   8Gi

LimitRange คืออะไร

LimitRange กำหนดค่าเริ่มต้นและขอบเขตต่ออ็อบเจ็กต์ภายในเนมสเปซ เพื่อจำกัดพ็อดแต่ละตัว แม้นักพัฒนาจะลืมกำหนดค่าก็ตาม

ค่าเริ่มต้นและขอบเขต

LimitRange สามารถเติมคำขอและขีดจำกัดเริ่มต้น รวมทั้งบังคับใช้ค่าต่ำสุดและสูงสุดสำหรับแต่ละคอนเทนเนอร์ได้

apiVersion: v1
kind: LimitRange
metadata:
  name: container-limits
  namespace: team-a
spec:
  limits:
  - type: Container
    default:
      cpu: 500m
      memory: 256Mi
    defaultRequest:
      cpu: 250m
      memory: 128Mi
    max:
      cpu: '2'
      memory: 1Gi

การทำงานร่วมกัน

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

แก้ไขปัญหาการถูกปฏิเสธ

หากพ็อดถูกปฏิเสธ ข้อผิดพลาดจะระบุนโยบายที่เป็นสาเหตุ โปรดอ่านอย่างละเอียด เพราะจะแจ้งว่าคุณใช้เกินโควตาหรือฝ่าฝืนขอบเขตของ LimitRange

# exceeded quota: team-compute, requested: requests.cpu=2, used: 3, limited: 4
# maximum cpu usage per Container is 2, but limit is 4

เคล็ดลับสำหรับการใช้งานจริง

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

ตรวจสอบความเข้าใจ

ทดสอบความเข้าใจเกี่ยวกับเกณฑ์ควบคุมเนมสเปซ

ทบทวน

คุณได้เรียนรู้การบังคับใช้ความเป็นธรรมด้วย ResourceQuotas (ขีดจำกัดการประมวลผลและจำนวนอ็อบเจ็กต์ในระดับเนมสเปซ) และ LimitRanges (ค่าเริ่มต้นและขอบเขตต่อคอนเทนเนอร์) เมื่อนำมาใช้ร่วมกัน ทั้งสองอย่างจะป้องกันปัญหาผู้ใช้รายหนึ่งใช้ทรัพยากรมากเกินไปจนกระทบผู้อื่น และช่วยให้คลัสเตอร์ที่ใช้ร่วมกันมีเสถียรภาพ ซึ่งเป็นแนวปฏิบัติสำคัญสำหรับระบบใช้งานจริง

คำถามที่พบบ่อย

บทเรียน “โควตาทรัพยากรและช่วงจำกัดทรัพยากร” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “โควตาทรัพยากรและช่วงจำกัดทรัพยากร” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Kubernetes Basics ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Kubernetes Basics มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “โควตาทรัพยากรและช่วงจำกัดทรัพยากร”

ป้องกันปัญหาผู้ใช้งานร่วมที่รบกวนกันและเวิร์กโหลดที่ใช้ทรัพยากรเกินควบคุม ด้วยการบังคับใช้ ResourceQuotas ระดับเนมสเปซและ LimitRanges ต่อพ็อด คุณปฏิบัติ Kubernetes Basics ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Kubernetes Basics หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Kubernetes Basics บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 4 จากทั้งหมด 4 บทเรียน

บทเรียน “โควตาทรัพยากรและช่วงจำกัดทรัพยากร” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Kubernetes Basics นี้ได้ไหม

ได้ บทเรียน Kubernetes Basics ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. การวินิจฉัยปัญหาทั่วไป
  2. การแก้ไขข้อบกพร่องของ Pod และ Service
  3. แนวทางปฏิบัติและเคล็ดลับที่ดีที่สุดสำหรับการใช้งานจริง
  4. โควตาทรัพยากรและช่วงจำกัดทรัพยากร
← กลับไปที่ Kubernetes Basics