DEV Community

Tossapol Ritcharoenwattu
Tossapol Ritcharoenwattu

Posted on

Kubernetes Workshop1 : Step6 : Deployment

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
Enter fullscreen mode Exit fullscreen mode

Top comments (0)