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

Ngày 18: CoreDNS & Service Discovery

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

Thiết kế logging/monitoring cho Kubernetes bằng logs, events, metrics, conditions và alert signals; tránh nhầm health signal và log cost.

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

Thiết kế logging/monitoring cho Kubernetes bằng logs, events, metrics, conditions và alert signals; tránh nhầm health signal và log cost.

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

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

  • Tìm hiểu cách Pod phân giải tên Service qua CoreDNS
  • Thực hành debug lỗi DNS trong cluster
Instructor walkthrough

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

Scenario xuyên suốt

Team thấy Pod Running nhưng user vẫn 5xx, metrics-server không có dữ liệu và events đã trôi; dashboard nhiều nhưng không có alert/runbook. Bài học xây observability từ symptom đến evidence và retention.

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ế
  • kubectl logs/container logs, events, resource metrics, kube-state signals và application metrics trả lời câu hỏi khác nhau.
  • Pod Running/Ready, node condition, restart count, request latency/error và resource saturation cần map với user impact.
  • metrics-server phục vụ resource usage commands nhưng không phải full monitoring; platform/Prometheus/log backend có lifecycle riêng.
  • Event TTL/retention, log volume/cardinality và sensitive payload ảnh hưởng điều tra, cost và privacy.

Signal theo câu hỏi

Events kể “điều gì vừa xảy ra”; logs kể container/app output; conditions nói state; metrics nói usage/trend; application metrics nói user impact. Map từng signal với symptom, threshold, owner và runbook. Running không đồng nghĩa Ready/healthy.

Local lab caveat

kubectl top cần metrics-server và có thể thiếu; không biến lỗi tool thành lỗi workload. Ghi backend/retention/cardinality và timestamp khi thu evidence. Không log secret/PII chỉ để debug.

Bài tập

Tạo signal matrix và drill probe/config/resource failure, correlate events/logs/metrics, viết alert/runbook và cleanup. Pass khi người khác biết signal nào trả lời câu hỏi nào và recovery có evidence.

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 pods -A -o wide
kubectl get events -A --sort-by=.lastTimestamp
kubectl top nodes
kubectl top pods -A
kubectl logs POD_NAME -n cka-day18 --all-containers --tail=100
Hands-on lab

Thực hành theo scenario

  1. Tạo workload lab có readiness/error signal; thu `get`, conditions, restart count, logs, events và metrics nếu metrics-server có.
  2. Lập signal matrix: node health, Pod availability, restart, CPU/memory, Service endpoints, request error/latency, storage và policy deny.
  3. Cố ý gây probe failure/config error/resource pressure trong lab, ghi timeline và correlate logs/events/metrics trước remediation.
  4. Cleanup workload/alert/test logs theo retention; ghi caveat nếu local cluster thiếu metrics backend, không giả định `kubectl top` luôn 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:

  • Logs/events/metrics/conditions phân biệt đúng.
  • Signal map nối state với user impact.
  • Metrics backend/retention/cardinality caveat rõ.
  • Incident evidence có timestamp/runbook.
  • Cleanup và sensitive log safety được kiểm tra.
Transfer to exam / production

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

CKA troubleshooting cần events/conditions/logs thực tế; `kubectl top` phụ thuộc metrics-server. Đừng gọi Pod Running là healthy nếu Ready/endpoint/request signal fail.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Pod ở Running nhưng Service trả 503. Evidence nào nên kiểm tra trước?

Kết thúc bài

Checklist trước khi sang Ngày 2