본문 바로가기

Server Infra/Kubernetes

Certified Kubernetes Application Developer(CKAD) 합격 후기

728x90

참조 링크

2021-09-28 이후 변경내용


  1. CKAD-exercises (시험 과목별 모의 문제 및 해결 방안 정리한 Github)

GitHub - dgkanatsios/CKAD-exercises: A set of exercises to prepare for Certified Kubernetes Application Developer exam by Cloud Native Computing Foundation

 

GitHub - dgkanatsios/CKAD-exercises: A set of exercises to prepare for Certified Kubernetes Application Developer exam by Cloud

A set of exercises to prepare for Certified Kubernetes Application Developer exam by Cloud Native Computing Foundation - GitHub - dgkanatsios/CKAD-exercises: A set of exercises to prepare for Certi...

github.com

  1. CKAD Udemy

Kubernetes Certified Application Developer (CKAD) Training

CKAD Program Changes: 2021 - Linux Foundation - Training

 

CKAD Program Changes: 2021 - Linux Foundation - Training

Thank you for your interest in Linux Foundation training and certification. We think we can better serve you from our China Training site. To access this site please click below. 感谢您对Linux Foundation培训的关注。为了更好地为您服务,

training.linuxfoundation.org

무엇을 공부했나?

CKA시험을 준비하며 배웠던 내용이 대부분 중복이기에 학습 자체는 오래 걸리지 않았다. 추가적인 범위는 Probe와 CronJob 정도이며 요구사항 많긴 하나 템플릿이나 동작 방식이 어려운 부분은 아니었던지라 금방 이해하고 넘어 갈 수 있었다.

위의 범위만 보아도 CKA가 확실히 범위가 넓긴 넓다. 다만, CKAD는 범위가 적은 대신 관련 Resource를 약간 딥다이브 하는 형태로 문제가 출제된다. 이렇다 보니 개인적으로 CKA보다 CKAD가 더 어렵게 느껴졌다.

2021-09-28에 유형이 변경되기에 아마 저 표도 조만간 달라지지 않을까?

준비 과정

CKA 준비하는 동안 공부했던 내용이 대부분 중복이라는 점을 활용해서 Udemy에 있는 강의중 일부는 스킵했다. kodekloud의 랩또한 cka에서 다루지 않은 부분만 진행 했고 Lighting과 Mock Labs을 중심으로 학습했다.

말이 Lighting이지 Mock보다 더 어려웠다.

CKAD는 웃긴게 문제 자체가 어렵지는 않다. 요구 사항 자체가 많고 지문이 길어서 문제를 이해하는데 시간이 오래 걸릴 뿐 이었다. 다만, 영어를 잘 하는 사람이라면 그닥 어렵지 않을것 같다.

문제 지문은 아래와 비슷하다.

  1. 어떠한 이름의 어떠한 이미지를 쓰는 파드가 필요하다.
  2. 파드는 내부의 로그를 만든다
  3. 파드의 또다른 컨테이너는 로그를 읽어서 별도의 파일에 써야한다
  4. 파드간의 볼륨은 공유되어야 한다
  5. 그리고 잘 구동 되는지 확인이 되야한다

위의 지문이 모두 영어로 쓸데없이 장황하게 쓰여있다.(지문이 길면 일단 현기증부터 오더라...)

그리고 구글링 하면서 찾은 후기에 등장하는 **CKAD-exercises** 를 정독했다. 간단한 사례별 커멘드를 작성해 놓았고 설명도 잘 되어 있어서 시험 응시전 한번더 정독하고 응시했는데 엄청 도움이 많이 됐다. 저 Github에 언급된 LivenessProbe 실패한 파드들 찾으라는 문제가 실제로 나왔다.

참고로 CKAD 시험 예약후 CKA와 동일하게 Killer.sh의 테스트 Labs을 두번 제공해준다. 이번에는 74/96점으로 합격이 나와서 한번만 진행했고 오답 체크만 했다.(사실 killer.sh 테스트 푼 당일 2021-09-25에 응시하려 했는데 시험 유형 바뀌는 탓인지 월요일까지 예약이 단 한타임 남아있었다)

시험 응시

