ETC/Certification

CKA(Certified Kubernetes Administration) 자격증 취득 후기

[앙금빵] 2022. 3. 14.

22년 3월 10일 CKA(Certified Kubernetes Administration) 자격증을 취득하였다. 취득한 과정에 있어 내 자신을 돌아보며 글을 작성하였고 CKA 자격증을 취득하고자 하는 사람들에 대해 도움이 되길 바란다.

 

Background

On-Premise 환경에서 Cloud 환경으로 많이 전환되고 있듯이 기존 인프라 운영 관리 부분에 있어 점점 더 많은 회사들이 컨테이너 환경의 인프라를 도입하고 있다. 

 

아직 실무경험이 많지 않아 정확하게 어떤 이유로 쿠버네티스 플랫폼 시장이 급속도로 성장하고 있고 채택되고 있는지 피부에 와닿지는 않다.  

 

그렇지만, 시장의 반응은 거짓말하지 않는다. 컨테이너 시장의 성장률을 나타내는 아래 그래프와 같이 컨테이너 라는 기술이 기업에 있어 많은 가치를 제공해준다는 것을 증명한다.

 

빠르게 변화하는 IT 트렌드에 발맞추어 기술 경쟁력을 갖추어야 한다는 마인드로 쿠버네티스를 공부하기 시작했다. 경쟁력은 곧 더 많은 기회를 엿볼 수 있다는 의미이고 이는 곧 내 삶의 질을 올릴 수 있는 기회이기 때문이다.

 

나의 공부 과정 및 방법

쿠버네티스 스터디 참여

회사생활과 공부를 병행한다는 것은 결코 쉬운일이 아니다. 목표를 세우고 다짐하기는 쉽지만 그것을 행동으로 직접 실천하는 것은 다른 차원의 이야기이다.

 

그렇기에 같은 목적과 공부 방향을 가진 사람들과 함께 정해진 시간대에 정해진 목표량을 채우기 위해 강제성을 부여할 필요성을 느껴 스터디를 찾게 되었으며 나 포함 4명으로 도커/쿠버네티스 스터디를 진행하였다. 4명 모두 서로 다른 분야에 있는 사람들이었고 다른 분야의 세계에 대해 이야기를 들을 수 있었고 좀 더 넓은 시야로 세상을 바라볼 수 있는 기회가 되었다.

 

스터디 방식은 시중에 많이 팔리는 책을 두고 매주 한 챕터씩 분량을 정해 직접 공부해서 발표하는 방식으로 진행하였다. 공부하기로 합의한 책은 바로 "시작하세요 도커/쿠버네티스" 라는 책이다.

 

책이 꼼꼼하고 완벽하게 알려주지 않기에 해당 책을 읽고 이해가 되지 않는 부분을 이해하기 위해 추가로 책을 구매하였다. 그것은 "쿠버네티스 인 액션" 이라는 책이다. 한국어 버전으로 발행은 2020년이지만 실제 원문이 몇년 된 책이라 그것을 감안하고 보아야 한다. 그러나, 쿠버네티스 서비스에 대해 꼼꼼하게 원리적으로 잘 설명이 되어 있어 모르는 부분에 대해 추가적으로 공부하는데 큰 도움이 됬다. 

kubernetes in-action 1판

 

현재 저자가 책의 완성도를 높이기 위해 2판 버전을 연재하고 있는데 이는 https://www.manning.com/ 에서 확인할 수 있다. 현재 챕터 12까지 나와 있다. (본인은 해당 사이트에서 책을 구매하였다.)

만약 책 구매 의사가 있다면, 구글에 manning discount coupon을 검색하여 할인 쿠폰을 적용 후 구매하길 권장한다. 3만원 대 선에서 구매하였던 것으로 기억한다. 또한, 2판을 구매하면 1판 역시 e-book 형태로 볼 수 있다.

 

자격증 공부 자료

