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

Ngày 13: Quản lý phiên bản API

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

Quản lý API version Kubernetes bằng discovery, deprecation check, schema/server validation và migration manifest có diff, conversion và rollback evidence.

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

Quản lý API version Kubernetes bằng discovery, deprecation check, schema/server validation và migration manifest có diff, conversion và rollback evidence.

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

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

  • Học cách kiểm tra API deprecation bằng kubectl
  • Tìm hiểu cách migrate manifest sang API version mới
Instructor walkthrough

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

Scenario xuyên suốt

Manifest cũ có thể apply được hôm nay nhưng bị loại ở cluster mới, field bị bỏ qua hoặc semantics thay đổi. Bài này dạy kiểm tra API/resource support của cluster thật, chuyển manifest có chủ đích và verify object sau migration.

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ế
  • apiVersion là contract giữa client/manifest và apiserver; group/version/resource discovery phải kiểm tra bằng cluster target, không đoán từ blog cũ.
  • Deprecated API có thể còn served hoặc đã removed; warning khi apply không đồng nghĩa safe lâu dài, còn removed API có thể fail ngay.
  • `kubectl api-resources`, `api-versions`, `explain`, server dry-run và schema/validation giúp phát hiện group/kind/field mismatch trước mutation.
  • Migration cần hiểu storage/served version, defaulting, conversion và field semantics; đổi apiVersion bằng search/replace mù có thể làm mất cấu hình hoặc thay behavior.

API migration là compatibility work

Kiểm tra cluster target bằng discovery: group/version/resource/kind/fields được serve? kubectl explain và server dry-run bắt mismatch tốt hơn việc đoán. Deprecated warning là tín hiệu phải lập kế hoạch; removed API có thể fail.

Migrate có kiểm chứng

Copy file mới, diff, validate, canary/apply lab rồi kiểm tra resulting object/defaults/status/behavior. Chú ý field rename/removal, selector immutability, conversion/storage và data semantics. Giữ backup/export và rollback plan; không search/replace apiVersion mù hoặc force replace shared resource.

Bài tập

Audit manifest tuần 1–2, tạo compatibility matrix, migrate một manifest, cố ý sai group/version/field, đọc warning/error và verify runtime. Ghi cluster/version assumption và cleanup/rollback 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 version --output=yaml
kubectl api-versions
kubectl api-resources --api-group=apps
kubectl explain deployment.spec --api-version=apps/v1
kubectl apply --dry-run=server -f migrated.yaml
kubectl diff -f migrated.yaml
kubectl get deployment APP_NAME -n ckad-day13 -o yaml
kubectl get events -n ckad-day13 --sort-by=.lastTimestamp
Hands-on lab

Thực hành theo scenario

  1. Chọn một workload lab `ckad-day13`, ghi cluster version/discovery và API versions/resources được serve; tạo manifest có apiVersion hiện hành phù hợp cluster, không dùng deprecated example không kiểm chứng.
  2. Dùng `kubectl api-resources`, `api-versions`, `kubectl explain GROUP/VERSION.KIND` và server dry-run để kiểm tra fields; lưu warning/error output và xác định deprecated/removed behavior.
  3. Migrate một manifest trong branch/file mới, xem diff, validate schema/server, apply lab và kiểm tra resulting object apiVersion, defaults, labels, selectors, status/conditions và runtime behavior.
  4. Cố ý sai group/version/field hoặc dùng deprecated resource để đọc failure; tạo variant cluster/field và viết compatibility note. Nếu resource có conversion/storage concern, ghi boundary không tự migrate production data.
  5. Cleanup migrated workload/ConfigMap/Secret/namespace; giữ backup/export test artifact theo policy, redact credential và không chạy `replace --force` trên shared resource.
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:

  • Discovery/version/cluster target có evidence.
  • Deprecated/removed/schema/field behavior phân biệt đúng.
  • Migration có diff, dry-run và runtime post-check.
  • Conversion/storage/semantic risk được ghi.
  • Rollback/backup/cleanup không phá shared data.
Transfer to exam / production

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

CKAD API task cần dùng cluster discovery thay vì nhớ apiVersion từ trí nhớ. Kiểm tra `api-resources`/`explain`, server dry-run, diff và object status; warning/deprecation phải được xử lý, không bỏ qua.

Checkpoint · 3 phút

Kiểm tra nhanh

Câu hỏi: Manifest dùng API version deprecated nhưng hiện vẫn apply được. Hành động chất lượng nhất là gì?

Kết thúc bài

Checklist trước khi sang Ngày 2