0
0
Lập trình
Flame Kris
Flame Krisbacodekiller

Cập Nhật Deployments Kubernetes và Kiểm Tra Rollout trên GCP

Đăng vào 4 tháng trước

• 3 phút đọc

📌 Giới thiệu

Trong bài viết này, chúng ta sẽ tìm hiểu cách cập nhật Deployments trong Google Kubernetes Engine (GKE) bằng hai phương pháp chính:

  • Cập nhật trực tiếp hình ảnh thông qua lệnh kubectl set image.
  • Chỉnh sửa YAML của Deployment qua lệnh kubectl edit deployment.

Chúng ta cũng sẽ kiểm tra trạng thái rollout, ReplicaSets, Pods, và lịch sử rollout một cách chi tiết.


🔹 Bước 01: Cập Nhật Ứng Dụng (V1 → V2) sử dụng set image

1️⃣ Lấy Tên Container từ Deployment

Để bắt đầu, bạn cần lấy tên container từ deployment hiện tại:

bash Copy
kubectl get deployment my-first-deployment -o yaml

2️⃣ Cập Nhật Deployment lên V2

Tiếp theo, sử dụng lệnh sau để cập nhật hình ảnh container:

bash Copy
kubectl set image deployment/my-first-deployment \
  kubenginx=ghcr.io/stacksimplify/kubenginx:2.0.0

🔍 Kiểm Tra Rollout

Sau khi cập nhật, bạn có thể kiểm tra trạng thái rollout với các lệnh sau:

bash Copy
# Kiểm tra trạng thái rollout
kubectl rollout status deployment/my-first-deployment

# Kiểm tra chi tiết deployment
kubectl get deploy
kubectl describe deployment my-first-deployment

✅ Kubernetes thực hiện cập nhật theo chiến lược rolling update, từng bước thay thế Pods cũ bằng Pods mới mà không gây gián đoạn dịch vụ.


🔍 Kiểm Tra ReplicaSets & Pods

Để kiểm tra các ReplicaSets và Pods hiện có:

bash Copy
# Kiểm tra ReplicaSets
kubectl get rs

# Kiểm tra Pods
kubectl get po

📌 Quan sát: Một ReplicaSet mới được tạo cho phiên bản 2.0.0, trong khi ReplicaSet cũ được giảm quy mô.


🌍 Truy Cập Ứng Dụng

Để truy cập ứng dụng, bạn có thể lấy địa chỉ IP LoadBalancer:

bash Copy
# Lấy địa chỉ LoadBalancer IP
kubectl get svc

# Truy cập qua trình duyệt hoặc curl
http://<External-IP>

✅ Bây giờ bạn nên thấy Ứng Dụng Phiên bản: V2.


📝 Cập Nhật Ghi Chú Thay Đổi cho Lịch Sử Rollout

Bạn có thể cập nhật ghi chú cho lịch sử rollout như sau:

bash Copy
# Xem lịch sử rollout
kubectl rollout history deployment/my-first-deployment

# Chú thích với lý do thay đổi
kubectl annotate deployment/my-first-deployment \
  kubernetes.io/change-cause="Deployment UPDATE - App Version 2.0.0 - SET IMAGE OPTION"

# Kiểm tra lại lịch sử rollout
kubectl rollout history deployment/my-first-deployment

🔹 Bước 02: Cập Nhật Ứng Dụng (V2 → V3) sử dụng edit deployment

1️⃣ Chỉnh Sửa YAML của Deployment

Để thay đổi hình ảnh, sử dụng lệnh:

bash Copy
kubectl edit deployment/my-first-deployment

Sau đó, thay đổi phiên bản hình ảnh:

yaml Copy
# Từ
image: ghcr.io/stacksimplify/kubenginx:2.0.0

# Đến
image: ghcr.io/stacksimplify/kubenginx:3.0.0

🔍 Kiểm Tra Rollout

Bạn có thể kiểm tra trạng thái rollout sau khi chỉnh sửa:

bash Copy
# Trạng thái rollout
kubectl rollout status deployment/my-first-deployment

# Chi tiết deployment
kubectl describe deployment/my-first-deployment

🔍 Kiểm Tra ReplicaSets & Pods

Kiểm tra lại ReplicaSets và Pods:

bash Copy
kubectl get rs
kubectl get po

📌 Quan sát: Bây giờ chúng ta sẽ thấy 3 ReplicaSets (V1, V2, V3).


🌍 Truy Cập Ứng Dụng

Để truy cập ứng dụng sau khi cập nhật:

bash Copy
kubectl get svc
http://<External-IP>

✅ Ứng dụng hiện nên hiển thị Phiên bản: V3.


📝 Cập Nhật Ghi Chú Thay Đổi cho Lịch Sử Rollout

bash Copy
# Lịch sử rollout
kubectl rollout history deployment/my-first-deployment

# Chú thích với lý do thay đổi
kubectl annotate deployment/my-first-deployment \
  kubernetes.io/change-cause="Deployment UPDATE - App Version 3.0.0 - EDIT DEPLOYMENT OPTION"

# Kiểm tra lại lịch sử rollout
kubectl rollout history deployment/my-first-deployment

✅ Tóm Tắt

Trong bài hướng dẫn này, chúng ta đã:

  • Cập nhật một Deployment sử dụng kubectl set image
  • Cập nhật phiên bản khác sử dụng kubectl edit deployment
  • Kiểm tra trạng thái rollout, ReplicaSets, và Pods
  • Ghi chú cho các rollout để theo dõi lịch sử tốt hơn

🎉 Với Kubernetes trên GCP, việc cập nhật diễn ra liền mạch, không gián đoạn và hoàn toàn có thể kiểm tra.


🌟 Cảm ơn bạn đã đọc! Nếu bài viết này hữu ích, hãy để lại một like ❤️, theo dõi, hoặc chia sẻ để tôi có thêm động lực tạo ra nhiều nội dung hơn nữa.


— Latchu | Kỹ Sư DevOps & Cloud Cao Cấp
☁️ AWS | GCP | ☸️ Kubernetes | 🔐 Bảo Mật | ⚡ Tự Động Hóa
📌 Chia sẻ hướng dẫn thực hành, các phương pháp tốt nhất & giải pháp đám mây thực tế.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào