들어가며
2019년부터 DevOps 엔지니어로 커리어를 쌓기 시작한 지 어느새 4년차가 되었다. 작년까지 AWS DevOps와 GCP DevOps 자격증을 취득하였고, 올해는 어떤 새로운 자격증을 취득하면 좋을까 하다가 동료 선임님께서 Certified Kubernetes Administrator(이하 CKA)라는 자격증을 추천해 주셨다.
CKA란?
CKA는 Cloud Native Computing Foundation(CNCF)와 Linux Foundation이 협업하여 만든 Kubernetes 관리자 자격증이다. Kubernetes를 구성하고 운영하면서 필요한 지식 전반에 대해서 확인하는 시험이며, 시험 방식은 위에서 언급한 두 CSP 자격증과는 달리 100% hands-on으로 평가하는 시험이다. 시험은 Chrome 브라우저를 통해 원격으로 응시가 가능하며, 시험 시간은 120분이다. Kubernetes Official Documentation을 보면서 시험을 볼 수 있어 검색 능력이 꽤나 중요하다. 합격 기준 점수는 66점이며, 자격증 만료 기한은 합격 후 3년이다. 응시료는 375달러로, 가격이 아주 사악하다.
CKA 응시는 다른 자격증 시험과는 달리 결제를 먼저 하고 나면, 결제 시점부터 1년 간 2번의 시험에 자유롭게 응시가 가능하다. 따라서, 한 번 불합격해도 한 번의 기회가 더 주어진다. 나도 작년 7월에 미리 결제를 해 놓고 해를 넘긴 4월이 되어서야 시험을 응시했다.
https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/
Certified Kubernetes Administrator (CKA) Exam | Linux Foundation
Training in skills, knowledge, and competency to perform the responsibilities of Kubernetes administrators.
training.linuxfoundation.org
Background
본인은 회사에서 2019년부터 CSP Managed Kubernetes service 인 EKS, GKE, AKS를 고루 3년정도 사용해 본 경험이 있다. 그래서 기본적인 CI/CD, MSA 및 Outer Architecture 구성에 대한 지식은 갖고 있는 상태에서 자격증 준비를 시작했다.
만약 Kubernetes에 대한 지식이 전무하다면 아래의 Udemy 강의를 통해 전반적인 개념 정리를 한 번 하고, KodeKloud 실습을 통해 학습하는 걸 추천한다.
공부 방법
Udemy 강의
회사 선임님께서 이 강의를 보고 준비하셨다고 알려주셨다. CKA 자격증을 준비하는 사람들 사이에서는 거의 다 이 강의를 기본으로 볼 정도로 강의의 질이 좋다. 인도인 강사의 영어가 약간 헷갈릴 때도 있지만, 영어 자막도 제공하고(몇 개의 강의는 자동번역된 자막이 kubernetes, pod, replicaset 등을 잘못 보여주는 경우가 있기는 하다) 이해하기 쉽도록 여러 비유와 자세한 그림들로 개념을 설명한다. Kubernetes에 대한 개념이 부족한 입문자에게 추천한다. 나는 전체 강의의 반정도인 security 섹션까지 강의를 듣다가 기존에 알고 있는 내용도 있고 시간이 부족해 뒤에서 설명하는 kodekloud 실습을 통해 공부하였다.
https://www.udemy.com/course/certified-kubernetes-administrator-with-practice-tests/
KodeKloud Training
Udemy 강의와 함께 무료로 제공하는 Hands-on 사이트이다. Kubernetes 입문자들은 실습해볼 수 있는 초기 kubernetes 환경을 구성하기가 쉽지 않은데, 이 사이트에서는 주제별로 kubernetes 환경을 만들어 주고 문제를 풀며 해당 주제를 실습해볼 수 있도록 하는 서비스를 제공하여 에포트를 줄여준다. 백각이 불여일행이라고, 나에게는 아무리 강의를 듣고 지식을 깨우쳐도 한번 실습해보느니만 못했다. 그래서 중간에 Udemy 강의 보기를 그만두고 KodeKloud 문제 풀기에만 집중했다. Hands-on을 진행하며 모르는 문제들은 Solution을 별도로 정리하는 방식으로 공부했다.
시험 전에는 Lightening Lab과 Mock Exam을 2번씩 풀어보고 응시를 했고, 실제로 합격에 많은 도움이 되었다.
Learn DevOps Online | Kode Kloud
In Browser You don’t need advanced equipment to use our labs. The labs will be delivered through your browser, so you don’t need a powerful computer.
kodekloud.com
시험 후기
시험 환경
위에서 말했다시피, 시험은 집에서 M1 Macbook Pro를 이용하여 원격으로 응시했다. 응시 전 Linux foundation 페이지에서 compatibility test를 하여 시험 응시가 가능한 컴퓨터 환경인지 확인할 수 있고, 그 test에서 웹캠, 화면, 음성 공유용 Google Chrome 확장 프로그램을 설치할 수 있다. 듀얼 모니터로는 응시가 불가하다는 글도 봤는데, 나는 듀얼 모니터로 응시했고, 별다른 제재는 없었다. 다만 시험 전 화면 및 웹캠 공유가 잘 안됐는데, 원격 감독관(Proctor)이 채팅으로 OS가 뭐냐고 물어보더니 MacOS라고 하니까 설정 방법을 알려주었고, 설명대로 따라하니 정상적으로 화면 공유가 잘 되었다. 설정 내용은 System Prefernece - Security & Privacy - Privacy 탭에서 Camera, Microphone, Screen Recording 에 Chrome 앱을 추가하여 Chrome 확장 프로그램이 웹캠, 마이크, 화면에 접근할 수 있도록 하는 설정이었다.
화면 공유가 정상적으로 되면 신분증으로 신원 확인을 진행한다. 여권을 보여주면 신용카드나 기타 다른 추가 인증을 진행하지 않아도 되니 마음 편하게 여권을 준비하도록 하자.
신원 확인 후에는 감독관이 응시 환경을 확인할 수 있도록 웹캠을 천천히 돌려 주변을 찍어달라고 요청한다. 테이블에는 시험과 관련없는 물건들은 모두 치워야 하고, 테이블에서 시험을 친다면 테이블 밑과 노트북 거치대 및 키보드 아래도 들어서 보여달라고 요청한다.
주의 사항
- 휴대폰은 시험 공간과 다른 곳에 두고 웹캠으로 휴대폰의 위치를 보여달라고 한다.
- 시험 중에 Kubernetes Docs page(https://kubernetes.io/docs/home/)를 볼 수 있는데, Kubernetes Docs 페이지를 여러 탭을 열어서 볼 수는 없다. 나는 시험 중에 여러 탭을 열어놓고 문서를 봤는데, 감독관이 하나의 탭으로만 문서를 확인할 수 있다고 제재했다.
- 시험 화면 내에서 메모장 기능을 제공한다. 나는 Kubernetes docs에서 cli를 메모장으로 복사한 후 문제 별 변수를 수정하는 용도로 사용했다.
- Mac OS 같은 경우는 복사, 붙여넣기가 cmd + c, cmd + v로밖에 되지 않는다.
- 시험 공간에 다른 사람이 들어와선 안되고, 혼잣말이라도 소리를 내는 것을 금지한다. 음성 뿐만 아니라 테이블을 두드리는 소리 등의 청각 신호도 의사소통의 수단이 될 수 있기 때문에 내서는 안된다고 안내하므로 주의한다.
- 시험 중에 투명한 용기에 담긴 액체를 마시는 것은 가능하다. 나는 2L 생수 페트병을 가져왔는데, 라벨을 제거해달라고 지시해서 제거하고 물을 반입할 수 있었다.
- 시험 중에 화장실을 다녀오는 것이 가능하다. 가기 전에 감독관에게 화장실을 다녀온다고 메시지를 보내고 다녀올 수 있다고 하는데, 실제로 다녀오지는 않았다.
- 시험 중에 모르는 문제는 좌측 하단에 문제 아래의 Flag 버튼으로 별도의 표시를 하고 넘어갈 수 있다. 좌측 상단의 문제 목록을 클릭하면, 자유롭게 원하는 문제로 이동할 수 있다.
- 문제 별로 클러스터가 다르기 때문에 문제마다 config 설정을 해줘야 한다. config 설정 cli는 문제에서 제공된다.
- 시험 종료 15분 전에 감독관이 남은 시간을 알려주고, 종료시간 전에 시험을 종료하고 싶다면 감독관에게 종료한다고 요청하면 된다.
시험 문제
문제는 총 17문제가 나왔고, 문제마다 4%, 7%, 13%로 배점이 달랐다. 문제를 자세히 서술할 수 없지만 대략적으로 나온 주제에 대해서 적어 보았다.
- Deployment
- Ingress
- Networkpolicy
- kubectl top
- Clusterrole, Service Account, ClusterRoleBinding
- Service
- Sidecar Container
- PV, PVC
나는 이 문제의 클러스터에 접근이 불가하여 문제를 풀 수가 없어서 감독관에게 문의했지만, 감독관은 기술 관련한 질문은 받지 않아 별 수 없이 문제를 풀지 못하고 시험 후에 Jira 티켓을 생성하여 문의하였다.
해당 문제는 지원팀에서 확인 후 내가 만약 시험에 불합격하면 무료로 한 번의 기회를 더 주겠다는 답변을 받았다. - Node troubleshooting
- Cluster version upgrade
- etcd
- Pod
시험 결과
시험 점수는 시험 시작 시간 24시간 후에 이메일로 알려준다. 나는 80점을 맞아 66점 커트라인을 넘겨 합격했다. 자격증의 진위 여부는 credly.com에서 할 수 있고, 자격증 pdf 파일은 linux foundation training portal에서 다운로드 받을 수 있다.
마치며
합격 후에 돌아보니 현업에서 Kubernetes를 다뤄본 경험이 있는 엔지니어는 그리 어렵지 않게 합격할 수 있을 것이라고 느꼈다. 평소 업무에서도 kubernetes manifest를 복사하거나 헷갈리는 개념이 있을 때(요즘은 PDB와 EKS Node Autoscaling의 관계가 헷갈린다), 혹은 kubectl cli 옵션을 확인할 때 Kubernetes docs를 자주 들여다봐서 익숙하기 때문이다. 시험이 부담스럽고 뭔지 모르게 공부가 더 필요할 것 같고 합격할 실력이 아니라고 느껴지는 이유는 사악한 가격 때문이라고 생각한다.
'CKA' 카테고리의 다른 글
Mock Exam 2 (0) | 2022.03.29 |
---|---|
Practice Test (0) | 2022.02.28 |
PersistentVolume, PersistentVolumeClaim, StorageClass (0) | 2022.02.17 |
Cluster Installation using kubeadm (0) | 2022.02.15 |
CoreDNS in Kubernetes (0) | 2022.02.15 |