Lộ trình
Cloud Native Computing FoundationAssociateTuần 3: Kiến trúc & bảo mậtBài 15 / 30

Ngày 15: Service 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
ckangày 15
hoàn thành15 / 30 bài
Bối cảnh bài học

Bảo trì cluster Kubernetes an toàn bằng cordon/drain/uncordon, DaemonSet, PDB, eviction, disruption planning và expected node state.

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

Bảo trì cluster Kubernetes an toàn bằng cordon/drain/uncordon, DaemonSet, PDB, eviction, disruption planning và expected node state.

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

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

  • Học ClusterIP, NodePort, LoadBalancer
  • Thực hành expose Deployment bằng từng loại Service
Instructor walkthrough

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

Scenario xuyên suốt

Một node cần bảo trì nhưng drain làm gián đoạn service vì thiếu replicas/PDB; DaemonSet bị xóa sai và workload local data bị cưỡng chế evict. Bài học biến maintenance thành quy trình có capacity, disruption và rollback.

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ế
  • cordon ngăn Pod mới schedule; drain evict workload theo policy; uncordon cho phép schedule lại; không lẫn với delete node.
  • PDB giới hạn voluntary disruption nhưng không bảo vệ mọi failure; cần replicas, readiness và topology phù hợp.
  • DaemonSet thường chạy agent trên node và có eviction/skip semantics riêng; static/local data cần kiểm tra trước drain.
  • Drain flags như ignore-daemonsets/delete-emptydir-data/force có blast radius; dùng only after inventory/approval.

Maintenance là disruption exercise

Trước drain: inventory workload/DaemonSet/local data, replicas, PDB, endpoints và capacity. Cordon ngăn Pod mới; drain evict voluntary workload; uncordon phục hồi scheduling. PDB chỉ giới hạn voluntary disruption, không thay HA/replicas.

Safety và rollback

--force/xóa emptyDir có thể mất dữ liệu hoặc che cấu hình sai. Nếu drain bị block, đọc PDB/events/owner thay vì ép. Sau maintenance kiểm tra node Ready/Schedulable, workload Available, endpoints và uncordon state.

Bài tập

Tạo lab workload/PDB/DaemonSet, cordon-drain-uncordon node, ghi expected state và disruption evidence. Xử lý một block do PDB hoặc local data bằng remediation an toàn. Cleanup chỉ lab.

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 nodes -o wide
kubectl cordon NODE_NAME
kubectl drain NODE_NAME --ignore-daemonsets --delete-emptydir-data --timeout=90s
kubectl get pdb -A -o wide
kubectl uncordon NODE_NAME
Hands-on lab

Thực hành theo scenario

  1. Tạo workload lab nhiều replicas + PDB và DaemonSet marker trên namespace/cluster lab; ghi node labels, replicas, endpoints và PDB allowed disruptions.
  2. Cordon một node lab, theo dõi scheduling/availability, drain với flags tối thiểu và kiểm tra events; không drain production.
  3. Xử lý Pod bị giữ bởi PDB/local data bằng diagnosis trước khi force; verify service remains healthy and workload rescheduled.
  4. Uncordon, verify node/workload/PDB/DaemonSet state, rồi cleanup lab resources và restore labels/taints nếu có.
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:

  • Cordon/drain/uncordon semantics đúng.
  • PDB/replicas/readiness disruption có evidence.
  • DaemonSet/local data được phân loại.
  • Không dùng force/destructive flags mù.
  • Node/workload sau maintenance được khôi phục và cleanup proof.
Transfer to exam / production

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

CKA thường yêu cầu drain node nhưng PDB/DaemonSet/local data làm task không đơn giản. Đọc output và flags, bảo đảm node uncordon hoặc trạng thái mong muốn trước kết thúc.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Drain node bị block vì PDB không cho phép disruption. Hành động phù hợp nhất là gì?

Kết thúc bài

Checklist trước khi sang Ngày 2