엔지니어링/Kubernetes

[CKA] Certified Kubernetes Administrator 자격 취득 후기

joon95 2023. 7. 8. 15:16
반응형

서론

쿠버네티스를 처음 접했던 것은 대학교 3학년(2019) 졸업작품 때이다. 당시에는 app, db, svc, ing 서비스를 올리고 프로메테우스/그라파나를 통해 클라우드 모니터링부분을 다뤘었다. 이 후 취업을 하고 본격적으로 쿠버네티스 프로젝트를 진행하게 된건 2021년3월부터인데 벌써 2년4개월의 시간이 흘렀고 CKA 자격증이라는 것을 알게 되었다.(회사에서도 클라우드 사업을 위해 어느정도 CKA자격을 가진 인력이 필요로 했음)

 

무튼, 시험을 본 자로써 어디에 초점을 두고 공부해야하는지 글을 남기려한다.

준비기간

실제 자격증 준비 시간은 약 2.5일

필자는 그동안 프로젝트에서 쿠버네티스를 경험해왔기에 짧은 시간 준비를 하고 시험을 쳤다.

(실제 시험 수준은 너무 쉬웠다는거...+영어질문 해석에 오류가..좀)

검색해보니 유데미교육이 엄청많던데...사람들 2달,3주 준비한다길래 Pass...

CKA 신청을 하면 Killer.sh 이라는곳에서 무료로 2번 세션을 받아 실제 시험과 비슷한 환경에서 테스트를 할 수 있다고해서 Killer.sh을 이용하였다.

CKA 시험 핵심

요즘은 누구나 쿠버네티스에 컨테이너를 올리고, 서비스를 노출시키고, 볼륨을 마운트한다는 등의 액션은 충분히 할 수 있을 텐데, 이 시험에서 더 부각되었던 것은 Cluster Administrator로써의 더 상세한 통신관리라고 생각된다. (필자가 지금 껏 해오던 것은 CKA 보다는 CKAD(Kubernetes Certified Application Developer)로써의 Role이 상당히 일치했던 것)

 

그리고 시험시간은 총 120분인데 필자는 90분에 끝났으니 난이도는 쉬운편이였다.

 

아무튼 이 시험을 보고 나니 요구하는 내용을 좀 알겠다.

  • Multi Container Volume Shared
  • NetworkPolicy
  • TroublesShooting(K8S)
  • Cluster Upgrade & Worker Node Join
  • Etcd Backup&Restore
  • Scale In&Out
  • Static-Pod
  • Certificate
  • RBAC(Role Based Access Control)
  • Basic (Pod, Deploy, DaemonSet, StatefulSet, Secret, ConfigMap, PersistentVolume, PersistentVolumeClaim, Ingress, Service)

Killer.sh

필자는 Killer.sh로 준비하였는데, 문제를 딱 보면 말문이 막힌다(영어)

다행히 정답과 풀이과정을 모두 정리한 사이트가 있다.(크롬 번역기 필수..ㅋㅋ) 다들 검색해보셨듯이 Killer.sh에서 말하는 시험의 난이도는 상당하다.... 하지만 겁먹지말라.. 필자도 해냇으니..!!!

 

먼저 이 테스트 세션에서 배울 수 있는 내용을 보면(편하게 문제 순서대로^^)

  1. Cluster 정보를 추출할 수 있는가? (kubectl 사용/미사용)
  2. Master Node에 파드를 기동할 수 있는가? (Tolerations)
  3. pod 스케일 조정 (kubectl scale)
  4. readiness, liveness 활용
  5. pod 상태 정렬 (kubectl --sort-by)
  6. 스토리지를 mount 해라 (Deploy, Pvc, PV)
  7. 리소스 모니터링 (kubectl top)
  8. 클러스터 상태 체크 (Process, static-pod, pod 구분 및 dns 종류)
  9. 마스터노드의 스케줄링 서비스가 중단되었을 때 마스터노드에서 Pod 기동하기 (Static-pod 개념을 알자)
  10. RBAC 서비스계정 역할 부여 (k auth can-i 로 검증하기)
  11. DaemonSet 생성
  12. 파드를 모든 워커노드에 1개만 분배하기 (podAntiAffinity)
  13. 다중 컨테이너 / 파드 공유 볼륨 (emptyDir)
  14. 클러스터 정보 체크 (서비스 CIDR, 네트워크 컨피그 파일 경로)
  15. 이벤트 로깅 (kubectl get events, 컨테이너 죽이기:crictl stop [containerId])
  16. API Resources (kubectl api-resources)
  17. 컨테이너 RuntimeType 찾기 (crictl inspect [containerId])
  18. 트러블슈팅 kubelet 장애 (confing 경로를 잘 찾아서 해야함)
  19. Secret 생성 및 마운트 (+마스터노드에 띄우기)
  20. 클러스터 버전 업그레이드 및 클러스터 가입 (apt-get / kubectl token create --print-join-command, 여기문제에는 kubeadm은 없어서 따로 해봐야함 drain/uncordon)
  21. Static-pod (마스터노드 manifests에 yaml을 두어 올리는 것, expose 로 서비스 생성)
  22. 인증서 유효기간 확인 및 업데이트 (마스터 노드에서 인증서를 추출 : openssl x509 -in [파일.crt] -noout -text, 인증서 업데이트 : kubeadm certs renew)
  23. kubelet 클라이언트/서버 인증서 정보 (/var/lib/kubelet/pki)
  24. NetworkPolicy (Egress 구간 제어)
  25. ETCD backup&restore

내용이.. 많다..ㅎㅎㅎㅎㅎㅎㅎㅎㅎ하하핳핳ㅎㅎ

하지만 그만큼 재밌는 경험을 하게 되었고, 무엇보다 다양한 영어질문을 읽고 해석하는 훈련이...되어간다. 그리고 120분이 지나면 세션을 재시작하여 시간을 체크 할 수 있다.(필자는 이걸 늦게 알아서 두번째 세션에서 120분 테스트해봄)

 

+CKA는 17문제고 killer.sh는 25문제이기 때문에 당연히 다 풀 수는 없었다.

하지만 겁먹지말고 시험보라!

KillerCoda

killercoda는 killer.sh 사이트에서 돌아다니다가 우연히 알게되었는데, 약 12케이스의 CKA 문제가 준비되어있다. 간단히 워밍업 정도의 내용으로 쉬운 편이고 여기서 새로 알게된건 priorityclass(우선순위)에 대해 알게 되었다. 옵션이 있는 건 알았는데 class로 정의하고 쓴다니....ㅎ

 

---잠시 시간을 내어 풀어보면 좋다---

마치며

만약 이 시험을 한 단어로 요약해보자면 스케줄링이라고 말하고 싶다.

항해를 떠나는 선장(Kubelet)님들에게 내 짐을 맡겨주세요... 라고 

반응형