가장 최근에 했던 프로젝트 에서 쿠버네티스 클러스터를 구축하여 배포를 하였었는데 명령어만 외워서 쓰는 정도라고 생각하여 기초 개념이 흐릿한 것 같다고 판단 하였습니다. 이를 보완하려 CKA 자격증 자격증을 취득하려고 마음을 먹었습니다.
CKA(Certified Kubernetes Administrator, 공인 쿠버네티스 관리자)
CKAD(Certified Kubernetes Application Developer, 공인 쿠버네티스 애플리케이션 개발자)
CKS(Certified Kubernetes Security Specialist, 공인 쿠버네티스 보안 전문가, CKA 자격증이 선행되어야 함)
저는 CKA 자격증 취득을 선택하였습니다.
이전에는 Troubleshooting 비율이 20% 였는데 30%로 늘어난 모습을 보이고 있습니다.
시험을 진행하기 전 저의 상태는 아래와 같고 3주 정도 하루에 3~4시간 가량 준비 하였습니다.
linux os 에서의 작업이 어느정도 익숙한 상태
kubernetes cluster 구축 배포 경험
CKA 자격증 취득에 유명한 "그 강의" 를 통해서 공부하였으며 이전부터 가격할인을 노리고 있다가 할인할 때 18,000원에 구매 하였으니 꼭 할인기간을 노리는 것이 좋습니다. (그래야 자격증 응시 비용을 조금이라도 아낄 수 있음...)
이 강의는 짧은 5~10분짜리 토막 영상으로 많은 영상이 있어서 지루하지 않고 개념학습하기에 수월 합니다.쿠버네티스에 대한 어느정도 개념이 있으신 분 이어도 복습을 위해 정독해보는 것 을 추천합니다. 저는 영상을 보며 정리를 하면서 공부를 하였습니다.
그리고 강의전에는 공부를 위해서 GCP라도 새로 가입을 해야하나..생각하고 있었는데 강의를 구매하게 되면 쿠버네티스 클러스터가 설치된 VM 환경(테스트 문제용)을 제공 받을 수 있습니다. 따라서 이 환경에서 전체적인 CKA 시험 대비를 하면 됩니다.
그 중 Lightning Lab 과 Mock Exam2, Mock Exam3 문제는 실제 시험에 필요한 내용들을 많이 다루니 모든 문제를 숙달하는게 좋고, CKA 시험은 오픈북 테스트라서 docs를 참고할 수 있다. 따라서 모르는 문제는 docs에서 찾아보는 습관을 들이면 좋습니다.
마지막으로 시험접수를 하게 되면 시험환경을 시뮬레이션으로 만들어놓은 문제인 killer.sh 2회분을 풀 수 있는 기회를 줍니다. 실제시험과 환경이 유사 하므로 꼭 풀어보시는게 좋겠습니다. 실제시험보다 난이도 2배정도 어려운 듯 하고 실제시험에서 killer.sh 수준의 문제는 3개정도 있는 듯 하였습니다.
시험 접수는 395달러 이며, 정가를 다 주고 결제할 필요는 없고 쿠폰(20% 정도)을 찾아보면 항상 있는 편 입니다. 저는 2024년 설문조사를 하면 35% 쿠폰을 받아서 256달러 정도에 결제를 했고 200달러 근처에서 구매를 하면 좋을 것 같습니다.
CKA 시험 환경은 악명 높습니다. 제 환경은 Mac os 였고 시험 진행 전 PSI 브라우저라는 프로그램을 설치하였습니다. 사용 해 보니 리눅스 재단 쪽의 환경으로 접속하여 원격으로 가상환경에서 시험을 보는 듯 한 환경이었습니다.
시험은 2시간 동안 17문제가 나오게 되며 시작하기 전 감독관이 원격으로 이것저것 인증에 대해 물어봅니다. (신분증, 시험보는 장소, 컨닝할 여지가 있는 물건감지 등등) 저에게는 처음에 영어가 편하냐 라는 질문을 받았고, 완전하진 않지만 조금은 괜찮다 라고 답하였더니 시험 준비 docs를 보고 오라며 첫 인증을 실패하였습니다. 그리고 다시 접속하여 감독관이 원하는 행위를 해주었고 (책상비춰봐라, 귀 확인, 손 확인, 시험보는 공간 확인) 전부 확인 받고 시험을 치룰 수 있게 되었습니다.
자세한건 여기를 참고하면 되겠습니다.
또한 장소도 사람이 없는 곳 에서 이루어져야 하며, 스타벅스 같은 곳은 안되는 것 같아 스터디카페의 룸을 3시간 대여해서 진행 하였습니다.
특이사항으로는..
docs를 검색할 때 검색속도가 2~3초정도 걸렸고 단축키를 사용하기 위해 tap을 눌럿을 때 도 약 2초정도 후에 단축키가 완성되었습니다. 2시간 내내 그러지는 않았고 약 40분정도는 렉이 걸리다 점점 풀리는 듯 하면서 또 느려졌습니다.
심지어 마지막 5~6분 정도 남았을 가량에는 무한로딩과 connection failed 이 계속 나와서 그냥 멍때리다가 풀었던 문제를 제출하였습니다. 찾아보니 모두 그런건 아니라고 하는데.. 제 환경이 좋지 않았을 수 있을 것 같습니다.
기억나는대로 적어 보겠습니다.
notReady 상태의 node Ready로 변경하기 (kubelet issue)
kubectl log를 통해서 pod의 로그 확인하기 (error 로그 출력 후 저장)
모든 노드의 InternalIP 출력 후 저장 (jsonPath)
특정 워커노드 drain 하기
etcd 백업, 리스토어 ( 리스토어는 이미 백업이 존재하여, 내가 백업한 db말고 지문에서 백업해놓은 db로 리스토어 해야 함)
마스터노드 kubeadm, kubectl, kubelet 업그레이드 ( master만 하라고 지문에 되어 있었음 )
특정 조건의 파드생성하기 ( Tolerations )
사이드카 컨테이너 생성해서 로그 추출하기 (emptydir 사용)
멀티컨테이너 파드 생성하기 (2개 컨테이너 와 각기 다른 env 설정)
deployment 파드 스케일링
rolling update 및 undo rollback 후 rollback history 저장
지문에 맞게 network policy 생성
csr 생성하여 승낙하여 지문에 맞게 role 생성 후 해당 유저에게 rolebinding
deployment & service expose
pvc와 pod 만들기 (스토리지 클래스는 이미 생성되어있음, storage 증설)
ingress 생성 하고 curl로 테스트
cpu가장 많이 사용하는 pod name 저장
80점을 취득하였고 66점이 커트라인이다. 내 생각보다 점수가 낮게 나온이유는 아마 클러스터 작업에서 다른 작업에 의해 영향을 끼치게 되면 다른 문제에도 영향이 가는 듯 하다. 아니면 리눅스 재단에서 원하는 답이 아닌가보다.
많은 자격증을 시도해보지 않아서 정확히는 모르겠지만 원래 자격증 시험은 실제 실무를 익힐 때 시간을 단축시켜 주는 정도 라고 생각했는데 쿠버네티스 자격증은 실무와 관련된 문제들이 시험에 나오고 시험을 준비하는 과정에서도 많은 배움이 있기 때문에 의미있는 자격증이라고 생각이 된다.
난이도도 그렇게 어려운 편이 아니고 개념 이해만 잘 하고 시험환경에서 실수만 하지 않는다면 무난하게 가져갈 수 있는 자격증이라고 생각된다.
👏🏻👏🏻👏🏻👏🏻👏🏻