Lộ trình
Cloud Native Computing FoundationAssociateTuần 1: Nền tảngBài 7 / 30

Ngày 7: Ôn tập tuần 1

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

Ôn tập tuần 1 bằng 10 timed application-design labs: dry-run, image, multi-container, init, sidecar/adapter và volume; chấm bằng manifest correctness, runtime evidence và 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

Ôn tập tuần 1 bằng 10 timed application-design labs: dry-run, image, multi-container, init, sidecar/adapter và volume; chấm bằng manifest correctness, runtime evidence và safety.

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

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

  • Luyện lại toàn bộ Application Design and Build
  • Làm 10 câu trắc nghiệm tự kiểm tra
Instructor walkthrough

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

Scenario xuyên suốt

Người học nhớ từng object nhưng chưa nối được từ yêu cầu ứng dụng đến Pod design, image, container contract, volume lifecycle và failure diagnosis. Bài ôn tập kiểm tra khả năng chọn primitive đúng, viết manifest nhanh, sửa lỗi và giải thích trade-off.

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ế
  • Application design bắt đầu từ contract: process, image, ports, config/secret, storage lifecycle, startup dependency, readiness và failure ownership.
  • Pod primitives có lifecycle khác nhau: init one-shot, app/sidecar long-running, emptyDir ephemeral, ConfigMap/Secret projected; chọn sai primitive tạo lỗi vận hành.
  • Manifest quality gồm scope/labels, minimal fields, validation, security/permissions, resources và expected runtime state; apply success chưa đủ.
  • Debug phải tách image pull, process crash, init block, sidecar contract, mount/key/permission và data-loss symptom bằng events/status/logs.

Application design review

Bắt đầu từ app contract rồi chọn primitive: init để prepare/wait một lần mỗi Pod, sidecar/ambassador/adapter cho contract đồng hành, emptyDir cho scratch, ConfigMap/Secret cho projection, PV/PVC cho persistence. Ghi lifecycle và failure owner trước YAML.

Scorecard 10 labs

Mỗi lab chấm manifest, validation, runtime evidence, diagnosis/remediation, safety/cleanup và explanation. Không coi apply/Running là pass nếu chưa chứng minh Ready, logs, file/request path hoặc expected data. Lỗi image, init, sidecar, volume và permission phải có evidence khác nhau.

Bài tập

Làm 10 scenario trong timebox, sửa ít nhất ba lỗi và replay variant. Kết thúc bằng gap list có domain, root cause, command/knowledge thiếu, owner, retest criterion; cleanup namespace và redact Secret.

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 config current-context
kubectl get pods,deployments,svc,configmap,secret -n ckad-day7 -o wide
kubectl get events -n ckad-day7 --sort-by=.lastTimestamp
kubectl describe pod POD_NAME -n ckad-day7
kubectl logs POD_NAME -n ckad-day7 -c CONTAINER_NAME --tail=100
kubectl get pod POD_NAME -n ckad-day7 -o jsonpath="{.status.initContainerStatuses[*]} {.status.containerStatuses[*]} {.spec.volumes}{"\n"}"
Hands-on lab

Thực hành theo scenario

  1. Tạo namespace `ckad-day7` và worksheet. Thực hiện 10 scenario: (1) sinh YAML Deployment, (2) image tag/policy, (3) two-container emptyDir handoff, (4) init wait dependency, (5) Ambassador request path, (6) Adapter output, (7) ConfigMap file, (8) Secret file permission, (9) mountPath/key error, (10) chọn volume cho ephemeral/config/credential/persistent case.
  2. Đặt timebox cho từng scenario; trước mutation ghi target/context, expected state và cleanup. Dùng dry-run/validation rồi apply lab, thu get/describe/events/logs/conditions/exec phù hợp.
  3. Cố ý tạo ít nhất ba lỗi và sửa theo evidence; tạo variant đổi namespace/label/image/port/key/permission/lifecycle để kiểm tra transfer.
  4. Chấm mỗi scenario: manifest 1, runtime evidence 1, diagnosis/remediation 1, safety/cleanup 1, explanation/trade-off 1. Ghi hint/retry/time và phân loại gap.
  5. Pass khi 8/10 không hint, không critical safety mistake, 10 worksheet có expected state/cleanup và variant replay; cleanup namespace/Secrets/ConfigMaps/Pod artifacts.
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:

  • Đủ 10 scenario bao phủ tuần 1.
  • Manifest validation và runtime evidence đủ từng bài.
  • Phân biệt đúng primitive/lifecycle/failure domain.
  • Đạt score/time gate và variant không lặp lỗi.
  • Gap list, cleanup và secret safety có proof.
Transfer to exam / production

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

CKAD tuần 1 không chỉ hỏi viết YAML; hãy đọc yêu cầu để chọn Pod/Init/sidecar/volume đúng, rồi verify trạng thái thật. Nếu lỗi, giữ manifest/output và sửa tối thiểu thay vì tạo lại mù.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Bài ôn tập tuần 1 đạt chuẩn khi nào?

Kết thúc bài

Checklist trước khi sang Ngày 2