2022년 5월 22일에 봤던 Certified Kubernetes Administrator(이하 CKA)자격증 시험 결과가 나와 바로 올리는 따끈따끈한 후기.


CKA(Certified Kubernetes Administrator)는 작년 10월 말 새로운 회사에서 데브옵스 엔지니어로 근무하기 시작하면서부터 계속 따려고 생각했던 자격증. 사실 다른 자격증 준비과 기타 공부에 밀려 미루고 있다가 회사에서 자격증 챌린지(!)를 한다는 소식에 이제 더는 미룰 수 없겠다 싶어 취득하게 되었다(그리고 사내 자격증 챌린지는 무사히 1등을 따냈다는 후문😉).



CKA 시험 개요

CKA 자격증 시험은 쿠버네티스(Kubernetes) 오픈소스 프로젝트를 관리하는 Linux Foundation 산하의 Cloud Native Computing Foundation(CNCF)라는 단체에서 주관하는 시험이다.


CNCF에서 제공하는 쿠버네티스 관련 자격시험은 CKA, CKAD, CKS 총 3가지로, 그 중 CKA는 쿠버네티스 관리자가 가져야하는 스킬, 지식, 역량을 가지고 있는지 여부를 확인하는 시험. 쿠버네티스 네트워크, 스토리지, 보안, 유지보수, 로깅 및 모니터링, 애플리케이션 라이프사이클, 트러블슈팅, API 오브젝트 기초 등의 내용을 망라한다.



CKA 기본 시험 정보

  • 100% 실습 시험(Hands-On Lab)
  • 100% 온라인 시험 (On-site 없음)
  • 총 100점 만점 중 66점 이상을 획득해야한다.
  • 시험 시간은 총 120분
  • 문제 수는 15문제 ~ 20문제 사이(라고는 하지만 대부분 17문제인 듯 하다)
  • 자격증 구입 후 1년 이내 시험 신청 가능
  • 1회 무료 재시험 (패널티 기간 없음)
  • 자격증의 유효기간은 3년
  • 시험 비용은 $375 (주기적으로 15~40% 쿠폰을 발급하니 할인 쿠폰이 떴을때 미리 바우처를 구입해두면 좋다)
  • 시험 결과는 시험 종료 후 24시간 이내에 메일로 통지된다.



수험 시 주의 사항

  • 온라인으로 보는 IT 자격증 시험을 많이 보신 분들은 아시겠지만 응시자 외에 아무도 없는 개인 공간에서 시험을 치러야 한다.
  • 책상 위도 신분증과 라벨이 붙지 않은 투명 물병 외의 불필요한 물건을 모두 치워야 한다.
  • 신분증은 여권, 혹은 국내신분증 + 신용카드(서명 되어있어야 함)조합으로 사용 가능하나 국내 신분증은 확인이 번거로우니 여권을 지참하길 추천한다.
  • 외장모니터 사용은 가능하나 화면 딜레이가 심해진다고하여 나는 사용하지 않았다.
  • 시험은 크롬 계열 브라우저에서 볼 수 있으나 크롬브라우저에서 시험이 작동하지 않는 경우가 있어 권장 브라우저인 비발디(Vivaldi) 브라우저를 미리 설치해 북마크를 해두는 것을 추천.
  • CKA는 오픈북 시험으로 쿠버네티스 공식문서를 시험 중 열람할 수 있는데, 시험 화면 외 1개의 추가 탭만 허용된다.
  • 시험 중 쿠버네티스 공식문서 중 허용된 URL의 문서들만 열람 가능하며, 쿠버네티스 공식 웹사이트 중에서도 Discussion 페이지는 열람 불가하다.
  • 시험 화면 내 notepad 기능이 있어 명령어 등을 복사하거나 YAML 파일을 붙여넣고 편집할 수 있다.
  • 각 문제마다 컨텍스트가 지정되어있다. 실수로 다른 컨텍스트에서 작업하게 될 경우 점수에 반영이 되지 않으니, 문제풀이를 시작하기 전, 터미널에 반드시 복사 & 붙여넣고 시작하자. 컨텍스트를 전환하는 명령어는 시험 문제 제일 상단에 표시되어있어 따로 외울 필요는 없다.
  • 반드시!! 네트워크 환경이 원활한 곳에서 시험을 볼 것. 내 방이 평소에도 인터넷이 유독 안터지는 편인데 시험 보는 도중 갑자기 화면이 프리즈 된 뒤 튕겨져나와서 멘붕이었다. 다행히 재접속하니 감독관(Proctor)가 바로 시험환경에 연결하고 튕겨나간 시간만큼 추가시간을 부여해줬지만 답안 데이터가 날아갔는지 점검하기 위해(다행히 작업했던 내역이 날아가지는 않았다) 시간을 꽤 소모해서 마지막에는 시간이 부족해 문제를 풀지 못했다.



