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

Ngày 3: kubectl 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 3
hoàn thành3 / 30 bài
Bối cảnh bài học

Thao tác kubectl có kiểm soát qua get, describe, create, apply, edit, delete và namespace scope; luôn chứng minh expected 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

Thao tác kubectl có kiểm soát qua get, describe, create, apply, edit, delete và namespace scope; luôn chứng minh expected state.

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

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

  • Luyện các lệnh get, describe, create, delete, edit
  • Thực hành làm việc với namespace
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 lệnh `kubectl delete` chạy đúng cú pháp nhưng xóa nhầm resource trong namespace khác; một object create thành công nhưng selector/label sai. Bài học rèn thao tác CKA nhanh nhưng không bỏ qua target và evidence.

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ế
  • get đọc inventory/state; describe thêm events/conditions; logs/exec đi vào workload; mỗi command trả lời một câu hỏi khác nhau.
  • Imperative create nhanh để khởi tạo; YAML/apply phù hợp reproducibility/review; edit trực tiếp có risk drift và khó audit.
  • Namespace flag/context namespace xác định scope; cluster-scoped resources cần `--all-namespaces`/scope riêng và phải cực kỳ thận trọng.
  • Delete cần target/selector/grace/cascade rõ; wildcard/all là destructive và không dùng khi chưa inventory.

Command theo câu hỏi

get trả lời có gì/đang ở trạng thái nào; describe trả lời vì sao; logs/exec trả lời container đang làm gì; jsonpath/yaml trả lời field chính xác. Trước mutation dùng context/namespace/target, sau mutation kiểm tra expected state.

Imperative và declarative

Imperative command nhanh trong exam nhưng dễ mất reproducibility; YAML/apply dễ review và lặp lại. Dùng dry-run để tạo skeleton, thêm labels/namespace/resources rồi apply. edit tiện debug nhưng phải hiểu thay đổi và drift.

Bài tập

Tạo marker bằng hai cách, inspect labels/conditions, cố ý tạo selector mismatch, thu events rồi sửa. Delete một target cụ thể, verify residual state và cleanup namespace. Pass khi mọi command card ghi rõ context, namespace, expected output và rollback.

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 all -n cka-day3 --show-labels
kubectl describe pod POD_NAME -n cka-day3
kubectl get pod POD_NAME -n cka-day3 -o jsonpath="{.metadata.labels}{"\n"}"
kubectl create configmap marker --from-literal=owner=cka --namespace=cka-day3 --dry-run=client -o yaml
kubectl delete pod POD_NAME -n cka-day3 --wait=true
Hands-on lab

Thực hành theo scenario

  1. Tạo namespace `cka-day3` với owner label; preflight current context/namespace rồi tạo ConfigMap/Pod marker bằng imperative và YAML.
  2. Dùng get/describe/jsonpath/labels để kiểm tra name, namespace, labels, owner và status; cố ý tạo selector mismatch rồi ghi evidence.
  3. Thực hành edit/apply/delete có `--dry-run=client` khi phù hợp; trước delete list target cụ thể và ghi expected residual state.
  4. Cleanup bằng namespace/label scope, sau đó `kubectl get all -n cka-day3` và kiểm tra ConfigMap/Pod không còn; không dùng `kubectl delete ... --all` ở context không xác nhận.
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:

  • Chọn đúng command cho inventory/detail/log/exec/state.
  • Namespace/target explicit trước mutation.
  • Dry-run/YAML/reproducibility được dùng đúng.
  • Selector/label/status được verify.
  • Delete/cleanup scoped có residual-state proof.
Transfer to exam / production

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

CKA cần tốc độ nhưng hãy dùng `-n`, `--context`, `--show-labels`, `-o yaml/jsonpath` để tránh đọc nhầm. Khi delete, inventory target trước và kiểm tra object còn lại sau.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Muốn xóa đúng một Pod cùng tên có thể tồn tại ở nhiều namespace, thao tác nào an toàn nhất?

Kết thúc bài

Checklist trước khi sang Ngày 2