Certificate Technical

CKA (Certified Kubernetes Administrator) 경험기 -> 합격기

최근에 Blog에 새로운 내용을 추가하기 어려웠던 이유가 제목과 같이 CKA 자격증 준비에 몰입하다보니, 늦어지게 되었다. 오늘 그 자격취득 경험기로 일단 새롭게 포스팅을 시작한다. (합격기? 낙방기?가 아닌 경험기는 아직 당락을 모르기 때문 ^^;;)

1. CKA?

이미 구글링으로 CKA에 대해서는 많은 정보가 있다. 작년 이맘때 쯤에는 1-2개 정도의 취득 경험기가 있었으나, 최근 1년 사이에 Kubernetes에 대한 도입이 여기저기 많이 확장되었고, 시험 자체에 대한 정보도 이제 많이 알려져서 특색있게 전달할 만한 내용이 있지는 않다.

그렇지만, 정보란 많으면 많을수록 좋듯이 나의 한문장이 필요한 누군가에게는 도움이 될 수도 있지 않을까 해서 정리를 시작해 본다.

응시과정

CKA는 Linux Foundation 에서 응시하는 수많은 과정중에 하나로, LinuxFoundation Portal에서 접수할 수 있다. 동양권에는 일본어, 중국어로 선택지원해서 응시가 가능하지만 아직 한국어는 없다. 그래도, 최근에는 Kubernetes.io 사이트에서 제공하는 Document에 대한 한글화가 매우 잘 되어 있는데, 이부분은 시험 내에 오픈북 처럼 사용할 수 있다.

그러나, 막상 해보면, 한글보다는 영어로 보게 된다. (영어를 정말 못하지만 영어가 친숙할 수 밖에 없는 이유는 음.. 읽어 보면 안다.. ) 어차피 개념에 대한 부분을 위해서 사이트를 접근하기 보다는, Quick Reference 형태가 필요한 마음인데… 그러다 보면 영문으로 구성된 설정된 내용에 더 눈이 가게 된다. (한글 개념에 대해서는 요새 Kubernetes 책은 널려 있다.)

일반적으로 $300 달러에 접수 가능하지만, 쿠폰 코드에 “INDEPENDENCE20”, “KUBERNETES25”, “KUBERNETES20” 등 기념일이나 일정에 따라 지급되는 코드를 입력하면 20% ~ 25% 정도의 할인을 받을 수 있다. (대충 여러개 찍어보는게 좋다. 회사에서는 합격시 자격지원이 가능하기에 없이 했어도 됐지만, 혹시나 낙방을 대비해서… 라도 알아두자)

접수 및 일정과정

구입된 접수 티켓은 1년 동안 유효하고, 1회 낙방할 경우 재 응시도 된다. 우선 접수는 일정을 조회해서 가능한 일자를 선택하고, 시간을 지정해서 조율하게 되어 있는데, 생각보다 바로 볼 수 있지 않다. 최소 2주 뒤에 부터 일자 선택이 가능하고, 시간은 일자마다 다르긴 한데 0시 ~ 24시 까지 가능하다.

국제적인 시험이라 시간에 대한 Timezone 설정이 중요하다. 한국시간기준으로 꼭 설정해서 잘못된 시간으로 예약되지 않도록 주의 하면 될 것 같다.

일정이 잡히면, 1일 이전에는 변경 취소가 가능했던 것 같은데… 아무런 이유없이 출석하지 않으면, 1회 소멸 되는 것으로 안내된다.

그 외 특별한 것은 없으나, 신분증빙에는 여권이 있으면 무난하게 확인 될 수 있으나, 여권따위 10년전 결혼할때를 끝으로 더이상 존재 하지 않는 나에겐 이과정에서 많이 힘들었다. 안내 문서상에는 국내 발급 운전면허증, 신분증도 된다고 되어 있고, 이런 경우 부가적으로 영문 이름이 표기된 은행 카드와 같이해서 증빙이 가능하다고 안내되어 있다. 아마도 한글을 인식하지 못하는 영어권의 감시역들을 배려한 행위들이라 하겠다.

해서, 이런 부분에서 행여나 어긋나 소중한 한번의 기회가 소멸될 지 몰라 걱정끝에 국제운전면허증을 발급 받았다. 경찰서에서 약 1만원과 사진으로 가능한데, 발급도 현장에서 바로 가능하다. 국제운전면허증을 여권 없이도 발급이 가능 했었다는 점에서 놀라웠지만, 전산으로 여권조회 후 진행하는 것으로 알게 되었다. 그러나, 10년, 15년 전에 만들었던 여권은 전산조회가 안되었다는.. 사실에 놀랐지만 일단 생성은 가능했다. (담당자 말로는 외국여행시에는 여권과 국내 면허증과 함께 국제운전면허증을 함께 소지해야 유효한다라고 했다)

시험 응시

총 3시간이 소요된다. 장소에 대해서 여러가지 검색을 하다가, 집에서는 애들과 함께 거실에 있는 책상에서 응시했을 생각을 하면, 급상승하는 시험난이도가 예상되어, 결국 근처 스터디 카페 2인실을 예약했다. 3시간에 약 1.5만원 정도 소요되었지만, 4면이 벽이어야 한다는 조건에도 만족하고, 부산스런 물건들도 없으니, 감시자의 요구에 맞춰 책상에 아무것도 없어야 한다는 내용까지 최적이었다.

심지어, 핸드폰도 시계도 불가하다고 하고, 책상에는 오직 랩탑, 마우스, 공유기 정도 까지 만이라고 한다. 스터디 룸에 있던 북거치대, 선풍기 조차 바닥으로 내려 달라고 요청했었다. 글이 써져있는 모든 항목은 불가한듯 하다.

그리고, 시험에 가장 궁금했던 웹캠에 대한 준비사항이 있었는데, 사실 사야 하나 고민했었고, 사서 다시 쓸일도 없겠는데 하며 어찌해야 하나 했는데 다행이 맥북 카메라 만으로도 충분했다. 사전에 컴퓨터 호환성 체크 과정에서도 가능한 것으로 이미 되었었지만, 장소 확인과정에서 맥북을 들고 번거롭게 360 회전을 2회 한다던지, 책상 아래 위 모든 면을 천천히 식별 가능하도록 비추는 과정에서 힘이 들지만, 시험은 응시 가능하다.

마지막으로 중요할 수 있는 내용은 시험은 총 3시간인데, 응시시간이 3시간이 아닌 진행시간이 3시간이다. 더 설명하면, 예약한 시간 15분 전부터 입장이 가능하며, 입장한 순간 부터 3시간이 적용되며, 입장 이후 위와 같은 상황 준비시간도 포함된다는 이야기다. 대략 30분 이상 소요되었다. 시험에 대한 준비를 3시간으로 가득 사용할 수 있다고 생각했다 라면, 미리 여유를 두는게 좋다.

시험 패턴

이 부분은 시험에 이미 접수해서 준비를 하고 있었다면, 사실 여러가지 경로로 많이 알고 있을 것이라, 특색 있을 만한 내용이 없지만 정보 측면에서 있었던 내용을 정리해보면, 사전 안내문과 같이 6개의 Cluster 환경에 접속을 한다. 접속하는 과정에는 문제 상단에 use-context 와 같은 context 변경하는 스크립트를 안내하고 있다. 복붙해서 꼭 실행하고 문제를 풀기 권한다. 클러스터 이름이 한글자 차이로 다르기 때문에 시험상황에 따라 긴장하면, 비슷하게 보인다고 실행하지 않고, 엄한 환경에다가 문제를 풀수도 있겠다 싶다.

2번째는, Udemy 환경에서 제공하는 KodeKloud 시뮬레이션 환경과는 다르게 상당히 빠르다. 추가 정보로, KodeKloud에서는 Master 노드에서 일반적으로 root 계정으로 작업하는 과정으로 진행 했었지만, 시험은 별도의 하나의 linux 머신에서 student 라는 계정으로 작업하기 때문에 일부 접근 과정에서는 sudo 를 사용하는 경우가 많다. root 패스워드는 당연히 알려주지 않고, sudo를 쓰는 것으로 권고 한다. 마찬가지고 특정 node에 접속해서 처리 하는 경우 node에 대한 ssh key 과정은 이미 되어 있으니 “ssh <nodename>” 정도로 별도의 key 없이 가능하다.

총 24문제가 출제되었고, 문제간에는 이동도 가능하고 문제에 플래그를 설정해서 다시 보고 싶을 때 빠르게 찾을 수 도 있다. 문제 1개는 연습과정에서도 전혀 만나지 못했던 문제가 있었는데, secret credential에 대한 CONFI 머시기를 하라는 거였는데, 영어의 문제인지, 아무리 내용을 이해하려고 해도 이해하지 못해서 결국 풀지 못했다. 궁금하다. 어떤 내용인지… 누군가 아는 사람이 있다면 댓글좀 부탁 ㅠ (영어의 한계였을 것 같다. 번역기를 탓해야 하나 ㅠ)

참고로, Chrome으로 응시하고, Chrome의 플러그인에 대해서는 제약이 없었다. Google 번역 플러그인(선택하고 버튼이 나오면 작은 팝업으로 번역되는 형식)을 알차게 사용했다. 그리고, 응시 전에 시험에는 필수로 설치해야 하는 플러그 인이 하나 있다. 접수하고 시스템 측정할 때 안내된다.

시험 패턴에는 요약하면,

  • Master, Worker Node에 Kubeadm 으로 설치 해서 Ready 되도록 구성 (kubeadm.config 파일을 사용해서)
  • pod, deployment 생성
  • 동작중인 pod, service를 nslookup 으로 결과 출력
  • deployment 생성 후 이미지 변경, 그리고 원복
  • Worker Node에 static pod 생성. (woker node kubelet에 static pod에 대한 path 설정이 없어서 이부분에서 고생)
  • service 생성
  • daemonset 생성 (Master Node에 대한 Toleration Effect NoSchedule 포함)
  • jsonpath 를 사용해서 출력 또는 정렬
  • emptyDir를 사용하는 문제로 식별되는데, 문제에는 emptyDir를 명시하지 않고, PV는 없지만, 특정 위치에 저장해야 한다. 라는 형식의 문제
  • initcontainer 에서 특정 파일을 만들고, container에서 그 파일이 있을 때에만 정상 동작 하는 방식을 만드는 형태

포스팅 하는 지금 시험본지 9시간이 안되었지만, 벌써 기억이 흐릿해 지고 있다. 대부분 문제의 난이도는 KodeKloud를 이수 했다면, 충분히 풀 수 있는 수준이다. 화면 UI/UX가 아마 처음이라, 이런부분에서 익숙해 지는데 시간이 소요될 뿐 대부분 직관적이고, 터미널 환경에서 해야 한다는 점에서 금방 적응하게 된다. 배점은 2점 부터 8점도 보았던거 같은데 다양하게 존재한다. 사실 지금 생각해 보면, 이게 이렇게 점수가 높나? 싶었던 내용도 있었던거 같고…

2. 마무리

Kubernetes를 시작한지는 1년 반정도 되었고, 자격 취득은 작년부터 하겠다고 했으나 이 핑계 저 핑계로 미루고 미뤄 이제서야 응시했다. 사실 합격하고 글을 쓰는게 기분도 더 나겠지만, 응시 방식 자체가 문제를 풀었어도 체점방식에 출력결과를 비교하는 방식이라 기대하지 못하게 오답이 되는 경우도 있을 것 같아, 결과는 예측하기는 쉽지 않은 것 같다.

다만, 자격 취득 이전에 지금까지 Kubernetes에 쏟았던 시간에 대한 정리였다고 생각하고 있고, 결과가 좋으면 더할 나위 없겠지만, 지금까지 투자한 노력에 대한 결과가 어떠하더라도 이번 도전 자체에는 잊지 못할 기억이 된 것 같다.

낙방기로 수정이 될지, 합격기로 수정이 될지 3일 안에 알려지겠지만, 다음시험은 CKAD로 해야 겠다는 생각은 확실히 들었다. ^^

— 합격으로 연락왔네요. 시험 응시시간 기준으로 36시간이네요. 이제 진짜 CKAD에 도전해야 겠습니다

7 comments

    1. 맞습니다. 9월부터 바뀐다길래.. 부지런히 따서 정리했습니다. 준비하고 계신다면 조만간 응시하셔서 좋은 결과 얻으시길 바랍니다

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

%d 블로거가 이것을 좋아합니다: