👋👋 Hello hello, xin chào tất cả anh em. Anh em nào đã vào đây thì comment mình chào nhau một cái cho đông vui nhé!
Hòa chung không khí tưng bừng của Viblo May Fest 2024, mình chợt nhớ ra là sắp hết event mà mình mới chỉ publish được một bài viết. Do vậy nên mình quyết định publish thêm một bài nữa, cũng về Kubernetes để hoàn thành thử thách Viblo May Fest 2024.
Trong bài viết này, mình sẽ kể cho mọi người nghe một câu chuyện về hành trình thi chứng chỉ CKA trong năm 2024 của mình. Đây là một trong số 3 chứng chỉ phổ biến về Kubernetes bao gồm: CKAD, CKA và CKS.
Trong đó, chứng chỉ CKA có tên đầy đủ là Certified Kubernetes Administrator.
Về CKA Exam
- Đối tượng: Chứng chỉ này hướng đến đối tượng quản trị viên, người cần có kinh nghiệm nhất định trong việc triển khai và vận hành Kubernetes cluster.
- Hình thức thi: Thi trực tuyến.
- Nội dung thi: 100% các câu hỏi trong bài thi là thực hành.
- Thí sinh được cấp máy ảo đã kết nối sẵn tới một số K8s cluster và cần hoàn thành task theo đề bài.
- Exam Simulator: Ubuntu + Kubernetes v1.30 (đều dùng kubeadm).
- Thời lượng: 120 phút (2 giờ).
- Số lượng câu hỏi: 17 câu.
- Máy sẽ chấm điểm mỗi câu theo từng ý nhỏ nên thí sinh làm được đúng ý nào sẽ cộng điểm ý đó.
- Thi sinh có một lần thi lại (retake) miễn phí.
- Số điểm cần đạt để pass thi CKA là 66/100 điểm.
- Nếu pass sẽ nhận được chứng chỉ có giá trị trong 2 năm (trước 01/04/2024 là 3 năm). Lúc mình thi thì vẫn được cấp 3 năm.
Giai đoạn 1: Săn sale
Vì chi phí thi CKA cũng không hề nhỏ nên mình đợi săn sale rồi mới mua. Mình mua voucher thi CKA trên Linux Foundation vào tháng 12/2023 và áp được mã giảm giá 50% nên chỉ mất $395 $198 (~5tr), thanh toán được bằng thẻ tín dụng VISA.
Thường mình thấy vào dịp giữa năm sẽ có sale 30 - 40% và cuối năm sẽ thì thường mới có giảm giá lên đến 50%. Do đó nên nếu các bạn có dự định thi nhưng không cấp bách thì cứ thong thả chờ có sale lớn thì hãy mua voucher nhé.
Nếu bạn cần xuất hóa đơn sau khi thanh toán thì bạn nhấn vào mục Purchase history trên thanh header. Rồi nhập thông tin thanh toán như tên công ty, địa chỉ, email... ở biểu mẫu bên phải và lưu lại. Sau khi lưu mới nhấn Download PDF để tải hóa đơn mới về.
Giai đoạn 2: Ôn thi
Do mình đã có kinh nghiệm làm việc với Kubernetes và cũng có kinh nghiệm thi trước đó nên mình cũng khá tự tin ôn thi. Cách thức ôn thi của mình đó là làm một số bài lab CKA có sẵn trên killercoda.com. Vừa làm vừa đọc thêm docs liên quan của Kubernetes. Đối với các bạn chưa thi CKAD, CKA bao giờ hoặc không tự tin thì mình khuyến nghị các bạn nến mua một khóa ôn thi trực tuyến để hệ thống hóa lại kiến thức nhé. Nhân tiện, bạn nào muốn học về Kubernetes và ôn thi CKA, CKAD thì inbox mình nhé. Zalo: Kim Nguyen.
Sau khi dành mấy tối làm labs trên, mình thực hiện thi thử trên Killer.sh vào dịp cuối tuần. Khi mua voucher thi thì các bạn sẽ nhận được 2 lượt thử (session). Mỗi session sẽ mở trong 36h nên bạn có thể truy cập simulator bất kỳ lúc nào trong 36h. Bỏi vậy nên mình thi thử vào tối thứ 6 để tận dụng hết 36 giờ đó. Số lượng câu hỏi trong Killer simulator là 20-25 câu hỏi. Nhiều hơn so với khi đi thi thật. Các bạn làm hết được 25 câu trong đề thi thử thì chắc chắn sẽ pass exam. Cả 2 session đều dùng chung đề, do vậy trường hợp 36h của session 1 không đủ bạn có thể mở tiếp session 2 để làm lại.
Giai đoạn 3: Chuẩn bị thi
Trước khi thực hiện book lịch, mình cũng chuẩn bị công tác thu xếp phòng thi. Phòng thi yêu cầu phải là một phòng trống, các bức tường không được có tủ hoặc giá sách, camera, .etc. Tốt nhất phòng thi chỉ nên có một bộ PC hoặc 1 laptop. Nên sử dụng màn hình rời từ 23inch trở nên để thuận tiện khi làm bài thi. Ngoài ra cũng sẽ cần chuẩn bị một webcam rời để quay không gian thi khi thực hiện check in. Đặc biệt là địa điểm thi phải có một kết nối internet mạnh mẽ.
Sau mấy ngày cuối tuần miệt mài thi thử thì mình quyết định book lịch thi bằng cách đăng nhập vào trang training.linuxfoundation.com sau đó chọn kỳ thi CKA. Làm theo hướng dẫn là sẽ book được lịch thi. Lưu ý chỉ chọn được ngày thi trước 1 ngày, ví dụ hôm nay là ngày 30/05 thì chỉ book được các ngày từ 31/05, 01/06... trở đi.
Tạo một check list cần nhớ để kiểm tra khi vào phòng thi bao gồm:
- Kiểm tra thiết bị, PC, chuột, bàn phím còn hoạt động tốt.
- Kiểm tra webcam
- Kiểm tra CCCD
- Liệt kê lại các command alias cần thiết để nhớ và dùng khi thi
Dưới đây là danh sách command alias và biến môi trường mình liệt kê sẵn để thêm vào ~/.bashrc
trong quá trình thi. Nó giúp mình tiết kiệm rất nhiều thời gian khi gõ lệnh:
# set output YAML, dùng khi generate template:
export do='--dry-run=client -oyaml'
# dùng khi xóa một object và không phải đợi:
export now='--grace-period=0 --force'
export ow='-owide' # command alias:
alias kr='kubectl run $do --image'
alias ka='kubectl apply -f'
alias kn='kubectl config set-context --current --namespace'
alias kxp='kubectl explain --recursive' alias kgp='kubectl get pod'
alias kgd='kubectl get deploy'
alias kgn='kubectl get node'
alias kge='kubectl get event'
Ngoài ra, khi làm bài thi thử và cả khi làm bài thi thật thì các bạn nên tận dụng tính năng multiple tabs của terminal nhé. Trong khi thi mình mở 3 Terminal Tab:
- 1 tab để soạn thảo các file YAML
- 1 tab để output ra file theo yêu cầu
- 1 tab để ssh vào node cần thiết
Nếu các bạn quen dùng Tmux như mình thì có thể dùng Tmux luôn. Dùng Tmux thì trong cùng một Terminal có thể chia nhỏ thành nhiều pane nhưng sẽ hơi bất tiện khi không có scrollbar và copy nếu bạn không quen.
Giai đoạn 4: Check in và thi thôi ![😃](https://twemoji.maxcdn.com/v/14.0.2/72x72/1f603.png)
Chẳng là mình book lịch thi vào một ngày đẹp trời, thời điểm thi là lúc 14h nên cần có mặt trước 13h30 vì đó là lúc hệ thống mở để giám thị làm thủ tục check-in cho mình.
13h00: mình có mặt tại phòng thi và bắt đầu mở máy, công tác kiểm tra vài thứ bắt đầu. Đầu tiên là bàn phím (mình dùng chiếc bàn phím cơ quen thuộc). Sau đó là chuột (cũng dùng chiếc chuột thân quen). Kiểm tra tiếp Webcam (bị thiếu nên lại chạy ra ngoài mượn webcam). Thoát bỏ mấy cái app như zalo, onedrive xong rồi đi vệ sinh cá nhân. Khi trở lại phòng thi, mình để nốt cái CCCD sẵn lên trên bàn.
13h30: Hệ thống check in chính thức mở để quét khả năng tương thích của máy. Sau đó, mình thực hiện tải và cài PSI Secure Browser - công cụ dùng để thi, quá trình này mất khoảng 10 phút gì đó. Công đoạn tiền check in hoàn tất, mình đợi thêm vài phút thì thấy một bác proctor vào check in cho mình. Giao tiếp thông qua chat bằng tiếng anh để tránh việc thí sinh gian lận khi đeo tai nghe. Việc đầu tiên là chụp ảnh CCCD để xác minh danh tính. Lần trước mình thi thì check-in khá suôn sẻ, nhưng lần này thì khác.
13h40: Mình được yêu cầu giơ lại ảnh CCCD để bác ý chụp lại, bảo mày chụp ảnh mờ này nọ. Bắt đầu mình thấy điềm rồi. Giơ mỏi tay không thấy bác ý bảo gì. Bỏ xuống thì lại thấy bác ấy bảo giơ lại cho khít CCCD vào khung hình. Tiếp tục lại vậy, một tay giơ để cam lấy nét, tay còn lại gõ hỏi xem bác ý vừa lòng chưa 😅 Lần cuối cùng đó là được yêu cầu giơ lấy nét và quay cận vào chỗ ngày hết hạn. Vậy là xong bước khai báo. Tiếp theo, mình được yêu cầu pan webcam 4 bức tường. Quay đi quay lại ko biết mấy lần.
13h50: Bác giám thị phán một câu xanh rờn: Tao thấy trên tường mày có CCTV... Mình nhìn thì đúng là có một cam treo trên tường thật. Ngay đầu message, mình đã thấy từ khóa appologize là thôi xác định. Kết câu y rằng bị bác ý yêu cầu đổi phòng thi. Cay thật, mình bảo cam hỏng, và cũng đã ngắt điện rồi, cũng giơ cái phích cắm điện lên trước cam và giải thích nhưng bác proctor vẫn không đồng ý release exam. Lúc đấy bản thân mình cũng hơi rối một chút.
Mình quay hướng cam CCTV ra nơi khác rồi phân trần và quay webcam về hướng đó cho bác giám thị xem lại. Thấy bác im im những tưởng êm êm, ai dè vẫn bị bắt đổi phòng. Lúc đấy mà đổi phòng thì xong phim vì trước đã thi một lần tại chính phòng đó không gặp vấn đề gì nên mình không có phòng backup. Bác giám thị bảo bảo trước đấy mày thì là lúc đấy, giờ luật nó khác rồi. Mình vẫn cố chấp rep lại Please...
Tới 14h05: Thủ tục check-in vẫn chưa được giải quyết xong. Mình bảo lấy áo che cam đi được không. Proctor vẫn nói KHÔNG. Túng quá hóa liều, mình bảo proctor đợi mình 1 phút, à thực ra là cũng 5 phút. Mìnnh ra ngoài tìm chiếc tua vít. Tìm một hồi mà không thấy tua vít đâu!
Lúc đấy thật sự nghĩ mình cũng tội mà thôi thì cũng kệ. Mình lấy chìa khóa ra để tháo vít của CCTV. Vừa khéo loay hoay lại rút được quả CCTV ra khỏi tường. Tháo xong quả CCTV mình cẩn thận giơ CCTV lên webcam, cũng quay lại luôn cảnh mang nó ra ngoài. Hú hồn may quá bác proctor vẫn đang đợi.
14h10: Mình bị trễ ca thi 10 phút, những tưởng được thi luôn nhưng hóa ra lại check in tiếp, quay gầm bàn, mặt bàn, điện thoại, ví tiền. Tất cả những đồ đó mình được yêu cầu để cách xa 6 fit, sau đó bác ý đổi ý lại yêu cầu để ra góc tường phía sau chỗ ngồi. Tiếp tục là dí cam sát lỗ tai như lần thi trước của mình. Mất thêm 10 phút nữa exam mới được release. Như vậy bị trễ mất khoảng 20 phút so với dự kiến.
14h20: Exam được release. Mình kiểm tra thời lượng của ca thi thì may quá mình vẫn được cho đủ thời lượng 120 phút. Bắt đầu bài thi là câu đầu với yêu cầu upgrade control plane rồi.... nhoằng cái hết 17 câu. Cá nhân mình không nghĩ đề nó dễ vậy. Mình làm xong còn thừa 50 phút. Lại ngồi dò lại từng câu, phát hiện một câu mình triển khai sai namespace. Theo kinh nghiệm của mình, câu nào đề yêu cầu về namespaced resource mà không nhắc gì tới namespace thì nghĩa là đang dùng default namespace.
Mình cứ thong thả ngồi sửa lại 😄 và soát tiếp như vậy. Một phần cũng hơi chán và cũng tự tin nên quay ra mấy câu cuối không thèm soát lại nữa mà ngồi chat với giám thị cho ổng cay. Mình được quyền ngồi tới hết giờ thi mà... Mình cũng định thế thật nhưng thời điểm đó thời gian trôi qua chậm quá, sau rồi mình cũng thôi và bấm End exam
xong ra ngoài trước khi hết giờ 15 phút.
Tổng kết
Kết quả chung cuộc. Mình pass exam CKA ở lần thi đầu tiên với số điểm 93/100. Hơi buồn vì lúc tắt máy vẫn nghĩ mình phải được 100đ 😂 Như vậy, cuối cùng vẫn là câu chuyện có một cái kết buồn... nhưng vẫn có hậu.
Cá nhân mình đánh giá, đề thi CKA có nhiều câu hay và sát với thực tế và cũng rất giống với đề thi thử. Thậm chí có những câu còn rất ngắn. Chỉ cần gõ vài lệnh là đã làm xong rồi. Lúc làm xong câu đó mình cũng mất mấy giây hoang mang. Phần lớn liên quan tới việc triển khai ứng dụng lên Kubernetes yêu cầu các bạn thành thục về Deployment, StatefulSet, DaemonSet, ConfigMap, Secret, PV/PVC, RBAC. Ngoài ra sẽ có thêm một số câu hỏi về việc vận hành cluster như upgrade Kubernetes cluster, system-components, backup cluster, fix lỗi. Theo mình cảm nhận thì các bạn thi CKA có khi còn dễ hơn thi CKAD nữa.
Anh chị và các bạn đọc có nhu cầu hợp tác đào tạo hãy inbox mình qua Zalo nhé: https://zalo.me/0932147596. Cảm ơn anh chị và các bạn đã đón đọc.
Mọi người ủng hộ mình bằng cách giúp mình một lượt like và subscribe DevSuccess101 trên nền tảng mà bạn yêu thích phía dưới nhé. Cảm ơn các bạn đã đón đọc.
✴️ Website: https://devsuccess101.com
✴️ Subscribe kênh! https://l.devsuccess101.com/subscribe
✴️ Join our Discord community for help https://l.devsuccess101.com/discord
✴️ Donate: Momo, Paypal
✴️ TikTok: https://l.devsuccess101.com/tiktok
✴️ YouTube: https://l.devsuccess101.com/youtube
✴️ Viblo: https://l.devsuccess101.com/viblo
✴️ Facebook: https://l.devsuccess101.com/facebook
✴️ Discord: https://l.devsuccess101.com/discord