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

Ngày 11: Helm cơ bản

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

Làm việc với Helm chart có kiểm soát: chart structure, values/rendered manifests, release lifecycle, namespace scope, dry-run và troubleshooting trước khi cài ứng dụng.

đọ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àm việc với Helm chart có kiểm soát: chart structure, values/rendered manifests, release lifecycle, namespace scope, dry-run và troubleshooting trước khi cài ứng dụng.

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

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

  • Cài Helm CLI và tìm hiểu cấu trúc Chart
  • Thực hành cài đặt 1 ứng dụng mẫu bằng Helm chart có sẵn
Instructor walkthrough

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

Scenario xuyên suốt

Helm giúp đóng gói Kubernetes nhưng một lệnh install có thể tạo nhiều resource, dùng value sai hoặc release vào nhầm namespace. Bài học không dừng ở “cài chart”: người học phải đọc chart, render trước, ghi release ownership và verify workload sau install/upgrade.

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ế
  • Chart gồm Chart.yaml, values.yaml, templates và metadata; values tạo input nhưng rendered manifest mới là object thực tế gửi tới API.
  • `helm template`/`helm install --dry-run` giúp inspect output nhưng không thay thế server validation hoặc kiểm tra runtime dependencies.
  • Release name/namespace/values/revision là lifecycle identity; upgrade/rollback phải giữ history, chart version/app version và thay đổi có chủ đích.
  • Chart có thể tạo RBAC, ServiceAccount, Secret, CRD, hooks hoặc PVC ngoài workload; inventory resource và ownership trước uninstall.

Helm workflow: inspect → render → install → verify

Chart là input package; values là configuration input; rendered manifest mới cho thấy Kubernetes objects. Trước install, đọc Chart.yaml/values/templates, lint/render, kiểm tra namespace, selectors, probes, RBAC, Secret, PVC, hooks và CRD.

Release lifecycle

Ghi release name/namespace/chart/app version/values/revision. Sau install kiểm tra Helm status Kubernetes runtime: rollout, Ready/Available, endpoints, events, logs. Upgrade tạo revision; bad values/image thì giữ evidence, rollback revision cụ thể rồi verify. Uninstall không tự động đồng nghĩa mọi cluster-scoped/PVC/CRD/data đã an toàn để xóa.

Bài tập

Chọn chart mẫu, render/diff/install, kiểm tra resource inventory, tạo bad values, upgrade và rollback. Viết cleanup plan cho release, PVC, CRD, RBAC và Secret; cleanup lab không ảnh hưởng resource dùng chung.

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
helm version
helm show chart CHART_REF
helm show values CHART_REF
helm lint ./CHART_DIR
helm template RELEASE CHART_REF -n ckad-day11 -f values.yaml
helm install RELEASE CHART_REF -n ckad-day11 --create-namespace -f values.yaml --wait --timeout=2m
helm status RELEASE -n ckad-day11
helm get manifest RELEASE -n ckad-day11
helm history RELEASE -n ckad-day11
Hands-on lab

Thực hành theo scenario

  1. Cài Helm CLI và xác nhận version; tạo namespace `ckad-day11`, context marker và chọn một chart mẫu có nguồn tin cậy. Ghi chart/version, release name, values override, expected resources và cleanup owner.
  2. Chạy `helm show chart/values`, `helm template` và `helm lint`; inspect rendered Deployment/Service/RBAC/Secret/PVC, namespace, selectors, probes và security defaults trước install.
  3. Cài với values file tối thiểu và `--wait`/timeout phù hợp trong lab; kiểm tra `helm status`, `helm get values`, `helm get manifest`, `kubectl get/describe/events`, rollout, Service endpoints và Pod Ready.
  4. Tạo bad values/image/resource hoặc namespace mismatch để đọc Helm output/events; sửa bằng values override, upgrade có revision, rồi rollback về revision trước và verify runtime state.
  5. Uninstall release sau inventory, kiểm tra CRD/PVC/cluster-scoped resource còn lại theo chart policy; xóa namespace lab chỉ khi không chứa shared resource, redact credentials khỏi values/logs.
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:

  • Chart structure/values/rendered manifest được giải thích.
  • Dry-run/lint trước install và resource inventory đầy đủ.
  • Release/status/values/manifest/rollout evidence có proof.
  • Bad values được diagnose, upgrade/rollback verified.
  • Uninstall/PVC/CRD/secret cleanup scoped và an toàn.
Transfer to exam / production

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

CKAD Helm task cần nhanh nhưng phải biết chart render ra gì. Dùng `helm template`/`helm get manifest`, kiểm tra namespace/release và sau install xem Pod/Service/rollout; đừng coi Helm status deployed là application healthy.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Helm báo release deployed nhưng ứng dụng chưa phục vụ traffic. Kiểm tra nào phù hợp nhất?

Kết thúc bài

Checklist trước khi sang Ngày 2