12 ngày ôn thi và chinh phục CKA
Hi everyone, mình là Hiệp, hiện đang là sinh viên năm 4.
Sau một thời gian học và thực hành Kubernetes, mình quyết định thử sức với CKA (Certified Kubernetes Administrator) và may mắn đã PASS.

Mình viết bài này để chia sẻ lại quá trình ôn luyện, trải nghiệm ngày thi và một vài tips mình thấy hữu ích. Hy vọng sẽ giúp được các bạn đang chuẩn bị CKA, đặc biệt là sinh viên và fresher DevOps.
Trước tiên, cảm ơn chương trình DevOps VietNam x Linux Foundation Education: đặc quyền kép đã hỗ trợ mình trong quá trình đăng ký với mức chi phí giảm rất sâu. Đây là một cơ hội rất tốt đối với một sinh viên như mình.
1. Thông tin về kỳ thi
CKA là kỳ thi thực hành, nên phần lớn thời gian bạn sẽ phải trực tiếp thao tác trên terminal.
- Thời gian: 120 phút
- Hình thức: thực hành 100% trên terminal
- Đề thi của mình: 16 câu, điểm số khác nhau tùy câu
- Điểm đạt: 66%
- Tài liệu: được sử dụng Kubernetes Documentation chính thức
2. Về background
Trước khi ôn CKA, mình đã học một khóa DevOps ở trung tâm và có khá nhiều thời gian thực hành Kubernetes.
Mình từng:
- Làm các lab Kubernetes
- Tự dựng cluster bằng
kubeadmtrên AWS - Triển khai application
- Làm việc với Pod, Deployment, Service, Storage, Networking…
- Tự xử lý một số lỗi trong cluster
Vì vậy mình đã có nền tảng nhất định, nhưng khi bắt đầu ôn CKA mình vẫn phải hệ thống lại kiến thức và luyện thao tác rất nhiều.
3. Vì sao mình thi CKA?
3.1. Củng cố kiến thức Kubernetes
Kubernetes có rất nhiều thành phần. Việc ôn CKA giúp mình hệ thống lại kiến thức thay vì chỉ biết từng phần rời rạc.
3.2. Kiểm tra khả năng thực hành
Mình muốn biết khả năng xử lý Kubernetes của bản thân thực tế đến đâu, đặc biệt là khi gặp lỗi và bị giới hạn thời gian.
3.3. Chuẩn bị cho công việc DevOps
Mình đang chuẩn bị tìm việc DevOps sau khi tốt nghiệp, nên CKA cũng là một mục tiêu để chứng minh nền tảng Kubernetes của mình.
Tuy nhiên, theo mình certificate không thể thay thế kinh nghiệm thực tế. Quan trọng nhất vẫn là bạn có thực sự hiểu Kubernetes và sử dụng được nó hay không.
4. Đăng ký thi
Mình đăng ký thi thông qua sự hỗ trợ của DevOps VietNam vào khoảng tháng 5.
Thời điểm đó mình nhận được mức ưu đãi khoảng 55% so với mức giá $445.
Đối với sinh viên thì đây là một mức hỗ trợ khá tốt, nên mình cũng muốn gửi lời cảm ơn đến DevOps VietNam. Nên khi nhận được trở thành tác giả mình đã đúc kết kinh nghiệm chia sẻ để mong giúp mọi người thêm 1 phần tham khảo.
5. Mình đã ôn CKA như thế nào?
5.1. Nắm kiến thức nền tảng
Trước tiên mình hệ thống lại các phần quan trọng:
- Pod
- Deployment
- Service
- ConfigMap / Secret
- Storage
- Scheduling
- Networking
- Troubleshooting
- Cluster Architecture
- Security
5.2. Thực hành trên cluster thật
Mình dành khá nhiều thời gian thực hành trên AWS với cluster dựng bằng kubeadm.
Một số lỗi mình chủ động tạo ra để luyện:
Pod PendingCrashLoopBackOffImagePullBackOffNode NotReady- Service không hoạt động
- Pod không được schedule
- Networking gặp vấn đề
Ngoài ra, mình cũng sử dụng AI để tạo checklist và các câu hỏi luyện tập theo từng topic của CKA.
Mình thường cố gắng tự giải quyết trước, chỉ xem gợi ý hoặc đáp án khi thực sự bí.
5.3. Luyện đề
Sau khi nắm được kiến thức nền tảng, mình dành khá nhiều thời gian để luyện đề thực hành.
CK-X là một nền tảng luyện thi Kubernetes, có các bài lab và đề mô phỏng cho CKA/CKAD. Điểm mình thấy khá hữu ích là giao diện làm bài trên CK-X cũng mô phỏng tương đối giống môi trường thi thật, nên khi vào thi mình không bị bỡ ngỡ về cách làm bài và thao tác.
Mình chủ yếu luyện CK-X CKA. Trong các bộ đề CKA trên CK-X có một số câu mang tính chất gần với CKAD, nên mình cũng tranh thủ luyện luôn những dạng bài này. Nhờ vậy mình vừa ôn CKA, vừa củng cố thêm khả năng thao tác với Kubernetes ở mức application.
Ngoài CK-X, mình còn luyện Killer.sh để làm quen với áp lực và môi trường gần với kỳ thi thật.
Với CK-X, mình thường cố gắng tự giải quyết bài trước, sau đó mới xem đáp án để biết mình sai ở đâu hoặc có cách làm nhanh hơn không.
Còn Killer.sh, lúc đầu mình thấy khá choáng vì đề khó. Nhưng càng luyện nhiều thì mình càng quen với cách đọc đề, tìm documentation và xử lý vấn đề.
Lưu ý: Mỗi lượt kích hoạt Killer.sh có hiệu lực trong 36 giờ và trong khoảng thời gian đó có thể làm lại các đề nhiều lần, đồng thời xem lại đáp án/lời giải. Vì vậy nếu có Killer.sh thì nên tận dụng tối đa thời gian kích hoạt, thay vì chỉ làm đề một lần.
Sau mỗi lần luyện, mình thường xem lại:
- Câu này mình sai ở đâu?
- Có cách nào làm nhanh hơn không?
- Có command nào cần nhớ không?
- Nếu gặp tình huống tương tự trong kỳ thi thì xử lý thế nào?
Mục tiêu không phải là nhớ đáp án của đề, mà là luyện thành phản xạ:
Đọc yêu cầu => tìm thông tin => thao tác => kiểm tra kết quả.
5.4. Thời gian ôn
Mình ôn khá gấp, khoảng 12 ngày.
Trong ngày thường mình dành tối thiểu khoảng 5 tiếng/ngày, còn cuối tuần thì gần như dành phần lớn thời gian cho việc ôn CKA.
Mình biết đây không phải lịch ôn phù hợp với tất cả mọi người, nhưng với mình thì việc học liên tục trong một khoảng thời gian ngắn giúp kiến thức không bị đứt quãng.
6. Một số tips khi thi
6.1. Tận dụng Kubernetes Documentation
Trong bài thi, đề bài đã cung cấp sẵn đường dẫn đến phần Kubernetes Documentation liên quan, nên khi cần tra cứu mình chỉ cần click trực tiếp vào link trong đề để mở documentation.
Vì vậy, thay vì cố nhớ tất cả syntax và YAML, mình chủ yếu tập trung vào quy trình:
Đọc kỹ yêu cầu => Click link documentation => Tìm đúng resource/config => Copy/chỉnh sửa => Thực hiện trên terminal => Kiểm tra kết quả.
Điều quan trọng là phải quen với việc đọc documentation nhanh và biết mình cần tìm thông tin gì.
Vì vậy trong quá trình ôn, mình cũng tập thói quen đọc đề và tra documentation thay vì cố học thuộc mọi thứ.
6.2. Làm câu dễ trước
Mình luôn ưu tiên:
Dễ => Trung bình => Khó
Nếu gặp một câu quá lâu chưa giải quyết được, mình bỏ qua và quay lại sau. Đừng để một câu chiếm quá nhiều thời gian rồi ảnh hưởng đến những câu còn lại.
6.3. Thành thạo các command cơ bản
Một số command mình sử dụng rất nhiều:
kubectl get
kubectl describe
kubectl logs
kubectl exec
kubectl apply
kubectl edit
kubectl delete
Ngoài ra nên quen với:
--dry-run=client -o yaml
-o wide
-o yaml
-o jsonpath
Trong môi trường thi của mình, alias k đã được cấu hình sẵn nên mình có thể sử dụng trực tiếp.
6.4. Thành thạo vi và :set paste
Trong quá trình thi, việc chỉnh sửa YAML nhanh rất quan trọng.
Mình thường dùng:
:set paste
Sau đó paste YAML vào vi. Khi xong thì:
:set nopaste
Cách này giúp hạn chế tình trạng YAML bị sai indentation khi paste.
6.5. Kiểm tra kỹ Node và Namespace
Đây là một lỗi rất dễ mắc khi làm bài. Trước khi thao tác nên kiểm tra:
- Đang ở namespace nào?
- Resource nằm ở namespace nào?
- Pod đang chạy trên node nào?
- Có cần thao tác trên node hay không?
- Có cần SSH vào node không?
Đọc kỹ yêu cầu trước khi chạy command sẽ giúp tránh rất nhiều lỗi không đáng có.
6.6. Quản lý thời gian
120 phút thực sự trôi rất nhanh.
Mình thường chia thời gian theo từng nhóm câu và luôn để lại thời gian cuối để quay lại những câu chưa hoàn thành.
Nếu bị mắc ở một câu:
Skip => làm câu khác => quay lại sau.
6.7. Bình tĩnh khi gặp câu khó
Có những câu nhìn qua tưởng đơn giản nhưng khi bắt tay vào làm lại phát sinh nhiều vấn đề.
Đừng hoảng. Hãy quay lại những thứ cơ bản:
Read requirement => Check resource => Describe => Check logs/events => Troubleshoot => Verify.
7. Trải nghiệm ngày thi
Mình thi trực tiếp tại một trung tâm.
Hôm đó trời mưa khá to, đường cũng tắc nên mình đến nơi khá sát giờ, khoảng 5 phút trước giờ thi. 😅
Phần check-in khá kỹ. Họ kiểm tra từ đầu đến chân, kiểm tra tay, các góc phòng, khu vực xung quanh, ngăn kéo và cả những thứ có thể ảnh hưởng đến môi trường thi.
Mình còn phải dùng điện thoại quay các góc phòng để gửi cho proctor kiểm tra. Sau đó đặt điện thoại úp xuống phía sau, ở vị trí camera máy tính vẫn có thể nhìn thấy.
Lúc bắt đầu mình khá run vì đây là kỳ thi chứng chỉ đầu tiên mà mình thi theo hình thức này. Nhưng sau khi bắt đầu làm bài thì bình tĩnh hơn.
Mình áp dụng đúng chiến thuật đã luyện:
Câu dễ làm trước => câu khó để sau => luôn kiểm tra lại kết quả.
Điều này giúp mình không bị mắc quá lâu ở một câu.
Lưu ý: quy trình check-in, giám sát và quy định phòng thi có thể thay đổi, nên mọi người vẫn nên đọc kỹ hướng dẫn chính thức tại thời điểm đăng ký thi.
8. Kết quả
Sau khi thi xong, mình chờ kết quả và khoảng 24 giờ sau thì nhận được email thông báo kết quả.
Sau gần 2 tuần ôn khá căng, cuối cùng mình cũng nhận được kết quả PASS CKA.
9. Lời kết
Hãy tự dựng một cluster, triển khai application, sau đó thử:
Deploy => Break => Troubleshoot => Fix => Repeat
Tự làm hỏng hệ thống rồi tự sửa sẽ giúp bạn nhớ lâu hơn rất nhiều so với chỉ đọc lý thuyết.
Chúc mọi người đang chuẩn bị CKA học tốt và đạt được mục tiêu của mình!
Cảm ơn DevOps VietNam đã hỗ trợ mình trong quá trình đăng ký và chuẩn bị cho kỳ thi.