처음에 쿠버네티스를 공부 시작을 자격증 취득 목표로 하지 않았다. 스터디를 통한 시작하세요 도커/쿠버네티스 책을 한번 정독한 뒤 쿠버네티스 공부에 대한 Next Step이 필요하였고 이에, 자격증 취득을 목표로 두고 공부를 하였다.

 

자격증 취득에 도움이 되었던 자료들을 대해 공유해보겠다.

1. [Udemy] Certified Kubernetes Administrator(CKA) with Practice Test

 

 

Udemy에서 쿠버네티스 베스트 셀러 강의이다. 본인은 영어 듣기 부분에 있어 큰 어려움이 없다. 모든 강의를 다 듣지는 않았고 Practice Test를 푸는데 있어 모르고 부족한 개념들에 대해서는 강의를 듣고 다시 Practice Test를 진행하였다.

 

유데미 강의 구입시 CKA Test 환경을 제공받는다.  

https://kodekloud.com/

 

Practice Test에서 제공하는 대부분 문제들을 기계처럼 풀수 있는 수준까지 반복학습을 하였다.

특히, 마지막 Mock Exam 경우 1시간 안으로 3개의 시험을 100% 점수로 마무리할 수 있을 정도까지 준비하였다.

(단순 풀이법만 외운 것이 아닌, 풀이가 왜 이렇게 되는지 이해 기반으로 풀었다.)  

 

2. killer.sh

시험을 등록하게 되면 killer.sh 라는 사이트에서 모의 시험 환경을 제공받는다. 시험 환경과 매우 유사하며(거의 같음) 특히 매 문제마다 context 스위칭에 대해 체험할 수 있다. 또한 문제 구성들이 어렵지만 내용이 좋아 공부에 많은 도움이 된다. 해당 Simulator에서 시험 문제와 아주 흡사한 문제와 토픽에 대한 문제가 있었기에 시험 전 풀어보는 것을 강하게 권장한다. 

killer.sh 에서 Simulator 세션을 열게 되면 36시간 이용할 수 있게 된다. 2개의 Simulator가 제공되지만 2개 모두 동일한 문제로 구성되어 있다. 즉, 72시간 동안 실제 환경을 체험할 수 있다고도 볼 수 있다.

 

세션이 만료되면 문제에 대한 자세한 풀이 역시 제공된다. 여기서 출제되는 Pod Scheduling, Multi-container-pod, Network Policy, Persistent Volume, Role & Role binding 토픽 문제는 반드시 풀어보고 이해하자.

 

3. 유튜브

[Google Cloud Tech 채널]

한 재생 목록에 모든 내용을 담고 있지는 않는다. 그러나 몇몇 추가적으로 공부에 필요한 개념들에 대해 유튜브에 검색했을 때 여기에서 제공되는 영상들이 퀄리티가 아주 좋았다.

https://www.youtube.com/channel/UCJS9pqu9BzkAMNTmzNMNhvg

 

Google Cloud Tech

Helping you build what's next with secure infrastructure, developer tools, APIs, data analytics and machine learning.

www.youtube.com

 

Volume파트에서 Storage Class를 이용한 Volume 생성 부분에 대해 책을 읽어도, 구글링해도 감이 잘 오지 않았는데, 아래 영상을 보고 한번에 이해되었다. 기억이 강하게 남아 이렇게 공유한다.

https://www.youtube.com/watch?v=qktFhjJmFhg&ab_channel=GoogleCloudTech 

 

[따배런] 쿠버네티스 시리즈

쿠버네티스 아키텍처에 대해 전반적인 이해를 돕는데 큰 도움이 되었다. 특히, 이해하기 어려웠던 Ingress 부분과 Kube-Proxy 내용의 강의를 보았다.

 

강의 내용구성이 훌륭하다. 추가적으로 공부에 있어 회원 전용 동영상에 있는 내용 부분이 필요하여 결제하여 DNS, Network, Storage 부분에 대하여 추가적으로 영상을 보았다. 만약 쿠버네티스 서비스에 이해가 잘 가지 않는다면 해당 채널에 있는 영상들을 보는 것을 추천한다.

링크: https://www.youtube.com/channel/UC_VOQjI7mtQTEaTXXQIzLtQ

 

TTABAE-LEARN

리눅스 도커 쿠버네티스 클라우드 빅데이터 ICT 스터디를 통해 IT를 배우고 4차산업을 이끌어가는 그릇을 준비합시다. 강사 이성미가 전하는 ICT 이야기

www.youtube.com

 

시험 핵심 정보 요약

시험 시간: 2시간

시험 문제: 17문제

시험 기회: 2번 (1번 떨어져도 재시험 가능, Retake 기간 별도 존재하지 않음)

시험 응시 비용: $375 (Original Price)

구글에서 CKA discount Coupon을 검색하여 할인이 가장 많이 적용되는 쿠폰을 적용하여 시험을 치루는 것을 추천한다. 게다가 요즘 환율까지 올라서 시험비용이 더 비싸다.

 

시험 신원확인: 여권 혹은 신분증 + 신용카드 (본인은 신분증 + 신용카드로 신원확인을 진행)

신분증을 보여주면 Expiration Date를 보여달라고 하는데 한국 신분증에서는 신분증 생성일자만 있고 별도의 Expiration Date는 없다고 하니 그냥 넘어 갔다.

 

시험 장소: 시험을 치루는데 여러 제약조건이 있다. 괜히 시험 환경에서 발목잡혀 시험을 치룰 수 없는 불상사를 피하기 위해 본인은 독서실 스터디룸을 결제하여 시험을 치루었다.

 

본인 감독관은 아주 꼼꼼하게 시험 환경을 체크하였다. 아무것도 없는 독서실임에도 불구하고 이 과정에서 10분 가까이 소요되었다. (책상 밑, 키보드 아래, 벽 4개가 한번에 보일수 있도록, 각 1개 벽씩 보여주기.. )

시험 요구 환경: https://docs.linuxfoundation.org/tc-docs/certification/tips-cka-and-ckad

 

기타 Tip

(1) 마스크 착용 여부

마스크 쓰고 시험을 보는 것이 가능하다. 마스크 쓰고 있으면 감독관이 알아서 마스크 쓰고 볼거냐는 질문을 하는데 그렇다고 하면 마스크 앞뒤로 보여주면 된다.

 

(2) context-switch 숙지하기

매 문제마다 context-switch 를 하여 임하게 된다. 이를 진행하지 않는다면 주어진 문제 환경을 갖출 수 없다. 그렇기에 반드시 context switch에 대해 숙지하길 바란다. 모의 테스트 환경인 killer.sh를 통해서도 직접 경험할 수 있다.

 

(3) CKA Bookmark 등록

시험을 치는데 있어 하나의 추가 Tab을 사용할 수 있고, 쿠버네티스 공식 깃헙, Doc 사이트를 이용할 수 있다. 특정 토픽에 대해 공식 문서를 검색하는 과정에서 많은 시간이 소요되는데 이를 단축 시키기 위해 Bookmark 기능을 활용하자. 시험 환경에서 Bookmark 사용이 가능하다. 연습 문제 푸는데 있어 공식 문서를 활용하여 풀 수 있도록 노력하자. 공식 문서는 활용할 수 밖에 없다고 생각한다. imperative 명령어로 서비스 생성을 하는 것은 한계가 있고, 주어진 요건에 맞추기 위해서는 YAML 파일을 이용하여 서비스를 생성해야 한다. 문법 및 속성값들을 알기 위해 공식 문서를 이용하는 것은 필수라고 생각한다.

 

구글에 CKA Bookmark를 검색하여 저장하였다. 문제를 푸는데 있어 관련 토픽 공식 문서를 보고 빠르게 해결할 수 있는 능력을 키우자. 그렇지 않다면 시간이 부족하다. (Cheat Sheet는 꼭 필요하다.)

 

본인이 등록한 CKA Bookmark 주소:

https://gist.github.com/runlevl4/0921802e6c4e8f90bdc3a1434ee82af4

 

(4) 자격증 취득 Tip 참조 블로그

 

CKA(Certified Kubernetes Administrator) 합격 후기 및 팁 공유

https://blog.dudaji.com/kubernetes/2019/06/24/cka-acceptance-review-soonbee.html

CKA 시험 후기

https://augustkang.com/posts/review/cka-experience/

Kubernetes Certifications: CKAD and CKA Exam Tips

https://www.lullabot.com/articles/kubernetes-certifications-ckad-and-cka-exam-tips

 

(5) 시험 치르기 전 알아야 할 토픽 (개인 생각)

- Pod Scheduling

- etcd backup / restore

- cluster upgrade

- sidecar pattern

- PV, PVC, Storage Class ↔ Pod 연동

- Ingress Object ↔ Service Object 연동

- Network Policy

- Multi-container-Pod

 

 

부록. DKOS 스터디 참여

첫 사회생활은 통신사에서 영업/기획 부문에서 시작하였다. 업무적으로 클라우드 시장과 관련된 보고서를 작성하게 되는 업무를 맡게 되었고 이 과정 속에서 클라우드의 산업의 비전을 보았다. 이 당시, 직무를 막론하고 클라우드 산업과 관련된 일을 해보고 싶었다. 

 

남의 호주머니에서 돈을 꺼내는 것은 결코 쉬운일이 아니다. 누군가를 설득하기 위해 합당한 논리와 지식 수준을 갖추어야 한다. 그렇기에 관련 지식을 갖추어야 할 필요성을 강하게 느끼게 되었고 학습적으로 접근성이 높은 AWS를 공부하기로 결심하였다. 방대한 양의 서비스와 이쪽 분야에 대해 문외한이었던 나는 공부 방향의 갈피를 찾지 못했다. 비유하자면 미분방정식을 풀고 싶은데 선행적으로 어떤 수학적인 지식이 필요한지 몰랐다. 당시 지푸라기라도 잡는 심정으로 AWS Solution Architect 자격증 취득 목표로 공부하고 있었으며, 네트워크 카페를 들락나락 하다가 우연히 AWS 스터디를 모집하는 글을 보게 되었다. 그렇게 시작한 첫 스터디가 가시다님이 리드하시는 ANOS(AWS Network Online Study) 2기 스터디였다.  

 

스터디 내용 및 강의 퀄리티가 훌륭했다. 무료로 고퀄리티의 자료와 정보들을 얻을 수 있다는 부분에 있어 너무 감사했다. 이 스터디를 통해 공부의 방향을 잡는데 아주 큰 도움이 되었으며, 스터디 이후 AWS Solution Architect Associate 자격증을 취득하게 되었다.

ANOS 2기 스터디 내용

 

ANOS 2기 스터디 이후 도커/쿠버네티스 스터디를 모집하는 글을 보게 되었고 발빠르게 참여 신청을 하였다. 스터디 이름은 DKOS(Docker Kubernetes Online Study) 였다. 리더님께서 이 분야에 대해 처음 개설하는 스터디였다.

 

사실 이 당시 도커/쿠버네티스 라는 존재조차 몰랐었다. 당시 참여하게 된 이유는, 클라우드 관련 업계에 종사하시는 분이 많은 공수를 들여 스터디를 개설한다는 것은 그만큼 공부의 가치가 있는 분야임은 분명했기 때문이다.  이때 내 자신을 돌아보면 리눅스도 제대로 몰랐었으며 실무경험은 전혀 없었다. (이 당시 영업/기획 으로 부문에서 일하고 있었다.) 오로지 열정 하나만으로 스터디에 참여하였다.

 