CKA와 그냥 동일하다. 예약후 15분전 입장하면 감독관의 지시사항에 맟게 행동만 하면 그만이다. 지금까지 시험보던 중에 주의를 받은적이 없었는데 여기서 지문 읽으려 노트북에 얼굴을 너무 들이대서 인지 감독관이 좀 떨어지라고 주의를 주었다.(내 얼굴이 부담스러웠나보다..ㅜㅜ)

Cluster의 개수는 CKA보다 적다. 2시간동안 문제는 총 19문제를 풀어애 했는데 대부분 하나의 클러스터에서 작업하고 3~4문제 정도가 클러스터를 변경해서 작업한것 같다. 합격 커트라인은 CKA와 동일한 66% 이상의 점수이다.

점수는 83/100점으로 나름 준수했다. 이 시험은 틀린 문제를 알려주지 않아서 참 답답하다. 마지막에 검토를 할 당시 정상적으로 다 돌아가고 요구사항도 다 맞춘것 같았는데...

시험 후기

CKA를 응시하고 준수하게 합격했다면 덤으로 가져갈 수 있는 자격증임은 틀림 없다. 겹치는 부분도 많고 다른 부분이어 봐야 도큐먼트를 보면 대부분 나오니 아주 풀기 어려운 수준은 아니었다.

CKA는 뭔가 명확한 요구사항을 가지고 오는 고객사와 같다면 CKAD는 아주 두루뭉술하게 서술하는 좀 불편한 고객사 같은 느낌이었다. 요구조건도 많고 실수하기 좋게 문제가 출제된다.

그렇다 보니 CKA는 실제 시험응시하고 한시간 만에 시험 문제를 다 풀었는데 CKAD는 2시간을 전부 다 썼다. 요구조건에 맞춰서 Yaml도 고쳐줘야 하고 요구 조건들을 다 맞췄는지 확인하는데 시간이 좀 오래 걸린다.

추가 범위로 나오는 문제도 은근 까다로운게 Probe는 어떻게 잘 넘어 갔지만 CronJob 문제에서 Job에 사용하는 컨테이너를 뭘 써서 만들라는건지 아무리 봐도 못 찾아서...이건 아마 틀렸을거다.(문제 오류가 아니었을까...?)

시험에 대한 약간의 팁

이전 CKA취득 후기에 내용과는 약간 다른 방향의 팁이다.

  1. Context와 Namespace는 수시로 확인하자. 특히 Resource를 만들때 요구사항에 없더라도 Namespace는 명시해주는게 속 편하다.
  2. Pod와 Container 이름을 꼭 확인하자.
  3. CronJob문제는 정상적으로 잘 도는지 꼭 확인하자
  4. netpol 관련 문제면 Curl로 통신이 잘 되는지 확인하자
  5. 뭔가 지문이 길다 싶으면 여러번 확인하자. 이걸 하라는건지 말라는건지 표현이 모호하기에 표시해 놓고 마지막에 집중해서 확인하는것도 좋은 방법이다.
  6. ConfigMap이나 PV를 Mount할때 내부에 파일이 정상적인 위치에 있는지 확인하자
    kubectl exec <pod> -- ls /tmp/
    ​
    검토할때 발견해서 다행이지 중간에 Haproxy Sidecar를 사용하여 SVC와 연결하는 문제가 있었는데 haproxy.cfg마운트를 잘못 했음에도 정상동작 하였다.

CKA vs CKAD

두가지 시험을 보니 겹치는 것도 많고 둘다 뭔가 어설프게 비슷하다. 그렇다면 둘중 어떤것을 따야 할까인데 개인적으로 주머니 사정만 괜찮다면 CKA → CKAD 둘다 취득하는것도 좋은듯 싶다. 일단 겹쳐지는 부분도 많기도 하고 CKA를 공부했다면 CKAD의 난이도가 엄청나게 쉽게 느껴진다. 다만, 항간에 떠도는 소문에 의하면 CKAD는 CKA의 하위호환라는데 절대 아니다. AWS 시험으로 따지면 약간 스페셜리티와 비슷하달까?

CKA는 거시적으로 운영 관점에 있다면 CKAD는 정말 개발에 필요한 요소를 딥 다이브 한 느낌이다. 그렇기에 자신이 DevOps나 개발 포지션이다! 라면 CKAD를 운영, 인프라, 네트워크 담당이다 라면 CKA를 추천하고싶다.

728x90