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 เครือข่ายเฉพาะ และตัวเลือกที่กำหนดวิธีการทำงานของคอนเทนเนอร์

พ็อดกับคอนเทนเนอร์: ความแตกต่าง
คุณอาจสงสัยว่า “ถ้ามีคอนเทนเนอร์อยู่แล้ว ทำไมจึงต้องมีพ็อด” ความแตกต่างสำคัญมีดังนี้
- คอนเทนเนอร์ (เช่น คอนเทนเนอร์ Docker) คือแพ็กเกจที่ประกอบด้วยแอปพลิเคชันและสิ่งที่แอปพลิเคชันต้องพึ่งพา
- พ็อด คือชั้นนามธรรมของ Kubernetes ที่ครอบคอนเทนเนอร์หนึ่งรายการขึ้นไป และจัดเตรียมทรัพยากรที่ใช้ร่วมกันกับข้อมูลระบุตัวตนบนเครือข่ายเดียวกัน
คอนเทนเนอร์คือสิ่งที่เรียกใช้งานได้จริง ส่วนพ็อดคือวิธีที่ Kubernetes ใช้จัดการและควบคุมสิ่งที่เรียกใช้งานได้เหล่านั้น
เหตุใดจึงต้องใช้พ็อด
พ็อดมีประโยชน์สำคัญหลายประการ
- เนมสเปซเครือข่ายที่ใช้ร่วมกัน: คอนเทนเนอร์ทั้งหมดภายในพ็อดใช้ที่อยู่ IP และพอร์ตเครือข่ายเดียวกัน จึงสื่อสารกันได้โดยใช้
localhost - พื้นที่จัดเก็บที่ใช้ร่วมกัน: พ็อดสามารถใช้โวลุมพื้นที่จัดเก็บร่วมกัน ทำให้คอนเทนเนอร์ภายในพ็อดเดียวกันเข้าถึงข้อมูลส่วนกลางได้
- การอยู่ร่วมตำแหน่งและการจัดตารางร่วมกัน: คอนเทนเนอร์ที่ต้องทำงานใกล้ชิดกัน (เช่น แอปพลิเคชันกับตัวแทนบันทึกข้อมูลการทำงาน) จะทำงานอยู่บนโหนดเดียวกันและถูกจัดตารางให้ทำงานร่วมกันเสมอ
โครงสร้างของคำจำกัดความพ็อด
พ็อดกำหนดโดยใช้ไฟล์การตั้งค่า YAML ส่วนประกอบหลักที่คุณจะพบมีดังนี้
apiVersion: ระบุเวอร์ชัน API ของ Kubernetes (เช่นv1)kind: ประเภทของออบเจ็กต์ Kubernetes ซึ่งคือPodmetadata: ข้อมูลต่าง ๆ เช่น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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- สถาปัตยกรรม Kubernetes
- Pod: หน่วยที่เล็กที่สุด
- พื้นฐานคำสั่ง kubectl
- เนมสเปซและป้ายกำกับเพื่อการจัดระเบียบ