스터디의 장점중 하나로 생각하는 부분은 과제이다. 매주 과제를 제출함으로서 공부에 대한 강제성을 부여한다는 점이다. (만약 과제 미제출시 스터디 제명이라는 무서운 벌칙이 있다.)  그렇기에 어떻게 해서라도 반드시 과제를 제출 할 수 있도록 노력하였다. 

 

스터디 당시(21년 6월 ~) 내용의 절반도 아닌 10% 채 이해 하지 못했다. 이 당시 리눅스도 제대로 몰랐었고 WEB/WAS에 대한 기본적인 개념도 없었었다. 덧셈 뺄셈도 제대로 하지도 못하는데 방정식을 풀려고 하니 당연한 결과였다. 그래도 꿋꿋이 녹화영상을 보며 과제 결과물을 제출하기 위해 많은 노력을 하였다. 비록 지금 이 순간 스터디 내용에 대해 이해는 잘 되지 않지만, 매주 보는 강의 내용과 자료들은 언젠가 나에게 큰 힘이 될 것이라는 생각이었다.

DKOS 1기 스터디 자료

 

엔지니어 부문으로 이직 이후  본격적으로 AWS 관련 업무를 할 수 있게 되었다. VM, 로드밸런서, WEB/WAS/DB 에 대해 실무적으로 경험을 할 수 있었다. 이후 어느정도 기초 지식을 갖추고 다시 쿠버네티스를 공부하게 되었을 때 비로소 스터디 자료에서 어떤 부분을 전달하고자 하는지 전보다 더 이해할 수 있었다. 책에서 공부하는데 있어 이해되지 않는 부분들이 있을때마다 꼭 한번은 DKOS 노션 자료들을 찾아보고 이를 적극적으로 활용하여 이해하도록 노력하였다. 쿠버네티스 아키텍처에 대한 설명 부분과 네트워크(Service, Ingress) 부분이 큰 도움이 되었다.

 

무엇보다 가장 도움이 되었던 것은 로컬 환경에서 쿠버네티스 환경을 구축할 수 있었다는 점이다. 리더(가시다)님께서 Vagrant를 이용한 쿠버네티스 설치 방법을 공유해 주셨다. 난해하고 많은 시간이 소요되는 쿠버네티스 설치 과정을 보다 쉽게(아주 쉽게) 쿠버네티스 환경(master node & worker node)을 구축할 수 있었다. 스터디 당시 설치하였던 쿠버네티스 로컬 환경은 지금까지도 공부하는데 있어 아주 잘 활용하고 있다.

 

새로운 로컬 환경에서 Vagrant를 이용해 k8s 환경을 구축해보려고 구글링을 통해 이것 저것 시도해 보았지만, 스터디 리더(가시다)님이 작성한 코드가 제일 깔끔하며 직관적이고, 무엇보다 설치 과정에서 에러가 나지 않았다. 스터디 당시 1.21 버전이었으나, 현재 가시다님 깃헙에서 vagrant를 이용한 1.23 버전을 설치할 수 있다.

설치 링크: https://github.com/gasida/KANS

 

GitHub - gasida/KANS: Kubernetes Advanced Networking Study with CloudNet@ Team

Kubernetes Advanced Networking Study with CloudNet@ Team - GitHub - gasida/KANS: Kubernetes Advanced Networking Study with CloudNet@ Team

github.com

 

 

마지막으로

쿠버네티스 플랫폼을 이용하여 주어진 요건에 맞추어 서비스를 구축해보는데 있어 큰 공부가 되었다. 아직 이해가 되지 않는 부분들도 많고 앞으로 공부해야 할 양들이 태산이다.

 

공부에 대한 강제성을 부여하기 위한 수단중 하나인 블로그 포스팅을 통해 쿠버네티스 관련 글을 기재할 예정이며 글을 보는 많은 사람들에게 조금이라도 도움되길 바란다.

댓글