시험 준비 방법

CKA는 아래 세 가지 리소스를 가지고 학습하면 시험 합격에는 큰 무리가 없을 듯 하다.


Udemy의 뭄샤드: CKA 강의의 바이블

“CKA 시험 후기”로 검색해서 나오는 모든 블로그 포스팅에서 언급되는 강의인 Mumshad Mannambeth의 Certified Kubernetes Administrator (CKA) with Practice Tests.


쿠버네티스 오브젝트의 동작 메커니즘을 이해하기 위한 기본 개념부터 시작해 CKA의 시험 범위 전체를 커버하는데, 할인행사를 적용해 구입하면 약 **2만원 가량의 가격으로 핸즈온 랩까지 무제한으로 연습(!)**할 수 있는 엄청난 강의이다.


핸즈온 랩은 매 챕터마다, 그리고 강의 마지막에 모의고사 형태(Lightning Lab과 Mock Exam)로 제공되는데, Udemy 외부의 뭄샤드가 운영하는 KodeKloud라는 사이트에서 진행된다. 실제 환경보다 느리고 종종 장애가 나기도 하지만, 마지막의 모의고사들(Lightning Lab & Mock Exam)은 실제 시험 중 쉽거나 중간 난이도의 문제와 유사하니 꼭 반복해서 풀어보길 바란다.


강의 내용도 CKA를 보는 사람들 뿐만 아니라 쿠버네티스 개념에 대해 익히고 싶은 사람들에게도 좋을법한 내용이다.


다만 영어 강의인데다 자막도 자동자막인 점은 불편할 수 있다. 사실 자막이 초반에는 볼만해서 수동 자막인줄 알았는데 후반에 가면 갈수록 자막이 엉망이라 후반부에는 자막을 끄고 봤었다. 그나마 강사인 뭄샤드가 인도사람 치고는(?) 발음이 깔끔하고 강의 속도도 빠르지 않아서 1.5배속으로 들어도 잘 들리는 편. 나는 유독 안들리는 일부 강의를 빼고는 괜찮게 들었다. 하지만 나는 영어가 쥐약이다! 하는 분께는 약간 힘들수도. 그래도 실습환경 제공만으로도 돈 값은 충분히 한다고 생각하니 CKA를 보려는 분이면 꼭 신청하시길. (영어에 익숙치 않은 분들은 야매(?) 자막 번역 방법이 있으니 참고할 것: 유데미 한글자막 보는법)


참고로 최근 Udemy와 웅진글로벌이 파트너 계약을 맺고 강의의 한글 번역본을 내고 있는데, 웅진글로벌에 문의 결과(22년 5월 기준) CKA는 안타깝게도 당분간 한글번역을 낼 예정이 없다고 한다.



Killer.sh : 고난이도 문제 풀이 연습 & 실제 환경과 유사

Killer.sh은 CKA 시험을 신청하면 아래와 같이 시험신청 탭에서 접속할 수 있는 모의고사로 매우 고난이도이다. (CKA Mock Exam 한 두번 풀어보고 시험날짜가 얼마 남지 않았길래 Killer.sh 접속해봤다가 너무 어려워서 깜짝 놀랐던)


2022-05-24-How-to-Pass-CKA-Exam1.png


Killer.sh는 25문제 + 보너스 문제들로 구성된 모의고사로, 실제 CKA 시험보다 훨씬 어렵지만 실제 시험환경과 동일하게 컨텍스트를 바꿔가며 시험 문제를 풀수 있고, 시험을 보고 나서 채점도 해준다(위에서 언급한 Udemy 강의의 모의고사들도 채점해주는 건 마찬가지지만).


문제 난이도는 높은 편이지만 공식 사이트에서 제공하는 만큼 문제의 방향성이 실제 시험과 유사한 점이 많고 해설이 매우 충실해 시험 전 꼭 풀어보고 들어갈 것을 추천한다. 특히 ETCD 백업유형트러블 슈팅 관련 유형은 꼭 반복해서 풀이 방법을 반드시 체득하고 들어갈 것.


