Deployment คืออะไร?
Deployment คือผู้จัดการเวอร์ชันของแอปใน Kubernetes
ใช้ควบคุมการสร้าง, อัปเดต, และจัดการจำนวน Pod ให้อยู่ในสภาพพร้อมใช้งาน
ดูเผินๆ อาจจะรู้สึกว่ามันคล้ายกับ replicaset จริงๆ แล้วมันควบคุม replicaset อีกที เพื่อเพิ่มความสามารถที่ replicaset ทำไม่ได้
Deployment ทำอะไร?
- สร้าง ReplicaSet ให้อัตโนมัติ → เพื่อควบคุมจำนวน Pod
- รองรับ Rolling Update → อัปเดตเวอร์ชันแอปแบบไม่ล่ม
- ทำ Rollback กลับไปใช้เวอร์ชันเก่าได้ ถ้าเจอปัญหา
- ช่วยให้ Scaling ขึ้น-ลง Pod ได้ง่าย
- บริหาร หลาย ReplicaSet เบื้องหลังเพื่อจัดการเวอร์ชันต่าง ๆ
ความแตกต่างระหว่าง Deployment กับ ReplicaSet
Deployment
│
├── ReplicaSet v1
│ └── Pods (old version)
│
└── ReplicaSet v2
└── Pods (new version)
ตัวอย่าง YAML ของ Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
spec:
replicas: 3
selector:
matchLabels:
app: myapp
template:
metadata:
labels:
app: myapp
spec:
containers:
- name: nginx
image: nginx:1.18
Top comments (0)