CKA(Certified Kubernetes Administrator)란?
CKA(Certified Kubernetes Administrator)는 Kubernetes 관리자로서 K8S를 수행할 수 있는 기술, 지식 및 역량을 갖추고 있음을 보증하는 자격증이다. Linux Foundation에서 발급해주며 CKAD, CKA, CKS로 등급이 나뉜다.
- CKA : Certified Kubernetes Administrator, 공인 쿠버네티스 관리자
- CKAD : Certified Kubernetes Application Developer, 공인 쿠버네티스 애프리케이션 개발자
- CKS : Certified Kubernetes Security Specialist, 공인 쿠버네티스 보안 전문가(CKA를 보유해야 CKS 응시 가능)
시험 시간은 총 2시간으로, 온라인으로만 응시할 수 있다. 총 17문제가 주어지고 4점, 7점, 13 문제로 구성되어있다. 시험 문제는 다음 범위에서 출제된다.
시험 Tips!
CKA는 시험 환경 점검이 까다롭다는 후기가 특히 많았다.
1. 책장 담요로 가리기
시험 장소에 책장이 있으면 안되고, 책은 모두 밖으로 빼둬야한다는 후기들이 많았다. 필자는 스터디 룸을 빌리기는 돈이 아까웠고,,,, 컴퓨터 방에 책이 매우 많기 때문에 책들을 모두 어떻게 옮겨야 하나 걱정이 많았는데,,,,, 이때 담요/이불을 활용할 수 있었다! 책장에 담요/이불을 걸어 책이 보이지 않게 만들었고, 이에 대해서 감독관은 별다른 제지를 하지 않았다. (CKA, CKAD 모두 문제 없었음) 따라서 방에 책장이 있는 사람들에게는 담요나 이불로 책장의 책들을 안보이게 가리는 것을 추천한다! 그러면 책장의 책들을 모두 옮기는 수고를 덜 수 있다.
2. 모니터 사용하기
CKA는 시험 특성 상 화면이 클 수록, 공식 문서도 더 잘보이고, 더 수월하게 시험을 치룰 수 있다고 생각한다. 필자는 13인치 노트북을 사용하고 있기 때문에, 작은 화면으로 시험을 치루기는 굉장히 불편하다고 생각했고, 모니터를 활용하기로 했다. CKA는 듀얼 모니터를 사용하지 못하는 것이지, 모니터 자체를 사용하지 못하는 것은 아니다.
모니터를 연결하고, 노트북은 화면을 덮어두면 된다. 이를 위해 필자는 웹캠을 별도로 구매했고(쿠팡에서 만원 대에 구할 수 있다) 노트북을 덮어둔 상태로, 큰 모니터를 통해 시험을 수월하게 치룰 수 있었다.
3. 화면 3개로 분할하기
(큰 화면을 사용하고 있다는 전제 하에) 문제와 터미널, 공식문서를 3개의 화면으로 분할해서 사용하면 좋은 것 같다. 공식 문서를 봤다가 창을 내려서 터미널을 봤다가, 다시 공식 문서를 띄웠다가, 내렸다가 이런 식으로 진행하면 비효율적인 것 같다. 그래서 다음과 같이 화면을 3개로 분할해서 사용했더니 편하게 문제를 풀 수 있었다. 그러면 창을 올렸다 내렸다하는 수고를 덜 수 있다.
공부 방법
우선 너무나도 유명한, CKA를 준비한다면 국룰이라고 할 수 있는, Udemy 뭄샤드의 강의를 들었다. 개념적인 정리가 잘 되어있는 것도 있지만, 실습 환경과 예제를 제공해주는 것이 가장 큰 선택 이유이다.
쿠버네티스를 처음 공부하거나, 모르는 오브젝트/개념이 많다면, 강의를 처음부터 쭉 듣는 것을 추천한다. 그러나 쿠버네티스를 꽤 사용해봤고, 어느 정도 개념이 잡혀있다면 강의 듣는 것을 생략하고 바로 문제 풀이에 들어가는 것을 추천한다.
나는 스터디나 프로젝트에서 쿠버네티스를 사용해 본 경험이 있었다. 그렇다보니 개념적인 설명에서는 알고 있는 부분이 많았고, 절반 정도 들은 후에는 더 이상 의미가 없다고 느껴 바로 실습에 들어갔다.
강의에서 제공하는 Lightening Lab과 Mock Example은 실제 시험과 굉장히! 매우! 유사하다. 실제 시험과 문제 들이 대개 동일하고, 난이도도 유사하다. 따라서 Lighting Lab과 Mock Example을 2-3번 반복하면, 시험치는 데 크게 무리가 없을 것이라고 생각한다.
실습을 반복했다면, 인터넷을 통해 기출 문제를 찾아보는 것을 추천한다. 구글링을 해보면, 여러 사람들이 실제 나왔던 문제들을 많이 정리해두었고, 서로 문제가 유사하다(아니 똑같다고 봐도 될듯하다). 그래서 찾아보다 보면, ’아 ~ 여기 내에서 문제 다 나오겠구나‘하는 생각이 든다. 그리고 실제로 시험에 그러한 문제들이 모두 나온다. 나에게도 예상하지 못했던, 기출 문제에서 보지 못했던 새로운 문제는 나오지 않았던 것 같다. 상세한 기출 문제는 아래의 [시험 문제] 섹션을 확인하자.
그래서 결론을 정리하면 다음과 같다.
- Udemy 뭄샤드 강의를 듣는다. 쿠버네티스 활용 경험이 많다면 생략한다.
- Lightening Lab & Mock Example을 2-3번 반복한다.
- 기출 문제를 정리해서 시뮬레이션 & 풀이 정리를 반복한다.
시험 문제
기억나는 대로 작성해보면 다음과 같다.
1. 특정 Node가 Not Ready 상태이고, Ready 상태가 되도록 TroubleShooting하기
#고득점 문제이니, 반드시 맞추자.
ssh node01
systemctl status kubelet
systemctl restart kubelet
2. Cluster Upgrade 하라. 이때 Controlplane Node만 업그레이드를 진행하기
3. ETCD Snapshot Save & Restore
4. PVC 생성 후 Pod와 PVC를 연동(mount)하기
5. Log를 저장하는 Sidecar 컨테이너를 추가하여, Multi Container로 구성하기
6. 특정 노드에 Pod가 배포되도록 하기 : nodeSelector, nodeName 모두 가능하다.
7. nginx:1.16 이미지로 Deployment 생성 후, nginx:1.17로 업그레이드
kubectl set image deployment test-depoy nginx=nginx:1.17
8. Networkpolicy를 생성해서, 특정 Namespace의 Pod만 특정 Pod로의 Ingress를 허용하기
9. ServiceAccount, Role, Rolebinding 생성하기
10. 특정 Node를 drain해서 Pod를 다른 노드로 옮기고 SchedulingDisabled 상태로 만들기
11. Pod에서 ‘File Not Found’ log를 grep로 추출해서 파일로 저장하기
12. CPU 사용률이 가장 높은 Pod를 특정 label로 조회해서 파일로 저장하기
기출 문제에 대한 자세한 설명과 풀이는 잘 정리해둔 블로그가 있어 참고하면 좋을 것 같다.
느낀점
자주 사용하는 오브젝트들, 예를 들어 deployment, ingress, service 정도만 잘 알고있었다. 그 외에 권한과 관련된 ServiceAccount, (Cluster)Role, (Cluster)Rolebinding, NetworkPolicy 등에 대한 이해는 명확하지 못했던 것 같다.
본 시험을 계기로 쿠버네티스에서는 권한이 어떻게 설정되고 관리되는 지, 파드 레벨에서의 네트워크는 어떻게 다룰 수 있는 지 등에 대해 학습할 수 있었다. 정말 취득 만이 목적이라면 기출 문제를 달달 외우고 치뤄도 괜찮겠지만, 기출 문제만 보더라도, 공부하는 과정에서 모르는 문제가 나왔을 때, 공식 문서를 읽으면서 이해하려고 노력한다면 많은 걸 얻어갈 수 있는 시험이라고 생각한다.
합격 인증
결과적으로 95점으로 합격할 수 있었다.
조만간 CKAD 후기로 돌아올 예정!