kubectl explain & api-resources
Trong phòng thi, mở docs có thể chậm. Hai lệnh này giúp tra cứu ngay trong terminal.
1. kubectl api-resources – tìm tài nguyên
Dùng khi quên tên, tên viết tắt, apiVersion hoặc cách viết hoa của kind.
kubectl api-resources
# NAME SHORTNAMES APIVERSION NAMESPACED KIND
# pods po v1 true Pod
# services svc v1 true Service
# deployments deploy apps/v1 true Deployment
# replicasets rs apps/v1 true ReplicaSet
# namespaces ns v1 false Namespace
# nodes no v1 false Node
| Cột | Dùng cho |
|---|---|
| NAME | Gõ lệnh: kubectl get deployments |
| SHORTNAMES | Gõ tắt: deploy, svc, po, rs, ns |
| APIVERSION | Dòng apiVersion: trong YAML |
| NAMESPACED | true / false (Node, Namespace là false) |
| KIND | Dòng kind: trong YAML |
2. kubectl explain – tìm field
kubectl explain pods # field cấp cao: apiVersion, kind, metadata, spec, status
kubectl explain pods.spec # đi sâu bằng dấu chấm
kubectl explain pods.spec.containers.ports
kubectl explain pods --recursive # toàn bộ cây field
3. Đọc kiểu dữ liệu
| Ký hiệu | Viết trong YAML |
|---|---|
<string> / <integer> / <boolean> | Giá trị đơn |
<Object> | Khối con, thụt vào 2 dấu cách |
<[]Object> | Danh sách, mỗi phần tử bắt đầu bằng - |
<map[string]string> | Cặp key: value tự do |
-required- | Bắt buộc |
enum: | Chỉ nhận các giá trị liệt kê |
💡 Ví dụ
- Selector của Service có kiểu
map[string]string→ viết thẳngapp: myapp, không cómatchLabels. - Selector của Deployment có kiểu
LabelSelector(Object) → cómatchLabels/matchExpressions.
4. Lưu ý
- Từ kubectl v1.27,
explaindùng OpenAPI v3: hiện tên kiểu cụ thể và danh sáchenum. - Dùng được cả với CRD (ví dụ
kubectl explain nodepool.speccủa Karpenter).