Lộ trình
Cloud Native Computing FoundationAssociateTuần 4: Tối ưu & vận hànhBài 26 / 30

Ngày 26: Nâng cấp cluster

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

Lập và thực hành runbook nâng cấp cluster với version skew, backup, health gate, cordon/drain, kubeadm sequence, add-on compatibility và rollback decision.

đọ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

Lập và thực hành runbook nâng cấp cluster với version skew, backup, health gate, cordon/drain, kubeadm sequence, add-on compatibility và rollback decision.

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

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

  • Học quy trình kubeadm upgrade control plane và node
  • Thực hành drain/cordon node trước khi bảo trì
Instructor walkthrough

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

Scenario xuyên suốt

Upgrade Kubernetes không phải chỉ đổi package: worker có thể lệch version, PDB chặn drain, CNI/CSI/CoreDNS không tương thích hoặc cluster đã unhealthy từ trước. Bài học dạy change process có go/no-go, canary, recovery và post-check.

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ế
  • Version skew giữa kube-apiserver, kubelet, kubectl, kubeadm và add-ons có giới hạn; phải xác định current/target/support matrix trước thay đổi.
  • Backup etcd/config/certs, health baseline, capacity, PDB, replicas và maintenance window là gate; không upgrade cluster đang có symptom chưa giải thích.
  • Control plane và worker có sequence/phase riêng; drain là voluntary disruption và phải xử lý DaemonSet/local data/PDB/capacity trước.
  • CNI, CSI, CoreDNS, kube-proxy, admission webhook và API deprecation có thể tạo regression sau version change.

Upgrade là controlled change

Trước mutation: inventory current/target, version skew và add-on compatibility; backup etcd/config/certs; baseline API/nodes/system Pods/DNS/network/storage/workloads; kiểm tra PDB, replicas, capacity và maintenance window. Đặt go/no-go: nếu baseline fail hoặc backup chưa verify thì không nâng.

Sequence và gates

Control plane → add-ons/worker theo tài liệu phiên bản; mỗi worker cần cordon/drain với disruption/local-data plan. Sau canary, kiểm tra node version/Ready, kube-system, CNI/CSI/CoreDNS/kube-proxy, DNS, Service, PVC mount, workload Available và metrics/logs. Nếu regression, giữ node cordon, thu evidence và theo rollback plan; không cố chạy tiếp để “xong lệnh”.

Bài tập

Tạo change record cho một minor upgrade, failure matrix cho skew/PDB/CNI/package/post-check, rồi chạy lab preflight và mô phỏng gate. Pass khi người khác có thể biết lúc nào được nâng, lúc nào abort, và bằng chứng sau upgrade là gì.

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 version --output=yaml
kubectl get nodes -o wide
kubectl get pods -n kube-system -o wide
kubectl get pdb -A -o wide
kubectl get events -A --sort-by=.lastTimestamp
kubeadm upgrade plan
kubectl uncordon NODE_NAME
Hands-on lab

Thực hành theo scenario

  1. Viết change record: current→target version, compatibility links/assumptions, owner, RPO/RTO, backup, health baseline, PDB/capacity, canary, sequence, abort criteria và rollback.
  2. Read-only preflight: `kubectl version`, nodes/kube-system/add-ons, API deprecations nếu có, PDB/replicas, events và resource headroom. Ghi expected state trước mutation.
  3. Trên lab cô lập, mô phỏng hoặc thực hiện upgrade theo kubeadm-supported phase; cordon/drain worker với flags tối thiểu, theo dõi eviction/PDB/DaemonSet/local data và không force mù.
  4. Sau mỗi gate kiểm tra control-plane/API, node version/Ready, kube-system, CNI/CSI/CoreDNS/kube-proxy, DNS/network/storage và workload Available; dừng nếu canary hoặc health regression fail.
  5. Uncordon sau post-check, lưu evidence/timeline, cập nhật runbook và cleanup test packages/snapshots theo policy; không nâng production từ bài lab chưa có approval.
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:

  • Current/target/version skew và add-on compatibility có evidence.
  • Backup, health baseline, capacity/PDB và go/no-go rõ.
  • Sequence control-plane/worker và drain safety đúng.
  • Post-upgrade system, network, storage, DNS và workload health được chứng minh.
  • Abort/rollback/uncordon/timeline/cleanup có owner và điều kiện cụ thể.
Transfer to exam / production

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

Trong CKA, đọc kỹ version target và package/kubeadm phase, giữ terminal/context đúng node. Sau thao tác luôn kiểm tra node version/Ready, kube-system và uncordon; lệnh upgrade thành công chưa phải bài hoàn tất.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Trước khi drain worker để upgrade, điều kiện nào quan trọng nhất?

Kết thúc bài

Checklist trước khi sang Ngày 2