[자격증] CKAD(Certified Kubernetes Application Developer) 취득 후기
[자격증] CKAD(Certified Kubernetes Application Developer) 취득 후기
안녕하세요? 정리하는 개발자 워니즈입니다. 이번시간에는 CKAD(Certified Kubernetes Application Developer)취득을 하여, 정리해보는 시간을 갖도록 하겠습니다. 시험에 대한 등록, 준비는 다음 포스팅을 참고 바랍니다.
필자가 생각했을 때, Kubernetes는 인프라의 미래이며 오늘날 많은 회사가 채택하는 기술입니다. 앞으로의 추세 기존의 레거시 애플리케이션을 클라우드 네이티브 앱으로 변환하거나, 새로이 구축을 진행하고 있습니다. Kubernetes는 이러한 앱 배포 및 관리와 관련하여 사용 할 수 있는 컨테이너 오케스트레이션 프레임 워크입니다.
필자는, 이러한 추세에 맞추어 지난번에는 CKA에 응시를 하여 취득을 하였고, 이번에는 직접 POD에 대한 config 설정이 주를 이루는 CKAD까지 취득하기로 마음을 먹었습니다. 결국 CKAD가지 취득을 완료하였고 이렇게 후기를 남깁니다.
1. CKAD란?
CKAD(Certified Kubernetes Application Developer) 역시 CNCF에서 kubernetes의 에코 시스템을 확장 할 수 있도록 개발한 인증 프로그램입니다.
CKAD는 클라우드 네이티브 애플리케이션을 쿠버네티스 환경에서 설계, 구축, 구성 및 노출을 하는 부분에 대한 인증을 합니다. 인증된 Kubernetes 애플리케이션 개발자는 애플리케이션 리소스를 정의하고 핵심 기본 요소를 사용하여 Kubernetes에서 확장 가능한 애플리케이션 및 도구를 빌드, 모니터링 및 문제를 해결 할 수 있음을 인증합니다.
CKAD의 기본 소양은 다음과 같습니다.
- Docker 또는 rkt와 같은 OCI 호환 컨테이너 런타임
- 클라우드 네이티브 애플리케이션 개념 및 아키텍처
- Python, Node.js, Go 또는 Java와 같은 프로그래밍 언어
시험 세부 정보는 다음과 같습니다.
- 13 % – 핵심 개념
- 18 % – 구성
- 10 % – 다중 컨테이너 포드
- 18 % – 관찰 가능성
- 20 % – 포드 설계
- 13 % – 서비스 및 네트워킹
- 8 % – 상태 지속성
이 시험은 직접 실습으로 진행하며 객관식이 존재하지 않습니다. 2시간 안에 19문제를 풀어야 하며 모든 문제에 대한 가중치가 다릅니다.
2. 시험 후기
시험준비는 Udemy의 과정을 통해서 진행했었습니다. 거기서 나오는 연습 문제들 (Practice) 위주로 풀이를 진행했고, CKA와 시험범위가 겹치지 않는 부분에 대해서만 각의를 수강했었습니다.
주로 Lightninglab과 MockExam에 대해서 완벽하게 100점을 맞을 때까지 5-6번은 반복해서 풀었던 것 같습니다.
필자가 봤을 때, 겹치지 않는 부분은 다음과 같습니다.
- pod 관찰 (Liveness, Readiness)
- pod 설계 (JOB, Cronjob)
- 상태 지속성 (Statefulset)
그런데 막상 시험에 나오는 부분에서 상태 지속성 부분은 출제 되지 않았습니다. 시험 등록과 스케쥴링 관련된 내용은 모두 CKA와 동일합니다. 지난번에는 오후 3시에 시험을 봤었는데, 생각보다 오전 시간을 날리는 경향이 있어서, 이번에는 아침 10시대로 시간을 잡았습니다.
지난 CKA 시험때는 감독관 지시중, 작업 관리자에서 현재 사용하고 있는 프로그램 목록을 보여주는 부분에서 애를 먹었었는데, 그 경험을 바탕으로 했더니 이번의 사전점검 시간은 딱 10분만 에 끝났습니다. 오히려 시험 시간 전에 끝났는데, 감독관이 그냥 진행해도 좋다고해서 1-2분 정도 시험전에 시작을 했었습니다.
시험이 시작되면, 대략 8번 정도의 문제까지는 간단하게 풀이할 수 있는 수준 이였던 것 같습니다. 기억에 남는 문제들은 다음과 같습니다.
1) pv생성, pvc생성 및 bound -> pod를 생성하여 claim 연결
2) networkpolicy를 통해서 pod에 대한 traffic 제어
3) deployment생성 및 svc를 통해 expose 시키기
4) pod에 대한 troubleshooting 및 liveness, readiness 적용하기
5) Cronjob을 수행시키기 (일부 옵션 지정하여 추가 )
전반적으로 kubernetes의 각 object들을 자유자제로 다룰 수 있는 부분에 대해서 많이 물어보는 시험인 것 같습니다. 시험이 끝나고 난후 후기를 정리하면 다음과 같습니다.
1) 시험시간이 짧습니다.
이번에는 이상하게 프로그램 오류인건지.. 남는 시간도 나오지 않고, 감독관도 따로 알려주지 않았습니다. 그냥 필자가 언제 시작한지를 기억하고 있어서, 대략 이정도 남았겠따 싶었을때마다 감독관에게 물어봤었습니다. 19문제긴 하지만, 후반부로 갈수록 지문이 대체로 길고, 생성 및 업데이트 해야되는 오브젝트들도 상당히 많이 있습니다. 이런부분에 대해서는 시간안배를 잘해서 먼저 쉬운 문제부터 푸는것도 좋은 방법인 것 같습니다 .
2) 요구조건들이 복잡합니다.
위에서도 말씀은 드렸지만, 요구하는 조건들이 상당 수 많이 있습니다. 더군다나, 모든 요구조건을 충족했다고 하더라도, namespace를 지정안하게 되버리면, 틀리게 되니 하나라도 놓치지 않도록 천천히 풀이를 해야됩니다.
3) 배점 관리를 잘해야됩니다.
시험시간이 짧고, 복잡한 요구조건들이 있더라도, 참으로 신기한것은 필자가 생각했을때, 점점더 복잡한 요구조건들일 수록 배점이 낮게 느껴졌습니다. 실제로 필자도 한문제는 풀이를 하지 못했었는데 배점을 보니 3점으로 지정이 되어있어서 과감히 패스를 했었습니다. 그렇기 때문에 우선적으로 풀이를 할수 있으면서 배점이 큰것을 완벽하게 풀이를 해두고, 나머지는 시간이 남을때 확인을 하는 방식이 좋은 것 같습니다.
3. 시험 결과
시험은 10분을 남기고, 종료를 했습니다. 뭔가 공부는 완벽하게 했다고 생각했는데 시험에서는 완벽하지 않은 듯한 느낌으로 마쳐서 떨리긴했습니다. 시험 시작으로부터 정확하게 36시간이 지나면 메일로 시험 결과에 대한 알람이 옵니다. 다행히 시험을 패스를 했습니다.
4. 마치며..
CKA와 CKAD를 취득하면서, 정말 많은 것을 배웠던 것 같습니다. 특히, Udemy에서 제공해주는 강의들은 웬만한 IT강의보다도 퀄리티가 높습니다. 그리고 쿠버네티스에 대한 강의와 더불어 기본적인 IT내용도 가르치기 때문에 많은 부분을 배울 수 있었습니다.
그리고 이번시험은 무엇보다도 객관식 시험이 아니라, 실습형 시험이기 때문에 좀더 재미와, 성취감이 높았던 것 같습니다. 그래도 이번을 통해서 계획했던 일들을 하나씩 이루어 내고 있어서 만족감은 상당히 높았습니다.
다음시간에는 영어를 제대로 공부해보는 시간을 채워나가도록 하겠습니다.