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

Ngày 1: Cài đặt môi trường luyện tập

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

Dựng môi trường CKAD có thể lặp lại: kubectl/context safety, namespace lab, alias hữu ích và sinh YAML bằng dry-run để thao tác nhanh nhưng có kiểm chứng.

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

Dựng môi trường CKAD có thể lặp lại: kubectl/context safety, namespace lab, alias hữu ích và sinh YAML bằng dry-run để thao tác nhanh nhưng có kiểm chứng.

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

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

  • Cài Minikube hoặc Kind, cài kubectl và alias
  • Làm quen viết YAML nhanh bằng kubectl --dry-run=client -o yaml
Instructor walkthrough

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

Scenario xuyên suốt

CKAD là bài thi thao tác nhanh trên workload namespaced. Người học thường gõ YAML sai indent, dùng nhầm context hoặc apply manifest mà không biết expected state. Bài đầu tạo workflow an toàn: sinh skeleton, chỉnh phần cần thiết, validate, observe và cleanup.

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ế
  • CKAD tập trung application workload namespaced; context/namespace sai có thể tạo hoặc sửa nhầm tài nguyên.
  • Kind/minikube/sandbox khác nhau về runtime, ingress, storage và networking; ghi assumption để không coi local result là production guarantee.
  • `kubectl run --dry-run=client -o yaml` và `kubectl create ... --dry-run=client -o yaml` giúp sinh skeleton nhưng không thay thế việc đọc API fields và kiểm tra output.
  • Alias/function giảm thời gian nhưng phải dễ đọc và không che context; dùng shell history/manifest file để tái hiện task.

CKAD workflow: generate → edit → validate → verify

Bắt đầu bằng context/namespace và assumptions. Dùng dry-run để sinh skeleton, sau đó đọc API shape, chỉnh image/labels/ports/resources/probes theo mục tiêu. apply chỉ là mutation; phải kiểm tra conditions, rollout, logs/events và Service endpoint.

Tốc độ có kiểm soát

Chuẩn bị alias ngắn nhưng không ẩn target. Lưu YAML theo task, dùng kubectl apply --dry-run=server khi có cluster, ghi lỗi validation và sửa có chủ đích. Tạo một variant để biết mình hiểu field nào, không học thuộc output một lần.

Bài tập

Dựng namespace lab, sinh Pod/Deployment YAML, validate, apply, verify Ready/Available, tạo lỗi rồi sửa và cleanup. Pass khi một người khác có thể chạy lại từ manifest + commands mà không cần context ngầm.

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 version --client
kubectl config current-context && kubectl config view --minify --output="jsonpath={..namespace}{"\n"}"
kubectl create namespace ckad-day1
kubectl run web --image=nginx:stable --restart=Never --dry-run=client -o yaml > pod.yaml
kubectl create deployment web --image=nginx:stable --dry-run=client -o yaml > deployment.yaml
kubectl apply --dry-run=server -f deployment.yaml
kubectl get pods,deployments -n ckad-day1 -o wide
Hands-on lab

Thực hành theo scenario

  1. Cài kubectl và Kind/minikube theo tài liệu phù hợp; ghi version/runtime. Tạo context/namespace `ckad-day1`, xác nhận current-context và namespace trước mutation; không dùng production credential.
  2. Sinh YAML cho Pod/Deployment/Service bằng `--dry-run=client -o yaml`, lưu từng file với label owner; đọc lại apiVersion/kind/metadata/spec và bỏ field thừa trước apply.
  3. Apply một workload nhỏ, kiểm tra `get`, `describe`, logs, conditions và events; chứng minh expected state bằng Pod Ready/Deployment Available hoặc Service endpoint phù hợp.
  4. Tạo một YAML lỗi có chủ đích về field/indent/image, chạy client validation hoặc server-side dry-run trên lab, ghi error và sửa; tạo variant đổi namespace/label để kiểm tra scope.
  5. Xóa namespace lab hoặc resources có owner, xác nhận cleanup; ghi alias đã dùng và limitation của local cluster. Không dùng `kubectl delete ... --all` ngoài namespace lab.
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:

  • kubectl/runtime/context/namespace có evidence.
  • Sinh được YAML hợp lệ và giải thích field chính.
  • Workload apply xong có Ready/Available/endpoint evidence.
  • Có validation/error-repair và variant test.
  • Cleanup namespace lab, không dùng credential/shared destructive command.
Transfer to exam / production

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

Trong CKAD, dùng dry-run để lấy skeleton rồi sửa nhanh trong file; luôn xác nhận namespace/context và verify phase/conditions sau apply. Alias chỉ đáng dùng nếu vẫn đọc được command khi debug.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Sau khi sinh YAML bằng `kubectl run --dry-run=client`, bước nào cần làm trước khi apply?

Kết thúc bài

Checklist trước khi sang Ngày 2