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

Ngày 12: DaemonSet & StaticPod

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

Vận hành storage Kubernetes qua emptyDir, hostPath, PV, PVC và StorageClass; hiểu binding, access mode, reclaim policy và data safety.

đọ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 storage Kubernetes qua emptyDir, hostPath, PV, PVC và StorageClass; hiểu binding, access mode, reclaim policy và data safety.

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

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

  • Tìm hiểu use case của DaemonSet
  • Thực hành tạo Static Pod qua manifest path
Instructor walkthrough

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

Scenario xuyên suốt

Pod restart mất dữ liệu vì dùng emptyDir, PVC Pending vì StorageClass không có provisioner và người học xóa PVC làm mất volume do reclaim policy. Bài học nối workload data requirement với storage lifecycle.

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ế
  • emptyDir sống theo Pod; hostPath gắn node và có portability/security risk; persistent storage cần PV/PVC/StorageClass.
  • PVC là request namespaced; PV là cluster resource; binding cần capacity/access mode/storage class/provisioner phù hợp.
  • ReadWriteOnce/ReadOnlyMany/ReadWriteMany semantics phụ thuộc backend; access mode không tự đảm bảo application consistency.
  • Dynamic provisioning tạo PV từ StorageClass; reclaim policy Retain/Delete ảnh hưởng data sau PVC deletion.

Data lifecycle trước volume type

emptyDir phù hợp scratch/cache, không survive Pod; hostPath phụ thuộc node; PVC request storage còn PV/StorageClass/provisioner thực hiện binding/provisioning. Ghi durability, access mode, topology, permissions và reclaim policy trước khi chọn.

Debug và cleanup

PVC Pending thường do class/capacity/access/provisioner/topology; mount failure có thể do permissions/device/driver. Sau delete PVC, Retain và Delete cho kết quả khác nhau; phải đọc policy trước destructive action và có backup/restore expectation.

Bài tập

Tạo PVC lab, mount vào Pod, ghi/đọc marker, cố ý mismatch rồi debug bằng describe/events. Cleanup theo policy và ghi PV/data state sau mỗi bước. Pass khi không nhầm “Bound” với “backup”.

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 get storageclass
kubectl get pv,pvc -A -o wide
kubectl describe pvc CLAIM_NAME -n cka-day12
kubectl get events -n cka-day12 --sort-by=.lastTimestamp
kubectl get pod POD_NAME -n cka-day12 -o jsonpath="{.spec.volumes}{"\n"}"
Hands-on lab

Thực hành theo scenario

  1. Lập decision table emptyDir/hostPath/PV/PVC cho cache, node-local, database và shared files; ghi durability, scope, security, access mode và cleanup.
  2. Inspect StorageClass/PV/PVC/Pod mounts; tạo PVC lab nhỏ nếu provisioner hỗ trợ, theo dõi Pending→Bound và mount vào Pod.
  3. Cố ý mismatch StorageClass/access mode/size để đọc events, sửa manifest và verify Bound/mount/read-write; không format/xóa production volume.
  4. Cleanup Pod/PVC theo policy, kiểm tra PV reclaim state, snapshot/data retention và restore evidence trước khi xóa backend.
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:

  • Volume/PV/PVC/StorageClass lifecycle phân biệt đúng.
  • PVC Pending/Bound/mount failure có evidence.
  • Access mode/reclaim/topology trade-off rõ.
  • Data loss risk và backup/restore được xét.
  • Cleanup theo reclaim policy, không xóa nhầm data.
Transfer to exam / production

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

CKA hay hỏi PVC Pending, StorageClass provisioner, access mode và reclaim policy. `Bound` chưa chứng minh app ghi đúng; phải kiểm tra mount, permissions và data path.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: PVC ở Pending vì StorageClass không có provisioner phù hợp. Kiểm tra/remediation nào đúng?

Kết thúc bài

Checklist trước khi sang Ngày 2