0Pricing
Docker & DevOps Fundamentals · บทเรียน

Pod: หน่วยที่เล็กที่สุด

เรียนรู้เกี่ยวกับ Pod ซึ่งเป็นองค์ประกอบพื้นฐานของ Kubernetes รวมถึงวิธีกำหนดและจัดการ Pod

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

พ็อดของ Kubernetes คืออะไร

ใน Kubernetes หน่วยที่เล็กที่สุดและเป็นพื้นฐานที่สุดที่คุณสามารถนำไปใช้งานได้คือ พ็อด ลองนึกภาพพ็อดเป็นเหมือน “บ้าน” หนึ่งหลังที่บรรจุคอนเทนเนอร์หนึ่งรายการขึ้นไป

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

Pod: หน่วยที่เล็กที่สุด — ภาพประกอบ 1

พ็อดกับคอนเทนเนอร์: ความแตกต่าง

คุณอาจสงสัยว่า “ถ้ามีคอนเทนเนอร์อยู่แล้ว ทำไมจึงต้องมีพ็อด” ความแตกต่างสำคัญมีดังนี้

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

คอนเทนเนอร์คือสิ่งที่เรียกใช้งานได้จริง ส่วนพ็อดคือวิธีที่ Kubernetes ใช้จัดการและควบคุมสิ่งที่เรียกใช้งานได้เหล่านั้น

เหตุใดจึงต้องใช้พ็อด

พ็อดมีประโยชน์สำคัญหลายประการ

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

โครงสร้างของคำจำกัดความพ็อด

พ็อดกำหนดโดยใช้ไฟล์การตั้งค่า YAML ส่วนประกอบหลักที่คุณจะพบมีดังนี้

  • apiVersion: ระบุเวอร์ชัน API ของ Kubernetes (เช่น v1)
  • kind: ประเภทของออบเจ็กต์ Kubernetes ซึ่งคือ Pod
  • metadata: ข้อมูลต่าง ๆ เช่น name และ labels ของพ็อด
  • spec: สถานะที่ต้องการของพ็อด รวมถึง containers ที่ต้องการเรียกใช้ volumes และการตั้งค่าอื่น ๆ

การกำหนดพ็อดแบบคอนเทนเนอร์เดียว

พ็อดส่วนใหญ่มีคอนเทนเนอร์เดียว ซึ่งเป็นรูปแบบทั่วไปสำหรับแอปพลิเคชันที่เรียบง่าย ต่อไปนี้คือตัวอย่างคำจำกัดความ YAML พื้นฐานสำหรับพ็อดที่เรียกใช้เว็บเซิร์ฟเวอร์ Nginx

apiVersion: v1
kind: Pod
metadata:
  name: my-nginx-pod
  labels:
    app: webserver
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80

การนำพ็อดแรกไปใช้งาน

หากต้องการสร้างพ็อดจากไฟล์ YAML ให้ใช้คำสั่ง kubectl apply คำสั่งนี้จะบอกให้ Kubernetes สร้างหรืออัปเดตทรัพยากรตามคำจำกัดความของคุณ

สมมติว่าคุณบันทึกคำจำกัดความพ็อด Nginx ก่อนหน้านี้เป็น nginx-pod.yaml คุณจะนำไปใช้งานได้ดังนี้

  • kubectl apply -f nginx-pod.yaml

จากนั้น Kubernetes จะจัดตารางให้พ็อดนี้ทำงานบนโหนดผู้ปฏิบัติงานโหนดใดโหนดหนึ่ง

ตรวจสอบพ็อด: Get และ Describe

เมื่อนำไปใช้งานแล้ว คุณจะต้องตรวจสอบสถานะของพ็อด ต่อไปนี้คือคำสั่ง kubectl ที่จำเป็นสองคำสั่ง

  • kubectl get pods: แสดงพ็อดทั้งหมดในเนมสเปซปัจจุบัน พร้อมชื่อ สถานะ และโหนด
  • kubectl describe pod <pod-name>: แสดงข้อมูลโดยละเอียดของพ็อดที่ระบุ รวมถึงเหตุการณ์ สถานะคอนเทนเนอร์ และทรัพยากรที่ได้รับการจัดสรร

คำสั่งเหล่านี้สำคัญอย่างยิ่งสำหรับการตรวจสอบและแก้ไขปัญหา

พ็อดหลายคอนเทนเนอร์: ไซด์คาร์

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

คอนเทนเนอร์ไซด์คาร์ทำงานอยู่เคียงข้างคอนเทนเนอร์แอปพลิเคชันหลักในพ็อดเดียวกัน โดยทำงานเสริม เช่น

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

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

ตัวอย่าง: พ็อดหลายคอนเทนเนอร์

นี่คือตัวอย่างพ็อดหลายคอนเทนเนอร์ ซึ่งมีเว็บเซิร์ฟเวอร์ Nginx และคอนเทนเนอร์ไซด์คาร์ busybox ที่เขียนบันทึกการทำงานลงในโวลุมที่ใช้ร่วมกัน

apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  volumes:
  - name: shared-log-volume
    emptyDir: {}
  containers:
  - name: web-server
    image: nginx:latest
    ports:
    - containerPort: 80
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/nginx
  - name: log-writer
    image: busybox:latest
    command: ["/bin/sh", "-c", "while true; do echo 'Hello from sidecar!' >> /var/log/app.log; sleep 5; done"]
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/app

ทดสอบความรู้เรื่องพ็อด

ข้อใดต่อไปนี้กล่าวเกี่ยวกับพ็อดของ Kubernetes ได้ถูกต้อง

ทบทวน: พ็อด หน่วยหลัก

คุณเพิ่งเรียนรู้เกี่ยวกับพ็อดของ Kubernetes ซึ่งเป็นองค์ประกอบพื้นฐานของแอปพลิเคชันในคลัสเตอร์

  • พ็อดรวบรวมคอนเทนเนอร์หนึ่งรายการขึ้นไปและจัดเตรียมทรัพยากรที่ใช้ร่วมกัน
  • พ็อดมีเครือข่ายและพื้นที่จัดเก็บที่ใช้ร่วมกัน พร้อมรับรองว่าคอนเทนเนอร์ที่เกี่ยวข้องจะอยู่ร่วมตำแหน่งกัน
  • คุณกำหนดพ็อดโดยใช้ YAML และนำไปใช้งานด้วย kubectl apply
  • kubectl get pods และ kubectl describe pod ช่วยให้คุณตรวจสอบพ็อดได้

ถัดไป เราจะสำรวจคำสั่ง kubectl เพิ่มเติมสำหรับโต้ตอบกับคลัสเตอร์ของคุณ!

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

บทเรียน “Pod: หน่วยที่เล็กที่สุด” ฟรีหรือไม่

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

คุณจะเรียนรู้อะไรในบทเรียน “Pod: หน่วยที่เล็กที่สุด”

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

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

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

บทเรียน “Pod: หน่วยที่เล็กที่สุด” ใช้เวลานานแค่ไหน

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

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

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

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

  1. สถาปัตยกรรม Kubernetes
  2. Pod: หน่วยที่เล็กที่สุด
  3. พื้นฐานคำสั่ง kubectl
  4. เนมสเปซและป้ายกำกับเพื่อการจัดระเบียบ
← กลับไปที่ Docker & DevOps Fundamentals