📌 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
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
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
# 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
# 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
# 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
# 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
kubectl edit deployment/my-first-deployment
Sau đó, thay đổi phiên bản hình ảnh:
yaml
# 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
# 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
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
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
# 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ế.