3개월 지나서 적는 CKA 합격후기+팁

Click·2024년 11월 4일
0

계기

집에 구축한 홈랩 서버를 쿠버네티스로 운용하고, 회사에서도 잘 사용하고 있지만 책 한권 보고 나머지는 모두 그때그때 인터넷 찾아가면서 구축 및 운용한지라 쿠버네티스에 대해서 체계적으로 알지 못했다. 하는 김에 자격증 시험 안본지 오래되기도 해서 감을 다시 잡고싶은 마음도 있었다.

준비과정

작년 12월경에 KCNA + CKA 번들을 208달러라는 거의 반값에 해당하는 금액으로 구매하고 까맣게 잊고있다가 6월쯤에 슬슬 시험 보라는 이메일이 날아왔다. 그때부터 부랴부랴 준비를 시작했다.

  1. 수강 강의
    당연하지만 CKA의 바이블이라고 해도 무방한 뭄샤드 강의로 공부했다. 정가는 11만원이나 3만원 정도까지 자주 할인하므로 할인을 기다렸다가 구매하자.

  2. 실습
    퇴근 후 매일 한 챕터씩 강의를 듣고 강의에 따라오는 KodeKloud 환경에서 해당 챕터의 문제를 풀었다. 처음에는 이렇게 강의에서 나온 내용을 단기기억으로 풀면 나중에 다 까먹는거 아닌가? 했었지만 시험 한달 앞두고 강의는 듣지 않고 문제만 반복해서 풀다보니 머릿속에 남았다.

  3. 공식문서 검색 연습
    실습과정에서 중요하게 여겼던 부분은 항상 블로그가 아닌 쿠버네티스 공식문서를 검색해서 문제의 답을 찾도록 연습했다. 시험을 치르고 나니 실제 시험에서 허용되는 문서는 공식 문서밖에 없고 또 옛날처럼 북마크를 활용할 수 없는 상황이라 빠르게 필요한 정보를 얻는 연습이 도움이 많이 되었다.

  4. 덤프 풀이
    KodeKloud 문제를 계속 풀어서 이제는 외워서 푸는 수준에 다달은 바람에 덤프 문제를 풀기 시작했다. 유튜브 같은데서 추천하는 AWS 환경 구축 이런건 돈아까우니 제끼고 도커를 이용한 로컬 멀티노드 Kind를 사용해서 덤프 문제를 풀었다.
    TroubleShooting 계열 고득점 문제(노드 NotReady 상태 복구, kubeadm 업그레이드, etcd 복구 등등)는 문제은행형식인 CKA 특성상 직접 고장 상황을 만들고 다시 복구하기보단 KodeKloud 문제를 반복해서 풀고 그 과정에서 공식문서 검색어 및 위치를 잘 익혀두는게 훨씬 나았다.

  5. killer.sh
    시험 1주일을 앞두고 시험환경에 익숙해지기 위해 일종의 모의고사인 killer.sh 시험을 쳐봤다. 익히 알려져있듯 실제 시험보다 난이도가 있는 편인데 1회차 반정도 풀다가 좀 풀리길레 아 이정도만 봐도 되겠다 싶어서 접었다.
    옛날같았으면 killer.sh와 시험 환경이 똑같은데 최근에는 PSI 브라우저 방식으로 바뀌는 바람에 많이 다르다. 그러니 killer.sh에 큰 힘을 쏟을 필요는 없다고 본다.

시험 현장 대비

  1. 스터디룸
    집 회사 모두 시험 환경을 만족하는 장소가 없어서 그냥 스터디룸을 빌렸다. 기재 트러블이 발생하면 시험 시작 전 1시간 날아가는건 일도 아니라고 하길레 넉넉잡아 3시간 빌렸지만 실상은 1시간만에 다 풀고 나왔다 ㅋㅋ...
    그래도 시험 도중에 다른 사람이 들어오거나 시험관의 허가 없이 나가면 실격이기 때문에 몇푼 안되는 스터디룸 금액 아낀다고 50만원 넘는 시험을 망치기보다는 여유있게 예약하는 게 좋다.

  2. 감독관 대화
    감독관과의 사전 대화는 모두 채팅으로 진행되었다. 먼저 여권 사진 등을 확인하였고 방 구석구석을 노트북 웹캠으로 보여주었다. 노트북이 usb-c 포트밖에 없는 모델인데 내 무선마우스는 usb-a 타입 동글을 사용해서 usb 허브를 사용했었는데 이것까지 물어봤었다. 다행히 마우스 연결하려고 쓰는 usb 허브라고 답변하니 통과되었다. 연결상태나 추가적인 문제가 발생하지 않아서 시험을 시작했다.

시험 현장 준비

나는 시험환경을 우분투로 선택하였기에 PSI 브라우저에서 우분투 원격 세션을 시작했다. KodeKloud 환경과 유사하게 왼쪽에는 시험문제가 나왔고 오른쪽에는 우분투 GUI 원격 화면이 표기되는 방식이었다.
나는 평소에도 .bashrc에 alias를 걸어놓고 사용하기 때문에 kubectl cheatsheet 를 참조하여 설정하였다.
실제 설정했던 내용은 이랬다.

alias k=kubectl
alias ka=kubectl apply -f
alias now=--grace-period=0 --force # k delete pod testpod $now 같은 형식으로 사용

시험 팁

  1. kubectl을 쓰자
    실습 과정에서 최대한 매번 yaml을 작성하기보단 kubectl을 사용해서 명령형으로 작성할 수 있도록 연습했었다. 2시간짜리 시험을 1시간만에 마치고 나올 수 있었던 건 kubectl을 손에 익힌 덕이 크다고 생각한다.

  2. yaml은 공식 문서에서 복붙하자
    만약 kubectl로 생성할 수 없는 리소스라면 yaml을 작성해야하는데, 이걸 외워서 작성하는건 정말 미련한 짓이다. 공식문서에서 최대한 빠르게 yaml 템플릿을 찾아 명칭 등을 일괄 변경하면 된다. vim이 깔려있으니 vim의 일괄변경 명령어를 사용해서 변경하면 빠르다.(esc -> %s/{이전}/{이후})

  3. 이름 복사 편하게 하자
    리소스 이름이나 파라미터 등이 문제 본문에 지정되는 경우도 있는데, 본문에 이렇게 코드블록처럼 표기된 부분은 마우스 클릭하면 자동으로 복사가 된다. 굳이 긁어서 복사할 필요 없다.

  4. 다른 노드 ssh 접속 후 반드시 접속종료할 것
    빠르게 다 푼거 치고는 81점밖에 받지 못했는데 이건 도중에 다른 노드에서 수행하는 문제를 풀고 깜빡해서 다음 문제도 이전 노드에서 풀어버렸다. 하필 트러블슈팅 관련 문제인 바람에 해당 노드 환경이 꼬여버렸고 왕창 감점받을 수밖에 없었다. GUI 환경이니 가능하면 아에 노드별로 콘솔 창을 따로 띄우는 방법도 괜찮을 듯 하다.

profile
갈려나가는 개발자

0개의 댓글

관련 채용 정보