0Pricing
DevOps Bootcamp · บทเรียน

คำขอและขีดจำกัดทรัพยากร

กำหนดคำขอและขีดจำกัด CPU กับหน่วยความจำสำหรับ Pod เพื่อให้จัดสรรทรัพยากรได้อย่างมีประสิทธิภาพและป้องกันทรัพยากรขาดแคลน

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

ความต้องการทรัพยากรใน Kubernetes

เช่นเดียวกับแอปพลิเคชันทั่วไป Pod ของคุณต้องใช้ทรัพยากรเพื่อทำงาน Kubernetes ช่วยจัดการทรัพยากรเหล่านี้อย่างมีประสิทธิภาพโดยใช้คำขอทรัพยากรและขีดจำกัดทรัพยากร

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

คำขอ CPU: รับประกัน CPU

คำขอ CPU บอก Kubernetes ถึงปริมาณ CPU ขั้นต่ำที่ Pod ต้องใช้เพื่อทำงานได้อย่างราบรื่น นี่คือการรับประกัน!

  • Kubernetes ใช้คำขอเพื่อจัดตาราง Pod ไปยังโหนดที่มีทรัพยากรว่างเพียงพอ
  • หากโหนดมี CPU ไม่เพียงพอตามคำขอ Pod จะไม่ถูกจัดตารางไปยังโหนดนั้น
  • วิธีนี้ช่วยป้องกันไม่ให้แอปพลิเคชันสำคัญขาดแคลนทรัพยากร

หน่วย CPU และตัวอย่างคำขอ

CPU วัดเป็น 'คอร์' หรือ 'มิลลิคอร์' (m) โดย 1000m เท่ากับ CPU 1 คอร์ ดังนั้น 500m จึงเท่ากับครึ่งคอร์

ต่อไปนี้คือตัวอย่างการขอ CPU ขนาด 0.5 คอร์ในคำจำกัดความของ Pod:

apiVersion: v1
kind: Pod
metadata:
  name: cpu-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        cpu: "500m"

ขีดจำกัด CPU: ป้องกันการใช้งานเกิน

ขีดจำกัด CPU กำหนดปริมาณ CPU สูงสุดที่ Pod สามารถใช้ได้ ซึ่งเป็นเพดานการใช้งาน

  • หาก Pod พยายามใช้ CPU เกินขีดจำกัด Kubernetes จะจำกัดอัตราการใช้งาน
  • หมายความว่าการใช้ CPU ของ Pod จะถูกจำกัด เพื่อป้องกันไม่ให้ดึงทรัพยากรจาก Pod อื่นบนโหนดเดียวกันไปมากเกินไป

ขีดจำกัด CPU ในการทำงานจริง

นี่คือตัวอย่างการตั้งขีดจำกัด CPU หาก Pod นี้พยายามใช้ CPU มากกว่า 1 คอร์ ระบบจะจำกัดอัตราการใช้งาน ซึ่งหมายความว่าประสิทธิภาพจะถูกจำกัด

apiVersion: v1
kind: Pod
metadata:
  name: cpu-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        cpu: "1"

คำขอหน่วยความจำ: รับประกัน RAM

เช่นเดียวกับ CPU คำขอหน่วยความจำจะระบุปริมาณ RAM ขั้นต่ำที่ Pod ต้องใช้ในการทำงาน

  • Kubernetes ใช้ข้อมูลนี้เพื่อค้นหาโหนดที่มีหน่วยความจำว่างเพียงพอสำหรับ Pod ของคุณ
  • หากโหนดมีหน่วยความจำไม่เหลือ Pod ที่ไม่มีคำขอมักเป็นกลุ่มแรกที่ถูกยุติ (ถูกขับออก) เพื่อเพิ่มพื้นที่ว่าง

หน่วยหน่วยความจำและตัวอย่างคำขอ

หน่วยความจำวัดเป็นไบต์ หน่วยที่ใช้กันทั่วไปคือ Mi (เมบิไบต์) และ Gi (กิบิไบต์)

100Mi คือ 100 เมบิไบต์ ต่อไปนี้เป็นวิธีขอหน่วยความจำขนาด 256 MiB:

apiVersion: v1
kind: Pod
metadata:
  name: mem-request-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      requests:
        memory: "256Mi"

ขีดจำกัดหน่วยความจำ: หลีกเลี่ยง OOM

ขีดจำกัดหน่วยความจำกำหนดปริมาณหน่วยความจำสูงสุดที่พ็อดสามารถใช้ได้

  • หากพ็อดใช้หน่วยความจำเกินขีดจำกัด ระบบปฏิบัติการจะยุติการทำงานทันทีพร้อมข้อผิดพลาด 'หน่วยความจำไม่เพียงพอ' (OOM) ซึ่งมักปรากฏเป็น 'ถูกยุติเพราะ OOM'
  • วิธีนี้ช่วยป้องกันไม่ให้พ็อดที่ทำงานผิดปกติเพียงพ็อดเดียวใช้หน่วยความจำของโหนดจนหมดและทำให้โหนดทั้งโหนดหยุดทำงาน

ขีดจำกัดหน่วยความจำในการทำงาน

พ็อดนี้มีขีดจำกัดหน่วยความจำ 512 MiB หากพ็อดพยายามใช้มากกว่านี้ พ็อดจะถูกยุติการทำงาน (ถูกยุติเพราะ OOM) เพื่อปกป้องงานอื่น ๆ และโหนด

apiVersion: v1
kind: Pod
metadata:
  name: mem-limit-pod
spec:
  containers:
  - name: my-container
    image: nginx
    resources:
      limits:
        memory: "512Mi"

แนวทางปฏิบัติที่ดี: คำขอและขีดจำกัด

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

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

ต่อไปนี้คือตัวอย่างฉบับสมบูรณ์:

apiVersion: v1
kind: Pod
metadata:
  name: full-resource-pod
spec:
  containers:
  - name: my-app
    image: my-registry/my-app:1.0
    resources:
      requests:
        cpu: "200m"
        memory: "128Mi"
      limits:
        cpu: "500m"
        memory: "256Mi"

ตรวจสอบทรัพยากร

คุณมีพ็อดที่กำหนดคำขอ CPU เป็น 200m และขีดจำกัด CPU เป็น 1 (เท่ากับ 1000m)

จะเกิดอะไรขึ้นหากพ็อดนี้พยายามใช้ CPU 1.5 คอร์

สรุป: การจัดการทรัพยากร

ในบทเรียนนี้ เราได้เรียนรู้เกี่ยวกับคำขอทรัพยากรและขีดจำกัดทรัพยากรใน Kubernetes

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

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

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

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

คุณจะเรียนรู้อะไรในบทเรียน “คำขอและขีดจำกัดทรัพยากร”

กำหนดคำขอและขีดจำกัด CPU กับหน่วยความจำสำหรับ Pod เพื่อให้จัดสรรทรัพยากรได้อย่างมีประสิทธิภาพและป้องกันทรัพยากรขาดแคลน คุณปฏิบัติ DevOps Bootcamp ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

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

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

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

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

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

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

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

  1. คำขอและขีดจำกัดทรัพยากร
  2. ตัวเลือกโหนดและความสอดคล้อง
  3. มลทินและการยอมรับมลทิน
  4. ลำดับความสำคัญและการแย่งทรัพยากรของ Pod
← กลับไปที่ DevOps Bootcamp