지난 2024년 2월, 4월 부로 CKA 자격 유효기간이 3년에서 2년으로 변경된다는 소식을 듣고 부랴부랴 시험을 신청하고 준비하기 시작했다.
약 한달 반 정도의 시간을 들여 시험에 합격할 수 있었고, 처음 CKA자격증을 준비하는 사람들에게 도움이 되었으면 하여 취득 후기와 시험 준비 중 정리해놓은 내용을 글로 남긴다.
CKA(Certified Kubernetes Administrator)자격증은 리눅스 재단(The Linux Foundation)에서 인증하는 쿠버네티스 관련 자격증으로 Kubernetes 관리자로써 기술, 지식 및 역량을 갖췄음을 검증한다.
쿠버네티스 관련 자격증은 쿠버네티스 운영/개발/보안 총 3가지가 있는데, 그 중 쿠버네티스 운영 관련 자격증이다.
온라인 원격 시험이기 때문에 시험 장소 및 환경에 대한 규제가 엄격하다.
시험 전에 PSI Secure Browser 에 접속하여 시험 환경에 대한 감독관 확인을 받는데, 이 때 시험 장소를 전체적으로 캠 화면을 통해서 보여줘야 하고 책상 아래도 확인한다.
나같은 경우 블루투스 키보드와 마우스를 따로 사용했는데 노트북과 키보드를 들어서 책상에 아무 것도 없다는 것을 확인받도록 했다.
여담으로 처음 시험 장소를 선택할 때 스터디카페 회의실을 예약하려 했는데 회의실에 TV 가 있는 경우가 많아 장소 예약에 어려움이 있었다. 물론 TV 위에 담요를 덮으면 된다고 하는 후기들도 있었지만, 인터넷 환경도 불안하고 여러 모로 불안요소가 많아 사람이 거의 없는 주말에 회사 1인회의실에서 보기로 결정했다.
또 모니터에 대한 얘기가 많은데, 모니터를 연결해서 시험을 볼 수 있지만 대신 웹캠이 추가적으로 필요하다. 나는 14인치 노트북으로 시험을 봤고 화면이 작긴 했지만 시험을 못 볼 정도는 아니였다.
시험을 접수하면 시험과 동일한 환경과 문제를 풀어볼 수 있는 killer.sh 라는 세션을 2회 제공해준다. 한 번 세션을 열면 36시간동안 접속할 수 있고 채점 결과 및 솔루션도 제공해준다. 또한 실제 시험 환경의 터미널에서는 붙여넣기 단축키가 Ctrl+Shift+V
인데, 이러한 익숙치않은 환경을 미리 접하여 적응도 하고 연습문제도 제공해줌으로써 합격을 도와주려는 취지로 제공하는 것 같다.
실제 killer.sh 세션에도 공식적으로 이런 문구가 있을 정도로 killer.sh 문제의 난이도가 어렵기로 유명한데, 나도 마찬가지로 매우 어렵게 느껴졌다. 처음 120분동안 풀었던 문제가 겨우 5문제 정도 되었다. 문제를 다 풀고 나서 멘탈이 살짝 흔들렸지만 CKA 관련 오픈채팅방 사람들이 실제 시험보다 훨씬 더 어렵다고 해줘서 그나마 안심이 되었다.
결과적으로 나는 killer.sh 세션을 1회만 사용했고, 매우 도움이 되었다. 그리고 나중에 알게된 사실이지만 남은 세션도 유효기간 안에 활성화하여 풀어볼 수 있다.
나는 플랫폼 운영업무를 담당하고 있는데, 처음 클라우드 환경을 접하고 서비스 구축을 위해 Helm Chart 를 작성하고 배포를 하면서 정말 기초적인 것도 모르고 맨 땅에 헤딩하듯 눈앞에 닥친 문제들만 해결해나가기 바빴다. 그렇게 구축을 완료하고서 쿠버네티스 기초 지식이 잘 쌓여 있었다면 많은 시간을 할애하지 않을 수도 있었다는 생각이 들었다. 또한 운영자동화/개선에 대한 고민을 하면서 지식이 좀 더 깊다면 더 효과적인 성과를 낼 수 있을 것이라 생각했다.
제일 큰 문제는 내가 사용하는 클라우드 환경은 사내용으로 제공되고 있기 때문에 클라우드 운영부서가 따로 있다는 점이었다. 그렇기에 사용자로써의 역할이 강했고 쿠버네티스 클러스터 자체에 대한 운영/관리의 기회가 없어 아쉬워했다.
그러던 와중에 CKA 자격 유효기간 변경이라는 좋은 구실이 생겼고, 회사에서 CKA 자격증 취득비용을 지원한다고 하여 합격하면 공짜, 불합격하면 멍청비용!(기회는 2번인데, 설마 떨어지겠어?) 이라는 생각으로 CKA자격증 취득 준비를 시작했다.
시험 신청은 Linux Foundation 홈페이지에서 할 수 있고, 운이 좋게도 나는 설날 할인행사로 40% 할인을 받아 시험을 신청할 수 있었다.
할인 행사를 꽤 자주 하기도 하고, 비용 결제 후 1년 안에만 시험 접수를 하면 되기때문에 자격증 취득이 급하지 않은 사람들은 할인율이 높은 때를 이용하는 것이 좋을 것 같다.
나는 CKA 공부의 바이블이라 불리는 Udemy 뭄샤드 마남베쓰님의 강의로 공부를 시작했다. 사실 이 강의는 한참 전에 친구로부터 아이디를 공유받았던 강의인데, 매우 시기적절하게 활용하게 되었다.
처음 강의를 들었을 때 취약한 영어 실력으로 인해 정신을 못 차리긴 했지만, 사람은 적응의 동물이라고 점점 강의 내용도 들리고 집중할 수 있었다. 무엇 보다 kodekloud 실습 환경을 제공해줘서 연습하기 좋았다.
핸즈온 시험을 처음보던 터라 감도 잘 안 잡혔는데 실습 문제를 풀면서 공부하니까 부족한 부분을 중점적으로 공부할 수 있어 도움이 많이 되었다.
Udemy 강의 다음으로 유명한 이성미 강사님의 강의이다. 강의 내용이 너무 좋았지만 시간이 얼마 없어 다 보지는 못했다. 그래서 Udemy 강의에서 이해되지 않는 부분만 찾아보면서 참고했다.
강의에서 내용을 설명하시면서 그림으로 그려주시는 부분이 이해하는 데 도움이 많이 되었다.
CKA 시험에서 공식문서를 볼 수 있기 때문에 이 점을 적극적으로 활용해야 한다. 공부하면서 자주 쓰이는 yaml 파일의 링크를 잘 기억하는 것이 좋다. 참고로 공부할 때도 영어 버전의 공식 문서를 참고하는 것이 좋다. 시험 환경에서 한국어가 다 깨져서 나왔다..😅
내가 주로 참고했던 페이지는 다음과 같다.
그리고 이건 깨알 팁인데, PV/Volumes 관련 yaml 파일 작성이 많기 때문에 PV - hostPath 페이지를 따로 띄워놓고 활용하는 것이 좋다.
간단한 오브젝트 생성은 yaml 파일이 아닌 kubectl 명령을 사용하는 것이 좋다. 시간을 단축하는 데 도움이 된다. 그리고 각 문제 마다 kubectl config use-context
잊지 말것 !
시험이 시작되면 터미널을 열어 다음과 같이 세팅해주면 시간을 단축할 수 있어 추천한다.
alias kd='k describe'
export do='--dry-run=client -o yaml'
export now='--force --grace-period 0'
이렇게 설정해두면 이런 식으로 활용할 수 있다.
# describe 명령 사용
kd po abc-012
# deployment yaml 파일로 작성
k create deploy deploy01 --image=busybox:1.28 --replicas=2 $do -- sleep 4800 > deploy01.yaml
# 기존 파드 설정 변경 후 재생성
k replace $now -f pod-new.yaml
kubectl run 또는 create 와 같은 명령어를 사용하여 yaml 템플릿을 빠르게 생성할 수 있다. 시험 중에 일일이 공식 문서에서 템플릿을 찾아 복붙하는 것은 시간이 오래 걸리기 때문에 이 방법을 추천한다.
kubectl 은 설명이 잘 나와있기 때문에 -h
옵션을 통해 사용하기 좋다.
아래는 사용 예시이다.
# 다른 kube config 의 context 설정
k config --kubeconfig={} use-context context01
# label 확인
k get po --show-labels
# label 설정(이미 생성된 deploy 일 경우, deploy 에 label 설정 시 pod 를 내렸다가 다시 띄워야 함)
k label deploy deploy01 app:nginx
# label 제거(label key 가 app 일 때)
k label deploy deploy01 app-
# 특정 label 이 설정된 파드 확인
k get po -l=app=nginx
# secret/configmap 생성
k create secret/cm <name> --from-literal=USER=USER01 --from-literal=PW=PASSWORD
실제 시험에서 출제되었던 문제는 다음과 같으며 총 17문제였다.(순서는 랜덤)
시험 시간 2시간은 그리 길지 않다. CKA 시험을 볼 때 잘 모르겠거나 헷갈리는 문제가 있다면 과감히 패스하고 전체적으로 문제를 다 풀고 다시 돌아와서 푸는 방법을 추천한다.
나같은 경우 뒤로 갈수록 간단하고 쉬운 문제들이 많아 머리를 식히는데 도움이 되었다.
내 기준에서 제일 시간을 많이 썼던 문제는 ETCD 복구와 Network Policy 설정, 마스터노드 업그레이드 문제였다.
Network Policy 문제가 1번으로 나왔는데 공부할 때부터 자신 없던 영역의 문제가 나오니까 멘탈이 흔들리는 것 같았다. 5분 정도 헤매다가 스킵하고 모든 문제를 다 풀고 다시 돌아와서 풀었던 기억이 난다.
ETCD 백업 및 복구 문제의 경우 백업까지는 잘 되었으나 백업한 스냅샷으로 ETCD 를 복구시키면 정상적으로 클러스터가 작동하지 않아 시간을 많이 썼지만 결국 해결하진 못했다.
캠을 통해 감독관이 나를 지켜보고 있다는 부담감이 잠깐 들긴했지만, 시험에 집중하는 순간 그런 사실은 생각도 나지 않았다. 2시간이 정말 빠르게 지나갔고 끝까지 해결하지 못한 ETCD 복구 문제는 아직도 기억에 남는다.
시험 종료 24시간 후 시험 결과를 메일로 남겨주는데, 이렇게 메일이 여러 개 온다.
Portal 에 가서 시험 점수를 확인할 수 있다. 어떤 문제를 틀렸는지 알려주지 않는 게 아쉬웠다.
여러 자격증 시험을 준비하면서 이렇게 역량 확보에 도움이 된 자격증은 처음인 것 같다. 그저 달달 외워서 푸는 필기 시험이 아닌 핸즈온 시험으로 지식의 습득과 이해를 바탕으로 활용해야 풀 수 있었기 때문이라고 생각한다.
컨트롤플레인노드가 뭔지도 잘 몰랐던 내가 클러스터의 전체 아키텍처부터 트러블슈팅, 쿠버네티스 오브젝트의 yaml 작성 방법, RBAC, Network Policy 등 너무나도 배운 게 많았다.
결과적으로 시험을 합격하면서 취득 비용도 전액 지원 받고 운영 업무에 도움이 되는 지식도 습득하는 좋은 시간이었다.
클라우드 환경에서 업무를 해야 한다면 한 번쯤은 공부해보는 것을 추천한다.