2021. 10. 31. 14:34ㆍDev
회사에서 서비스를 쿠버네티스로 운영하고 있어서 기본적인 쿠버네티스의 개념이나 사용법은 실무수준에서는 이해하고 있었지만, 뭔가 체계적으로 한번 전체적으로 훑어보고 싶었다. 그냥 책만 읽어서는 동기부여가 안될 것 같아서 알아보니 CKA 라는 공인 시험이 있어서 이걸 준비해보기로 했다. 내용을 대충 살펴보니 시험 타이틀 그대로 쿠버네티스 관리자를 위한 시험이었고, 내가 하는 업무의 연관성과 매우 깊었기 때문에 시험에 도전했고, 다행히 무사히 합격했다. 자사 서비스를 쿠버네티스에서 운영하는 사람들에게 필요한 지식들을 테스트하는 시험이니 관심있으신 분들은 이 후기를 참고하셔서 꼭 합격하시면 좋겠다.
CKA 시험에 대해 간단히 설명하자면,
- 온라인으로 진행되며 쿠버네티스 가상환경을 띄워주고 거기에 수험자가 접속해서 15~20개 가량의 문제를 푼다. 가령 어떤 이름의 Pod Development 를 띄워라, Service 를 만들어라, Node 의 상태를 점검해라, 클러스터에 문제가 생겼다 해결해라 등등 실제 쿠버네티스 운영에 있을법한 문제들이 출제된다.
- 시험시간은 2시간 가량으로 오픈북이다. 다만 kubernetes.io 공식 사이트에만 접속 가능하다.
- 외국인 시험감독관이 시험전에 시험장소를 확인한다. 주변에 컨닝요소는 없는지, 조력자는 없는지 체크하는데, 시험도중에 누군가가 방문을 열면 탈락처리되니, 미리 격리된 시험장소를 확보하는 게 좋다.
자세한 시험설명은 여기에:
https://docs.linuxfoundation.org/tc-docs/certification/tips-cka-and-ckad
1. 시험준비 시작
시험준비의 시작은 시험등록이다! 일단 자신의 스케줄 등을 고려해서 시험등록부터 지르고 보자. 공부기간은 개인적으로는 쿠버네티스를 아예 모른다 혹은 들어본 적 있다. -> 1달정도, 쿠버네티스를 회사에서 쓴다, kubectl 명령어로 기본적인건 해봤다 -> 2~3주 정도로 본다.
나는 쿠버네티스를 자주쓰긴 하지만 자격증 취득목적보다는 좀 처음부터 체계적으로 인강을 들어보려고, 조금 바빴던 회사스케줄을 고려해서 공부기간을 3주정도로 잡았다.
시험 등록은 여기서: ($375달러로 좀 비싸긴 해서 회사원이라면 회사에서 자격증 지원해주는 혜택을 활용해보자)
https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/
2. 시험공부 (약3주정도)
다른 블로그와 마찬가지로 CKA 자격증 취득의 정석은 아래 온라인 강좌이다. 영어강의이기는 한데 강사가 쉬운영어로 비교적 천천히 말해줘서 나같은 영어 병신도 수강하는데 크게 문제가 되지는 않았다. 영문자막도 볼 수 있으니 영어라고 크게 쫄지는 않아도 된다. (자막이 근데 자동번역이라서 좀 퀄리티가 떨어지긴 한다) 이 강좌의 장점은 자격증 취득을 위한 쪽집게 강좌가 아닌, 쿠버네티스 이해에 필요한 기초지식부터 차근차근 알려준다는 거다. 예를들어, 쿠버네티스 인증관련 기능을 이해하기 위해서는 TLS의 기초지식, 쿠버네티스 네트워크를 이해하기 위해서는 당연히 네트워크에 대한 기초지식이 필요하다. 따라서 쿠버네티스의 관련 기능을 설명하기 전에 이런 기초기능도 30~40분이상 긴 시간에 걸쳐서 차근차근 잘 설명해준다. 컴퓨터 전공이라고 하더라도 보안이나 네트워크 쪽을 잘 다루지 않는 개발자들은 이런것도 오랜시간 안하다보면 까먹기 쉽상인데 (나도 그랬고), 이 기회에 이런 기초지식도 복습하니 참 좋았던 것 같다.
Umedy 강좌 링크:
https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
수강 Tip
- 실전과 가까운 Practice Exam 을 제공해준다. 쿠버네티스 숙련자라도 반드시 다 풀어보고 자기것으로 만들 것! 실전과 매우 비슷한 형태다.
- Security, Networking 부분이 상당히 길다. 분량에 비해 시험과는 연관도는 낮은편이니 시간이 없다면 TLS, DNS 등 IT 기초지식을 설명해주는 부분은 대충 스킵하고 핵심부분만 짚고 빠르게 넘어가자.
- 그렇다 해도 분량이 꽤 많다... 또 섹션마다 직접 연습해보는 것도 있어서 그런거까지 하려면 못해도 주에 5~6시간은 공부해야하는데 할애해야 한다. 시간이 없으신 분들은 적절히 자기가 잘 아는 부분은 스킵해도 괜찮을 것 같다.
3. 시험당일
나는 회사의 격리된 회의실에서 모두들 퇴근한 시간에 시험을 봤다. 시험 15분전에 감독관이 채팅으로 Hi 라고 말을 걸어오고 노트북 카메라로 시험보는 장소를 쭉 보여달라고 한다. 책상 위아래, 천장, 벽 주변 등등 되게 꼼꼼하게 본다. 위에서도 말했지만 시험도중에 누군가가 출입하거나 하면 실격처리 요소가 된다. 반드시 이날은 외롭더라도 혼자만의 시간이 될 수 있도록 공간을 확보하는게 좋다. 만약 집에서 시험을 본다면 모니터라든가, TV 라든가가 방에 있다면 치워달라고 할 것이니 매우 귀찮을 수 있다...
혹시나 시험도중 시험환경 관련해서 이슈가 있으면 감독관에게 먼저 보고하는게 좋다. 나는 회사가 업무종료시간에는 15분마다 정기적으로 소등이 되는데, 이날도 주기적으로 불이 꺼졌다... 이런 경우에는 당황하지말고 시험도중에 감독관에게 불좀 켜고 와도 되냐고 (Can I turn on the light?) 라고 물어보면, 응 그럼~(Sure) 이라고 친절하게 말해주더라.
시험에 대한 디테일은 공개하기 어렵지만, 말할 수 있는 범위에서 말해보자면
- 시험은 2시간 가량으로 17문제 가량이 출제되었다. 문제는 크게 어렵지는 않았지만 혹시나 Pod 이름 등에 오타가 났을까 쭉 검토하는 시간까지 포함하면 그닥 넉넉한 시간은 아니다. 문제마다 배점도 적혀있는데, 시간이 오래걸릴 것 같은 문제나 모르는 문제가 나왔다 싶으면 일단 과감하게 넘어가고 쉬운 것부터 풀고 보자. 다시 앞문제로 언제든 돌아갈 수 있으니 걱정하지 않아도 된다.
- 시험 가상환경에는 쿠버네티스 클러스터가 여러개 떠있는데, 이 때 시험문제마다 지정된 클러스터로 Context 를 바꾸어서 시험문제를 풀어야 한다. 즉 왔다리 갔다리... Context 바꾸는 명령어는 문제마다 친절하게 써져있는니 그냥 바꾸면 되는데, 시험문제 풀거나 나중에 검토할 때 헷갈릴 수 있으니 반드시 문제풀기, 검토 시작전에 Context 명령어를 꼭 치고 시작하자.
- 오픈북 시험이긴 한데, 쿠버네티스 특성상 YAML 파일이나 Imperative 한 명령어를 어느정도 숙지하고 있어야 하므로, kubernetes.io 에서 치트시트나 검색했을 경우 어느부분을 참고하면 되는지 미리 쭉 한번 검색해두는게 좋다. 가령 busybox를 이용하여 pvc 를 마운트한 Pod 를 띄우시오 라는 문제가 출제되었다고 하자. 아주 간단한 문제이지만 시험당일이 되면 시간제한이 있으니 약간 당황한다. 하지만 이런 예제는 kubernetes.io 에 검색하면 금방 나온다. 어떤 키워드로 검색해야 하고, 또 검색결과 페이지 상에서 어떤 위치에 그 YAML 파일 예제가 있었는지 미리 한번 검색해보고 가면 시간절약에 많은 도움이 된다.
- Umedy 의 Practice Exam 수준과 비슷하거나 약간 쉽다. Practice Exam 위주로 잘 공부해두면 좋을 것 같다. Practice Exam을 풀 때 막히면 바로 답지를 보지말고 직접 kubernetes.io 에 검색해보면서 풀어보자. 그 이유는 바로 위에서 설명한 시간절약 때문이다. 반드시 검색 키워드 -> 결과페이지의 위치 이정도를 숙지해두고 가야 시험날 당황안한다.
- 시험을 마무리하면 감독관이 '정말 끝이야? 괜찮겠어?' 라고 걱정스러운(?) 말투로 한번 물어봐주는데, 'Yes' 쿨하게 때려주면 서로 인삿말도 없이 매정할정도로 쿨하게 시험이 그냥 종료된다.
4. 시험결과
시험결과는 시험종료 약 24시간 이내로 이메일로 날라온다. 다행히 무사히 합격하였다.
실무적인 핸즈온 테스트라 그런지, 단순히 공부하고 땡치는게 아니라 시험공부하는 때에도 실무에 대한 이해에도 상당히 큰 도움이 되었던 것 같다. 쿠버네티스를 지금 운영하고 있거나, 앞으로 커리어를 쌓고싶은 분들이라면 도전해보시는 걸 추천드린다.
'Dev' 카테고리의 다른 글
Kubernetes Ingress SSL 인증서 적용 (한국전자인증) (2) | 2021.12.20 |
---|---|
MySQL 이중화 하기(HA) 1편: Keepalived 설치하기 (1) | 2021.12.20 |
Fast API 는 더 깔끔한 API UI도 제공합니다 ( ReDoc ) (0) | 2021.10.29 |
Fast API 에서 .env 파일로 환경변수 관리하기 (python-dotenv) (0) | 2021.10.29 |
Fast API를 HTTPS로 띄워보자 (Fast API + Traefik + Webserver) (0) | 2021.08.30 |