사실 지난 2년간 kubernetes 환경에서 개발도 했고, helm chart들도 직접 만지면서 꽤나 익숙한 상태였다. 딱히 CKA를 볼 마음은 없었지만, 회사에서 무언의 압박(아마 매니저분들의 실적에 들어가나보다)이 계속되었고, 지난 8월에 뭄샤드 강의를 보게되었다.
약 한달 간 1시간씩 강의를 보면서 정리를 했었고, 9월 되기 전에 완강을 했지만 막상 시험은 신청해놓지 않았다가, 한달 뒤인 10/5일에 시험을 보았고 합격했다. 사실상 실제 준비한 시간은 한 달 정도이며 하루에 1~2시간 정도라고 생각하면 된다.
막상 cka실제 문제 난이도가 생각보다 쉬워서 너무 허무했다. 만약 kubernetes 환경에서 실제 cluster를 배포하고 설계해봤다면 굳이 udemy강의 전부는 안보고, mock exam, trouble shooting 정도만 봐도 충분할 것 같다. 좀 더 철저히 준비하고 싶다면 udemy 강의의 모든 실습만 해보고, 몰랐거나 잊었던 부분들을 정리하면 될 것 같다.
만약, 현업자가 아니거나 kubernetes에 익숙하지 않으면 udemy강의를 강추한다. 굉장히 자세히 설명하고, kubernetes network에 대해서도 왠만한 책보다 깊이 설명해준다. 강의만 다봐도 cka시험은 충분히 합격하니 초보자라고해서 쫄지 말도록 하자.
시험보기 전에 CKA를 결제하고 일정을 잡으면, killer.sh라는 시험 test를 볼 수 있다. killer.sh 문제 수준은 무난한 편이지만 CKA에 비하면 어려운 편이다. 따라서, 굳이 문제는 풀지않고 시험 환경에 익숙해지기 위한 단계라고 생각하면서 사용해보길 바란다.
여기서 복사, 붙여넣기가 일반적으로 다르다는 것을 몸소 느낄 수 있다. 일반적으로 mac에서는 복붙이 cmd+c
, cmd+v
였지만, 시험환경에서는 mac기준으로 terminal에서 다음과 같다.
1. 복사: ctrl
+ shift
+ c
2. 붙여넣기: ctrl
+ shift
+ v
만약 브라우저의 경우는 다음과 같다.
1. 복사: ctrl
+ c
1. 붙여넣기: ctrl
+ v
이런 경험을 killer.sh에서 충분히해두면 된다.
만약 책을 원한다면 kubernetes in action을 추천한다. 이 책을 다 봤다면 그냥 바로 시험 신청하고 udemy mock exam, trouble shooting, 올해의 기출 문제들만 정리해보면 될 것이다.
나온지 꽤 된 책인데, 현재 원서로 second edition 출판이 준비중이다. 지금의 내용들과 맞지 않은 내용들도 상당히 있는데 software 공부라는게 그런거 아니겠나, 안되는 부분은 찾아서 공부하고 분석하는게 더 도움이 될 것이다.
영어로도 한국어로도 둘 다 봤는데, 몇 안되는 한국어 번역이 아주 잘된 책 중 하나이므로 소중하게 읽기를 바란다.
이 책 하나만 봐도 CKA, CKAD는 시험을 볼 수 있을만큼 충분하다.
필자의 경우 오후 9시 30분에 시험이었는데, 스터디룸을 9시부터 12시까지 빌려놨다. 이는 시험보기전에 감독관이 깐깐하게 주변 환경에 대해서 검사를 하기 때문에 여분의 시간을 충분히 두었다.
take exam
버튼을 누르면 PSI라는 브라우저가 설치되고, 마이크와 웹캠을 점검한다. 필자의 경우 웹캠이 왜인지 연결이 안되서, 한 번 시험을 못봤다. 속설 중에 화가나면 영어를 잘해지게 된다고 했는데, 진짜 그렇게 되더라. 고객센터에 와다다닥 글을 쓰니까 하루만에 시험 기록을 reset시켜줘서 바로 다음날 시험을 봤다.
시험보기전 감독관이 보는 것은 다음과 같다.
1. 노트북 카메라로 360도을 천천히 돌려라
2. 노트북 카메라로 천장을 다 보여줘라
3. 노트북 카메라로 바닥을 모두 보여라
4. 손목과 양쪽 귀를 보여라
5. 물은 플라스틱, 유리와 같은 투명한 컵만 가능하다. 종이컵은 불가능하다.
6. 신분증을 보여달라 -> 필자의 경우 여권을 보여줬다. 만약 여권이 만료되었다면 시험을 보지 못한다.
7. 뒤에 아무것도 없어야한다. -> 뒤에 CCTV가 있었는데, 그거 보더니 CCTV를 떼어버리라고 했다... 그냥 반대로 노트북을 두겠다고 합의를 봤다.
말 그대로 똥개훈련을 시킨다. 집에서 보려고 하시는 분들이 있으시다면 절대 추천해주지않는다. 지인 중에는 화가나서 이불 뒤집어쓰고 보겠다고 한 친구도 있었다.
이 시간이 족히 30분 정도 걸린다.
감독관이 시험 화면으로 옮겨준다. 조심할 것은 이때부터 120분이다. 따라서, 스터디룸을 빌릴 때 뒤에 여유시간을 두고 시간을 잡아야한다.
10/5일에 나왔던 총 17문제들을 정리하면 다음과 같았다. (순서는 상관이 없다)
1. etcd snapshot save, restore 문제
2. kubeadm upgrade 및 kubelet, kubectl upgrade 문제
3. deployment scale 늘리기 문제
4. Pod containerPort설정 후 NodePort service에 연결하기
5. nginx-ingress-controller에 ingress 만들기
6. busybox pod만들고, command 입력하기
7. pv, pvc 만들고 pod volume에 연결하기
8. dynamic provisioning을 위한 pvc storageclass설정하기
9. NetworkPolicy ingress 설정 문제
10. kubelet troubleshooting 및 재기동 문제
11. sidecar pattern으로 하나의 pod에 multi-container만들기 및 volume을 두 container들끼리 공유
12. deployment 만들기
13. serviceaccount, clusterrole, clusterrolebinding 설정하기
14. pod의 특정 log line을 grep해서 file을 넣어주기
15. taint가 적용된, 안된 node 구분하기
(나머지는 생각이 안난다)
딱히 어려운 문제들은 없었다. 문제 풀 때 cluster context를 바꿔야하는데 혼절할 것 같은 시험환경에 잊어버렸거나, 적용이 안된듯 싶다.
분노
참고로, 시험 환경은 정말 최악이다. 이미 외국인 성님들께서 reddit에 욕 한바가지를 써놓을 정도로 스트레스가 만땅인 환경이다. 단점들을 적어보면 다음과 같다.
이 밖에도 한 바가지이다. 사실상 CKA시험 중에 가장 어려웠던 것은, 이 말도 안되는 시스템에 익숙해져야한다는 것이었다.
끝나면 감독관이 session을 끝내라는 채팅을 보낸다. 호다닥 나가면 끝나고 24시간 후에 시험 결과가 나오게 된다.
90점으로 합격을 했다. 시험 시간보다 스터디룸을 비워줘야하는 시간이 더 빨리 왔기 때문에 그냥 후루룩 풀다보니 몇 개 틀렸나보다.
딱히 CKA가 있다고 해서 kubernetes에 대해서 더 경험이 있고, 잘 알고있다고 생각하진 않는다. 또, 시험 자체도 실무랑 비슷한지도 잘 모르겠다. 실무에서는 kubernetes manifest를 잘쓰는 것은 당연한거라서 그런지도 모르겠다. 오히려 linux 지식이 더 중요하고, script로 자동화하는 것이 더 실무랑 가깝다고 생각한다.
하지만 한 가지 확실한 것은, '이 친구 그래도 열심히 공부했습니다'에 대한 증표는 되는 것 같다. 'kubernetes관련 자격증을 따는 것'보다 'kubernetes를 공부하는 과정'이 더 가치있는게 아닐까? 라는 생각이 든다. 즉, kubernetes관련 강의를 보고, 책을 읽고, 스스로 test환경을 조성을 하는 것 자체가 시간이 굉장히 많이 든다. 따라서, 이러한 열정이면 다른 분야에서도 열심히했을 것이라는 생각이 든다.