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

Ngày 9: ConfigMap & Secret

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

Cấu hình Pod bằng ConfigMap và Secret qua env/volume, hiểu update semantics, RBAC, redaction và rollout khi config thay đổi.

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

Cấu hình Pod bằng ConfigMap và Secret qua env/volume, hiểu update semantics, RBAC, redaction và rollout khi config thay đổi.

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

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

  • Thực hành tạo ConfigMap/Secret và mount vào Pod
  • Luyện cách inject qua environment variable
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 dùng biến môi trường cũ sau khi ConfigMap đổi; Secret bị in vào log và người học commit manifest credential vào repo. Bài học tách non-sensitive configuration khỏi secret, hiểu propagation và thiết kế rotation an toàn.

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ế
  • ConfigMap dành cho non-sensitive config; Secret là API object có access control nhưng base64 không phải encryption/secret management hoàn chỉnh.
  • Config có thể inject qua env hoặc volume; env thường cần restart để process nhận giá trị mới, volume update có propagation behavior cần test.
  • Secret/config cần RBAC scope, least privilege, redaction và không commit plaintext/base64 credential.
  • Immutable ConfigMap/Secret giảm accidental mutation nhưng cần versioned name/rollout strategy để đổi config.

Configuration contract

ConfigMap chứa non-sensitive config; Secret có access control nhưng base64 không tự là encryption. Chọn env hoặc volume theo update/restart semantics, permissions và app behavior. Không in Secret vào log, command output, screenshot hoặc repo.

Update và rollout

Đổi ConfigMap/Secret không luôn restart process. Dùng versioned resource/checksum annotation hoặc rollout có chủ đích; sau đó verify env/file và application health. Secret rotation cần revoke/replace/rollback plan.

Bài tập

Inject config/secret dummy bằng env/volume, đổi giá trị, quan sát propagation, restart/rollout và debug missing key. Ghi evidence đã redacted và cleanup namespace. Pass khi phân biệt được config bug, mount bug, permission bug và app reload behavior.

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 create configmap app-config --from-literal=MODE=lab -n cka-day9 --dry-run=client -o yaml
kubectl create secret generic app-secret --from-literal=TOKEN=redacted-lab -n cka-day9 --dry-run=client -o yaml
kubectl get configmap,secret -n cka-day9
kubectl describe pod POD_NAME -n cka-day9
kubectl rollout restart deployment/APP_NAME -n cka-day9
Hands-on lab

Thực hành theo scenario

  1. Tạo namespace `cka-day9`, ConfigMap non-sensitive và Secret dummy; inject một qua env, một qua volume trong Pod/Deployment.
  2. Inspect `describe`, env/file (không print secret thật), mount permissions và application logs; đổi ConfigMap/Secret rồi kiểm tra propagation/restart behavior.
  3. Cố ý dùng key sai/missing config, thu events/logs/status, sửa manifest và rollout; verify value không xuất hiện trong logs/output.
  4. Cleanup Deployment/ConfigMap/Secret namespace lab; kiểm tra shell history/manifests không chứa secret thật.
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:

  • ConfigMap/Secret boundary đúng.
  • Env/volume injection và update semantics được chứng minh.
  • Secret không bị commit/log/expose.
  • RBAC/rollout/config checksum có rationale.
  • Cleanup và redaction proof.
Transfer to exam / production

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

CKA phân biệt Secret encoding với encryption và phân biệt config volume update với process env. Khi config đổi, kiểm tra app nhận giá trị và rollout condition.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Ứng dụng vẫn dùng giá trị env cũ sau khi ConfigMap đổi. Kiểm tra/remediation nào phù hợp?

Kết thúc bài

Checklist trước khi sang Ngày 2