트러블 슈팅 문제는 쿠버네티스 공식문서에도 관련 내용이 있기는 하지만 컨트롤 플레인의 컴포넌트가 망가진 유형의 경우, Kube-apiserver를 사용할 수 없기 때문에 컨테이너 런타임(이전에는 도커였으나 쿠버네티스에서 도커가 더이상 컨테이너 런타임으로써 사용되지 않게 되었기 때문에 현재 시험환경에서는 CRI-O를 런타임으로 사용하는 것으로 알고있다. 따라서 docker ps가 아니라 crictl ps 처럼 CRI-O에 맞는 커맨드를 입력해야한다)에서 제공하는 커맨드 혹은 리눅스 명령어(ps aux 등)를 숙지하고 있어야 하기 때문이다. 따라서 기존에 리눅스를 다루는 데 익숙하지 않은 학습자라면 Killer.sh을 통해 조금이라도 더 리눅스 명령어와 로그에 익숙하게 만든 뒤 들어가야한다.


원래 Killer.sh은 추가금을 지불해야한다거나, 시험 2일 전 오픈된다고 하는 제약사항이 있었던 듯 한데, 현재는 시뮬레이터가 총 2개 지원되고 시뮬레이터 접속 혹은 답안지 열람은 시뮬레이터 활성화로부터 36시간 동안 자유롭게 할 수 있다. 다만, Udemy 강의의 Mock Test처럼 접속할 때마다 환경이 새로 구성되지 않고, 한 번 푼 이후에는 설정값들이 그대로 남아있어 여러번 풀기에는 적합하지 않은 편.


개인적으로는 킬러쉘은 난이도가 많이 높은 편이기 때문에 안풀리는 문제를 끙끙 붙잡고 있기보다는 시험 한 일주일 전에 첫번째 시뮬레이터를 활성화 해서 실제 시험처럼 쭉 풀어본 뒤, 해설을 보고 반복적으로 다시 풀어보다가 전날쯤에 두번때 시뮬레이터를 활성화 해서 마지막 점검 형식으로 풀고 가는 게 낫지 않았을까 싶다(나는 시험 2일전 오픈된다는 말만 철썩같이 믿고 2일전에 오픈해 제대로는 딱 한번정도만 풀고 들어갔어서 제대로 내용을 숙지하지 못한 게 가장 후회된다.)

+)

참고로 killer.sh를 만든 팀에서 무료로 KillerKoda라는 실습환경도 제공하고있다(현재 베타버전). Killer.sh의 조금 순한 버전의 실습 문제들(CKA뿐만 아니라 CKS, CKAD도 있다)과 쿠버네티스 연습용 환경(최신버전은 k8s 1.24버전이나 Istio, NGINX가 설치된 환경 등)을 제공하고 있으니 관심 있으신 분들은 한 번 살펴보시길.

이전 포스팅에서 Killer.sh, KillerKoda에 대한 설명도 기재해 두었으니 같이 보시면 좋을 듯 하다.



따배씨: 실제 문제와 가장 흡사한 유형

유투브에 쿠버네티스, 도커와 관련된 무료 강의를 올려주시는 유투버 따배런 이성미 강사님의 CKA강의. 초반에만 무료로 강의가 오픈되고, 이후 강의들은 멤버십을 신청해야만 들을 수 있다.


나는 무료로 오픈된 ETCD 백업 강의만 들었는데, 실제 문제와 비슷했다. 아직 멤버십 가입을 하지 않아 정확한 비교는 어렵지만, 오픈된 문제해설을 보면 유데미, Killer.sh, 따배씨 세 문제를 비교했을 때 따배씨의 문제가 압도적으로 실전과 유사도가 매우 높고, 플레이리스트에서 확인한 강의 제목을 보았을때도 실제 나온 문제 유형들로 구성되어있었다. CKA 자격증 자체만 빠르게 취득하고 싶은 경우에는 유투브 멤버십에 가입해 따배씨 강의를 듣고 가는 것도 좋을 듯하다.


다만 현재 시점에서는 모든 강의가 오픈되지 않아 위에서 언급한 다른 강의와 병행하는 걸 추천한다.



시험 팁

최대한 명령형 커맨드(Imperative Command)를 활용하자

