자랑 좀 하겠습니다. 근데 이제 여권 없어서 한글 이름을 곁들인...
올해 4월 1일부터 CKA 자격증이 3년에서 2년으로 단축된다는 소식을 듣고 그동안 사놓고 안 들었던 '그 강의'를 부랴부랴 들었다. CKA는 내가 가장 따고 싶었던 자격증이라, 합격 소식을 듣고 더욱 기분이 좋았던 것 같다. 마지막 3년짜리 CKA 자격증을 얻은 만큼, 개인적인 팁들과 이야기들을 좀 공유하려 한다.
CKA를 따려고 하는 분들이라면 무조건 이 강의를 알 것이다.
Mumshad Mannambeth 형님은 아무리 봐도 돈 더 받으셔야 한다. 그만큼 이 강의는 너무나도 퀄리티가 좋았다.
왜 이 강의가 좋았느냐? 그건 바로 내가 몰랐던 Kubernetes의 딥한 영역을 너무나도 쉽게 풀어서 설명해주셨기 때문이다.
Service를 예로 들어보자. 우리가 Kubernetes를 입문한다면, 마치 Service가 살아있는 녀석마냥 트래픽을 파드들에게 안정적으로 '라우팅'을 하는 녀석으로 이해했을 것이다. 그러나, 이 강의에서는 Service는 사실 허상의 존재고, Kube-proxy가 iptables에 ClusterIP와 Pod IP를 매핑한 패킷 Chain Rule을 추가하여 주소를 변환한다는 것을 알려준다. 아주아주 쉽게 말이다.
즉, Kubernetes를 단지 사용하는 것이 아닌, Kubernetes의 A-Z를 세세하게 알려주고, 자격증 명칭처럼 정말 Kubernetes 관리자로 거듭날 수 있게끔 도와주는 역할을 한다.
무엇보다도 Kodekloud에서 제공하는 Mock Exam들, 그리고 Practice Test들을 적극 활용하면 실제 환경에서도 크게 도움을 줄 것이다.
그러나, 이 강의에 절대로 백퍼센트 의존해서는 안된다. 실제로 몇몇 후기에서는 이 강의만 듣고도 불합격했다는 사례가 꽤 있다. 이 이유는 자격증 시험 방식에 있다.
대부분의 자격증 시험은 사지선다, 또는 오지선다형 시험이 대부분이다. 그러나, CKA는 백퍼센트 핸즈온이다. 즉, 모든 문제를 실제 Kubernetes Cluster을 조작하며 요구사항에 맞게 구현을 해야 된다는 것이다. 따라서 리눅스에 익숙하지 않은 사람들은 난이도가 훨씬 어렵다고 느낄 것이다.
이런 가상환경에서 시험을 친다. 참고로, 정말 불편하고 렉도 엄청 걸린다.
그렇기 때문에 필기도 좋긴 하지만, 문자 그대로 달달 외우는 건 정말 비추천한다. 4지선다형이 아니기 때문에 노트장에 빼곡히 Pod가 어쩌고, Control Plane이 어쩌고, 이렇게 공부하는 건 정말 비효율적이다.
그럼 어떻게 공부하느냐? 개인적인 팁으로는 나처럼 홈서버를 사는 것이 최고지만, 굳이 이렇게 안해도 minikube 같은 걸로도 충분히 실습할 수 있으니, 먼저 Kubernetes를 활용하는 것에 익숙해지는 것을 추천한다. 혼자서 YAML 파일도 만들어보고, 명령어도 입력하면서 우선 환경에 익숙해진 후, Mock Exam과 Killer.sh를 적극 이용하는 것을 추천한다.
솔직히 말해서, 개발자에게 자격증은 그렇게 메리트가 크지는 않다. 더군다나 프론트엔드, 또는 백엔드와 같은 프로덕션 개발자들에게는 CKA 만큼의 지식을 요구하지는 않는다. 프로덕션 개발자들은 Kubernetes를 이용을 하지, 이걸 관리하는 건 DevOps, SRE, Platform Engineer들이 하기 때문이다.
따라서, 자신이 프로덕션 개발자를 꿈꾼다면 CKA보다는 CKAD를 추천한다. CKA는 관리자 (Certified Kubernetes Administrator), CKAD는 개발자 (Certified Kubernetes Application Developer) 이기 때문에, 그 목적성이 다르다. 실제 실무에서도 프로덕션 개발자들이 Kubernetes를 다루는 일은 거의 드물다. 보통 Argo CD를 이용하거나, 파드만 띄우는 정도?
그러나 자신이 Kubernetes와 관련된 직군을 준비하고 있다면 CKA는 꼭 따는 걸 추천한다. 말 그대로 Kubernetes 활용에 정말 필요한 지식들을 습득할 수 있고, 이것을 온전히 내 것으로 만들 수 있기 때문이다.
다시 내 이야기로 돌아가면, 사실 이번주 월요일 (3월 25일)에 부랴부랴 시험 예약을 시도했다. 31일 밖에 없어서 만일 이 때 시험을 치면 꼼짝없이 4월 1일에 발표라 어떻게든 다른 시간을 구해야 했는데, 정말 기적같이 금요일 (3월 29일)에 시간이 딱 비어서 바로 신청을 했다.
회사를 다니는 중이라, 퇴근하고 나서 꼬박꼬박 그동안 밀린 강의를 폭풍같이 듣고, Mock Exam을 부랴부랴 쳤다. 근데 웬 걸, 쉽다고 생각한 시험이 생각보다 훨씬 까다로웠다. Killer.sh는 그렇다 쳐도, Mock Exam도 꽤 많이 틀리는 걸 보고 "야 이거 이대로 가다간 물 건너가겠네?" 싶었다.
너무 얕본 것이다. etcdctl을 직접 조작해야 하질 않나, jsonpath를 이용해야 하질 않나, daemonset을 안쓰고 Deployment만으로 daemonset을 구현해야 하질 않나...CSR 부여 과정도 까다롭고...
그래서 틀렸던 유형들을 위주로 다시 강의를 들었다. 그나마 다행인건, 홈서버를 구축할 때 Kubernetes를 정말 많이 다루었기 때문에 그렇게 많이 시간은 걸리지 않았다. (역시 직접 해보는 것 만큼 실력이 오르는 것이 없다.)
거의 5일간 벼락치기를 한 후, 감독관이 나의 신원을 확인하는 동안 심호흡을 하고 머릿속으로 이미지 트레이닝을 했다. 네트워크 흐름이나 인증 과정 등을 다시 정리를 한 것이라고 보면 된다. 그 후,책장이나 주변 사물들을 모조리 걷어내고 천천히 시험을 쳤다. 꽤 까다로운 문제도 존재했지만 공식문서를 참고할 수 있어서, 모르는 건 참고해서 답을 썼다.
그리고 메일로 Congratulations! 라는 내용이 보이고 바로 합격을 직감한 후, 점수를 보니 꽤 만족스러운 점수가 나와서 기뻤다. 어디서 틀린지는 모르겠지만, 아마 네트워크 쪽 하나 하고, CSR 쪽 하나가 틀린 것 같았다.
어쨌든 정말 원했던 CKA는 땄으니, 이제 남은건 AWS-SAA와 Terraform 자격증, 그리고 여건이 된다면 CKS도 올해 안에 따고 싶다. 올해 자격증 4개 따기...가능하겠지...?