Danh sách bài viết trong series Học Kubernetes Từ Cơ Bản Đến Chứng Chỉ CKAD
- Lộ Trình Học Kubernetes Từ Cơ Bản Đến Chứng Chỉ CKAD
- Bài 1: Giới Thiệu Kubernetes Và Khái Niệm Cluster Cho CKAD
- Bài 2: Cài Đặt Minikube Và sử dụng kubectl Cơ Bản
- Bài 3: Quản Lý Pod Cơ Bản (Create, Delete, Describe)
- Bài 4: Sử Dụng ConfigMap Và Secret Trong YAML
- Bài 5: Quản Lý Environment Variables Và Command/Args
- Bài 6: Cấu Hình Deployment Và Replica Set
- Bài 7: Thiết Kế Pod Với Nhiều Container
- Bài 8: Sử Dụng Sidecar Và Init Container
- Bài 9: Chia Sẻ Tài Nguyên Giữa Các Container
- Bài 10: Giám Sát Log Và Events Với kubectl logs
- Bài 11: Debug Pod Với kubectl describe Và exec
- Bài 12: Tối Ưu Pod Với Resource Limits Và Requests
- Bài 13: Sử Dụng Liveness Và Readiness Probes
- Bài 14: Tối Ưu Hóa Pod Với HPA (Horizontal Pod Autoscaler)
- Bài 15: Cấu Hình Service (ClusterIP, NodePort)
- Bài 16: Sử Dụng Ingress Và Network Policy
- Bài 17: Quản Lý DNS Và Load Balancing Trong Kubernetes
- Bài 18: Sử Dụng Volume (emptyDir, hostPath)
- Bài 19: Cấu Hình Persistent Volume Và Persistent Volume Claim
- Bài 20: Tổng Kết, Mẹo Thi CKAD, Bài Tập Thực Hành Cuối
Nay dậy sớm ending series. Đến đây là cũng oải phết đấy nhưng nghĩ đến việc cũng giúp được khá nhiều anh em là cũng chốt sổ xong series 20 bài, ngày trước lên nội dung còn tưởng không làm được sợ bận, nhớ lúc bắt đầu từ tháng 9 mỗi lúc rảnh viết một tí vào docs local và đăng dần lên DevOps VietNam vì cơ bản là những kiến thức này làm nhiều rồi nên với mình cũng không khó nữa.
Sau 19 bài học chi tiết, từng mảng kiến thức, chúng ta đã đi qua toàn bộ hành trình Kubernetes thực tế. Bài viết này không chỉ tổng kết toàn bộ series mà còn tập trung vào mẹo thi, chiến lược làm bài, và một bài thực hành tổng hợp mô phỏng đề CKAD thật.
Trong kỳ thi CKAD, bạn sẽ có 15-20 câu hỏi hands-on trong 120 phút, yêu cầu tạo, sửa, debug YAML và resources trong cluster sẵn. Bài cuối này sẽ giúp bạn hệ thống lại toàn bộ domains, điểm trọng tâm, mẹo làm nhanh và chiến lược quản lý thời gian.
Liên Hệ Với Chứng Chỉ CKAD
Kỳ thi CKAD (Certified Kubernetes Application Developer) kiểm tra 7 domains chính với tỉ lệ như mình cũng đã có làm ở bài lộ trình đầu tiên:
- Core Concepts (15%)
- Configuration (20%)
- Multi-Container Pods (18%)
- Observability (10%)
- Pod Design (18%)
- Services & Networking (20%)
- State Persistence (10%)
Series này đã bao phủ 100% nội dung kỳ thi mỗi bài đều bám theo domain, cấu trúc YAML và mẹo làm nhanh. Trong kỳ thi, bạn có thể gặp các dạng câu hỏi như:
- “Tạo Pod có resource limit, probe, và configmap mount.”
- “Viết NetworkPolicy deny-all rồi allow traffic có label cụ thể.”
- “Tạo PVC bind với PV có hostPath
/mnt/data.” - “Debug Ingress rule 404 not found.”
Mẹo thi:
- Thi CKAD cho phép dùng tài liệu kubernetes.io => bookmark trước các phần: Pods, Deployments, Services, Volumes, NetworkPolicy.
- Luôn bắt đầu mỗi câu bằng `kubectl explain
–recursive | less` để hiểu cấu trúc. - Dùng lệnh
kubectl run --image=nginx --dry-run=client -o yaml > pod.yamlđể tạo nhanh file mẫu. - Nếu stuck >3 phút, flag câu hỏi, chuyển sang câu khác quay lại sau.
- Chuẩn bị YAML template riêng cho Pod, Deployment, Service, NetworkPolicy, PV/PVC.
Phần 1: Tổng Kết Series Những Gì Bạn Đã Học Và Cách Áp Dụng
Series gồm 20 bài, chia thành 5 giai đoạn tương ứng với 7 domains CKAD:
| Giai Đoạn | Bài | Domain CKAD | Kỹ Năng Chính | Ứng Dụng Thực Tế |
|---|---|---|---|---|
| Cơ bản | 1–3 | Core Concepts (15%) | Cluster, node, pod, kubectl cơ bản | Nền tảng triển khai |
| Cấu hình và quản lý | 4–6 | Configuration (20%) | ConfigMap, Secret, Deployment | Quản lý config, rollout |
| Multi-Container Pods | 7–9 | Multi-Container Pods (18%) | Sidecar, init container | Logging & monitoring |
| Quan sát và tối ưu | 10–14 | Observability, Pod Design | Logs, probes, resource limits, HPA | Giám sát, scale |
| Mạng và lưu trữ | 15–19 | Services & Networking, State Persistence | Service, Ingress, NetworkPolicy, PV/PVC | Routing và storage bền vững |
| Chuẩn bị thi | 20 | Toàn bộ | Tổng hợp và chiến lược thi | Ôn tập CKAD thực chiến |
Tổng kết: Nếu bạn đã thực hành hết 19 bài trước, bạn đã cover hơn 80% nội dung thi thật, phần còn lại là tốc độ và debug.
Phần 2: Mẹo Thi CKAD Chiến Lược Và Kinh Nghiệm Thực Chiến
2.1. Quản Lý Thời Gian
- Mỗi câu ~5–7 phút, không dừng quá lâu ở một câu.
- Luôn flag lại câu chưa xong, dành 10 phút cuối để kiểm tra.
- Ghi chú nhanh bằng
# TODOtrong YAML nếu tạm bỏ.
2.2. Môi Trường Thi
- Thi online, proctored (giám sát camera).
- Chuẩn bị đường truyền ổn định, tắt background apps.
- Dùng terminal một cửa sổ duy nhất, có sẵn
kubectl,vim,cat.
2.3. Lệnh Imperative & YAML
- Imperative: dùng khi cần nhanh
kubectl create deployment nginx --image=nginx --dry-run=client -o yaml > deploy.yaml - YAML: luôn clean, indent 2 spaces.
- Validate nhanh:
kubectl apply -f file.yaml --dry-run=server.
2.4. Alias Và Autocomplete
alias k=kubectl
complete -F __start_kubectl k
alias kgp='k get pod -o wide'
alias kdp='k describe pod'
2.5. Debug Nhanh
kubectl describe=> xem events (Pending, CrashLoopBackOff, không endpoints).kubectl logs=> container crash.- `kubectl exec -it
— sh` => test DNS, curl Service.
Phần 3: Bài Tập Thực Hành Cuối Tổng Hợp Nhiều Domain
Đề:
Trong namespace final-exam:
- Tạo Deployment
app-final(2 replicas, imagenginx:alpine, labelapp: final, requestscpu:100m, limitscpu:200m). - Tạo Service
app-svc(ClusterIP, port 80=>80). - Tạo Ingress
app-ingressroute/final=>app-svc:80. - Tạo NetworkPolicy
app-policyallow từ Pod labelrole: clienttrên port 80, deny all khác. - Tạo PVC
app-pvc1Gi RWX,storageClass: manual. Mount vào/data. - Verify bằng Pod test
curl /finaltừ Pod khác.
Yêu cầu nộp: Các file YAML: deploy.yaml, svc.yaml, ingress.yaml, netpol.yaml, pvc.yaml. (Cập nhật Deployment với volumeMounts).
Đáp Án Chi Tiết (Luyện Tập Trước Khi Xem)
deploy.yaml (Sau tạo PVC, update với volume):
apiVersion: apps/v1
kind: Deployment
metadata:
name: app-final
namespace: final-exam
spec:
replicas: 2
selector:
matchLabels:
app: final
template:
metadata:
labels:
app: final
spec:
containers:
- name: nginx
image: nginx:alpine
resources:
requests:
cpu: 100m
limits:
cpu: 200m
ports:
- containerPort: 80
volumeMounts:
- name: data-vol
mountPath: /data
volumes:
- name: data-vol
persistentVolumeClaim:
claimName: app-pvc
svc.yaml:
apiVersion: v1
kind: Service
metadata:
name: app-svc
namespace: final-exam
spec:
selector:
app: final
ports:
- port: 80
targetPort: 80
type: ClusterIP
ingress.yaml:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: app-ingress
namespace: final-exam
spec:
rules:
- http:
paths:
- path: /final
pathType: Prefix
backend:
service:
name: app-svc
port:
number: 80
netpol.yaml:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: app-policy
namespace: final-exam
spec:
podSelector:
matchLabels:
app: final
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
role: client
ports:
- protocol: TCP
port: 80
pvc.yaml (Giả sử PV manual tồn tại):
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: app-pvc
namespace: final-exam
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 1Gi
storageClassName: manual
Verify:
kubectl create ns final-exam
kubectl apply -f all.yaml # Gộp file
kubectl run test-client --image=busybox -l role=client --rm -it -- sh
wget -qO- http://app-svc:80 # OK nếu policy allow
Phân tích: Bài tập cover Pod Design (resources), Services & Networking (Service, Ingress, NetworkPolicy), State Persistence (PVC) giống đề thi.
Kết Luận
Bài này tổng kết toàn bộ hành trình CKAD, từ lý thuyết, thực hành, đến mẹo thi và chiến lược làm bài. Bạn giờ đã có thể tự tin bước vào kỳ thi thật, xử lý mọi câu hỏi trong 7 domains một cách có hệ thống và hiệu quả.
Chúc mừng bạn đã hoàn thành Series “Kubernetes Từ Cơ Bản Đến Chứng Chỉ CKAD”. Áp dụng kiến thức này không chỉ cho CKAD mà còn công việc DevOps thực tế. Hãy đăng ký thi sớm trên CNCF, luyện thêm mock. Chúc bạn hoàn thành bài thi CKAD với kết quả xuất sắc và áp dụng Kubernetes trong công việc DevOps thực tế.