현재 프로젝트에서는 휴먼 에러를 최대한 줄이기 위해 커맨드라인으로 리소스를 수정하는 것을 지양하고 있어 서드파티에서 제공한 UI툴에서 YAML파일을 수정하는 형태로 작업을 많이 하는 편이라 CKA를 보기 전까지는 명령형 커맨드가 익숙치 않았었다.


하지만 CKA 강의를 들으면서 보니 YAML 쿠버네티스 문서에서 복붙해서 쫌쫌따리(?) 고치지 않고도 명령어 한 줄로 웬만한 리소스들을 한 번에 수정할 수 있었다. 실제 운영 환경에서는 팀의 정책을 따라야하겠지만 시험에서는 반드시 이 명령형 커맨드 사용에 익숙해져야한다.


참고로 현재 시험 환경에서는 kubectl의 축약어와 자동완성 기능이 이미 적용되어있어 별도로 kubectl 치트시트에 나와있는 설정을 하지 않아도 된다.


또한 kubectl 명령어 사용법 확인은 kubectl reference에서도 확인이 가능하나, 커맨드 자체는 알고있고, 옵션 값의 확이 필요한 경우에는 kubectl —help을 입력하면 간단한 사용 예와 함께 옵션값에 대한 설명을 빠르게 확인할 수 있으니 위 명령어 사용에도 익숙해지도록 하자.



JSON Path를 익혀두자

쿠버네티스에서는 kubectl을 사용해 리소스를 확인할 수 있는데, JSON Path옵션을 적용하면 리소스의 특정 데이터를 뽑아 저장할 수 있다.


CKA 문제 유형 중 특정 리소스의 특정 데이터를 문제에서 지정한 파일에 저장하는 문제유형에 JSON Path를 활용하면 빠르게 문제를 풀 수 있다.


참고로 jsonpath 옵션 외에도 custom column이라는 옵션도 유용하니 kubectl 치트시트를 참고해 익혀두면 좋다.



쿠버네티스 공식문서 검색에 익숙해지자, 북마크는 검색으로 찾기 어려운 페이지만

CKA는 쿠버네티스 공식문서의 자료를 검색해 참고할 수 있는 오픈북 시험인만큼, 방대한 양의 쿠버네티스 문서 중에서 필요한 내용을 빠르게 검색해 활용할 수 있는 능력이 중요한 시험이다.


북마크를 활용하는 방법도 있지만, 모든 관련 페이지를 북마크하면 북마크 리스트 중에서 해당 내용을 찾는 것이 또 번거로워서 웬만한 페이지는 검색으로 찾아서 활용하고,


ETCD 백업 방법처럼 검색어로 찾을 때 여러 페이지를 거쳐 접속해야 하는 페이지이거나, 페이지가 길어서 YAML 템플릿을 한눈에 찾기 어려운 페이지일 경우, Security Policy나 Sidecar Container 처럼 문제에 직접적으로 나온 키워드로 찾기 어려울 경우에만 북마크를 해두는 것이 개인적으로는 편했다. 하지만 이건 개인적인 취향이니 한 번 모의테스트나 Killer.sh 문제를 풀어보고 자신에게 맞는 방법을 찾는 게 좋을 듯.


참고로 위에도 잠깐 설명했지만 CKA는 비발디브라우저에서 최적으로 작동하고, 크롬브라우저에서는 접속이 안되는 경우가 있어 애써 저장한 북마크를 활용하지 못할 수도 있기 때문에 모의고사를 치를 때부터 비발디 브라우저를 적극 활용하길 추천한다.



문제 유형

  1. 사이드카 컨테이너 생성
  2. 네임스페이스 셀렉터를 사용해 네트워크폴리시 생성
  3. Kubeadm으로 마스터노드만 업그레이드
  4. etcd 백업 및 복구
  5. 멀티컨테이너 파드 생성
  6. 노드 트러블슈팅
  7. 노드 정보 저장
  8. Hostpath 타입의 볼륨 생성하기
  9. 서비스어카운트 & 클러스터롤 & 롤바인딩 리소스 생성
  10. 파드 리소스 사용량 순으로 정렬해 제일 높은 파드 이름 기록
  11. Nodeport타입 서비스 생성
  12. 디플로이먼트 업데이트 + 업데이트 내용 기록 옵션 활성화
  13. 파드 로그 중 특정 내용이 들어있는 로그만 기록
  14. 파드(혹은 디플로이먼트) 노드셀렉터 추가하기
  15. Pvc 생성 및 파드 마운트
  16. 디플로이먼트의 레플리카 수 늘리기