Lộ trình
Cloud Native Computing FoundationAssociateTuần 2: Đào sâu dịch vụ cốt lõiBài 8 / 30

Ngày 8: Deployment & ReplicaSet

Thời lượng: 45 phút
Mục tiêu: 2 nhiệm vụ chính
Tiến độ lộ trình
ckangày 8
hoàn thành8 / 30 bài
Bối cảnh bài học

Vận hành Deployment và ReplicaSet qua desired replicas, selector/template contract, rollout, scale, history, rollback và readiness evidence.

đọc hiểuthực hànhcheckpoint
Bài giảng hôm nay

Học hiểu, rồi mới thực hành

Vận hành Deployment và ReplicaSet qua desired replicas, selector/template contract, rollout, scale, history, rollback và readiness evidence.

Bắt đầu đọc bài giảng

Nhiệm vụ bài học hôm nay

  • Học cách Deployment quản lý ReplicaSet và Pod
  • Thực hành scale, rollout, rollback Deployment
Instructor walkthrough

Bài giảng chi tiết: từ bài toán đến bằng chứng

Scenario xuyên suốt

Deployment báo updated nhưng ReplicaSet mới tạo Pod không Ready; selector/template không khớp và rollback quay về revision lỗi. Bài học dạy controller ownership và rollout state thay vì chỉ chạy `kubectl scale`.

01Đọc bài toán

Xác định actor, workload, constraint và trạng thái cuối cần đạt.

02Vẽ luồng / boundary

Chỉ ra request, dependency, identity và failure domain trước khi chọn công cụ.

03Chọn và thực hành

Thay đổi nhỏ nhất trong lab cô lập; command nào cũng phải nói rõ nó kiểm tra điều gì.

04Kiểm chứng / recovery

Đối chiếu trạng thái thực tế, tạo một failure variant và ghi cách hoàn tác.

Cách nối lý thuyết với thực tế
  • Deployment quản lý ReplicaSet; ReplicaSet đảm bảo số Pod theo selector; Pod có ownerReferences và không nên sửa tay để thay controller.
  • Deployment selector phải match Pod template labels và thường immutable sau tạo; mismatch khiến rollout/ownership lỗi.
  • Rollout có revision/conditions/progress deadline; Available/Ready khác desired replicas.
  • Scale thay đổi replicas; rollout thay image/spec; rollback chọn revision trước đó và cần verify health, không rollback mù.

Controller ownership

Deployment giữ desired rollout; ReplicaSet giữ số Pod; ownerReferences nối object. Selector/template labels là contract: sai contract thì Pod có thể tồn tại nhưng controller/service không quản lý đúng. Đọc desired/updated/available/ready thay vì chỉ nhìn replicas.

Rollout và rollback

Scale thay đổi số lượng; rollout thay đổi template và tạo ReplicaSet revision. Khi bad revision, thu events/logs/probe evidence rồi rollback có điều kiện; sau rollback verify Ready/Available và request path.

Bài tập

Tạo Deployment 3 replicas, scale, rollout revision tốt/xấu, debug và rollback. Ghi revision, expected state, command/evidence và cleanup. Pass khi giải thích được controller nào sở hữu Pod và vì sao rollout fail.

Terminal reference

Command list và cách dùng

Chạy từng lệnh theo đúng thứ tự. Trước các lệnh có thể tạo hoặc thay đổi tài nguyên, hãy kiểm tra profile, account và region.

Commands · read-only checkpoints
kubectl create deployment web --image=nginx:stable --replicas=3 -n cka-day8 --dry-run=client -o yaml
kubectl rollout status deployment/web -n cka-day8 --timeout=90s
kubectl get deploy,rs,pods -n cka-day8 -o wide
kubectl rollout history deployment/web -n cka-day8
kubectl rollout undo deployment/web -n cka-day8 --to-revision=REVISION
Hands-on lab

Thực hành theo scenario

  1. Tạo namespace `cka-day8` và Deployment YAML có selector/template labels khớp, 3 replicas, resource requests và readiness probe.
  2. Scale lên/xuống, cập nhật image hoặc env để tạo revision; theo dõi rollout status, ReplicaSets, Pod readiness và revision history.
  3. Cố ý dùng image/probe lỗi trong lab, thu events/logs, pause hoặc rollback theo revision; verify traffic/Available state sau recovery.
  4. Cleanup Deployment/ReplicaSets/Pods theo namespace, kiểm tra owner/resources còn lại và không xóa controller production.
Evidence checkpoint

Kiểm chứng kết quả

Không coi lệnh chạy thành công là đủ. Hãy đối chiếu output với trạng thái mong đợi:

  • Selector/template/ownerReferences đúng.
  • Desired/updated/available/ready replicas được đọc.
  • Rollout/scale/history/rollback có evidence.
  • Bad revision có diagnosis và recovery.
  • Cleanup namespace/owner scoped có proof.
Transfer to exam / production

Bẫy thường gặp và trade-off

CKA phân biệt scale với rollout và Deployment với ReplicaSet. Sau rollback phải kiểm tra Available/Ready, không chỉ thấy revision đổi.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Deployment tạo ReplicaSet mới nhưng không có Pod Ready. Bước debug đầu tiên phù hợp nhất là gì?

Kết thúc bài

Checklist trước khi sang Ngày 2