Pod = หน่วยเล็กที่สุดที่ Kubernetes ใช้รันงานจริง
- เป็น กล่องเล็ก ๆ ที่ห่อหุ้ม 1 หรือหลาย container ที่ต้องทำงานร่วมกัน
- แชร์ Network → ทุก container ใน Pod คุยกันผ่าน localhost
- แชร์ Storage → ใช้ Volume ร่วมกันได้
- ถูกออกแบบให้ เกิด-ดับง่าย (ephemeral) ถ้ามี pod ใดตาย kubernetes จะสร้าง pod มาทดแทนอัตโนมัติ
Kubernetes จะไม่จัดการ container ตรง ๆ แต่ใช้ Pod เป็นตัวกลาง
เพราะต้องจัดการ networking, storage, scaling ได้ง่ายขึ้น
+-----------------------------+
| Pod |
| +-----------------------+ |
| | Container A | |
| +-----------------------+ |
| | Container B | |
| +-----------------------+ |
| แชร์ Network + Volumes |
+-----------------------------+
จากภาพนี้ ใน 1 pod มี container A และ B ทำงานร่วมกันโดยมีการ ใช้ network และ storage ร่วมกัน
ตัวอย่างไฟล์ yaml ที่ใช้ในการสร้าง pod
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: nginx
image: nginx
การเขียนไฟล์ yaml ในการสร้าง pod จะมี tag หลักๆ อยู่ 4 tag อธิบายแยกที่ละส่วนคือ
apiVersion: v1
ระบุว่าใช้ API version อะไรใน Kubernetes
สำหรับ Pod → ใช้ v1
kind: Pod
บอกว่า YAML นี้จะสร้าง ทรัพยากรชนิดไหน
ที่นี่คือ Pod
metadata:
name: mypod
ใช้กำหนด ข้อมูลบอกตัวตนของทรัพยากร
ที่นี่ระบุ name: mypod → ชื่อ Pod คือ mypod
spec:
containers:
- name: nginx
image: nginx
ส่วน spec คือการบอกว่าอยากให้ Pod ทำอะไร
containers → คือ รายการ container ที่จะรันใน Pod นี้
ในตัวอย่างนี้:
name: nginx → ตั้งชื่อ container ว่า nginx
image: nginx → ใช้ Docker image ชื่อว่า nginx
Pod นี้ จะรัน container nginx หนึ่งตัว
Top comments (0)