CKA
개요
Certificated Kubernetes Administrator
https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/
CNCF에서 발급하는 공인 Kubernetes 운영 자격증이다.
클러스터 구축, 파드 관리, 장애 대응 등의 실무에서 접할 수 있는 문제들을 실기 형식으로 풀어나감으로써 역량을 증명할 수 있다.
특징
- 핸즈온
- 무조건 실습 환경으로 진행된다.
- 실제 문제 대응 능력을 파악할 수 있다.
- 클러스터 환경 다루기
- CKAD와 다르게, 클러스터 환경의 문제를 대응하는 말 그대로 엔지니어를 위한 문제가 준비되어 있다.
범위
2024.11.25부터 적용되는 시험 범위라고 했으나.. 어느새 보니 25년 1월달로 밀렸다.
- 스토리지 – 10%
- 스토리지 클래스, 동적 프로비저닝
- 볼륨 모드, 볼륨에 대한 접근과 요청 정책
- 영구 볼륨과 볼륨 요청 관리
- 트러블슈팅 – 30%
- 클러스터와 노드 트러블슈팅
- 컴포넌트 트러블슈팅
- 클러스터, 애플리케이션 리소스 사용량 모니터링
- 컨테이너 출력 관리
- 서비스와 네트워크 트러블슈팅
- 워크로드와 스케줄링 – 15%
- 디플로이먼트 이해, 롤링 업데이트과 롤백
- 컨피그맵과 시크릿으로 애플리케이션 설정
- 워크로드 오토스케일링
- 견고한, 자가 복구하는 애플리케이션을 위한 이전 버전(primitives)의 방법
- 파드 스케줄링, 배치(리소스 제한, 어피니티 등)
- 클러스터 아키텍쳐, 설치와 설정 – 25%
- RBAC
- 클러스터 배포를 위한 기본 인프라 프로비저닝
- 클러스터 설치를 위한 kubeadm
- 클러스터 라이프사이클 관리
- 고가용성 클러스터 관리
- 컴포넌트 설치를 위한 헬름, 커스토마이즈
- CNI, CSI, CRI 등의 인터페이스 이해
- 오퍼레이터 설치와 CRD 이해
- 서비스와 네트워킹 – 20%
- 파드 연결
- 네트워크 정책 강황
- 서비스 타입과 엔드포인트
- 인그레스 트래픽 관리를 위한 게이트웨이 api
- 인그레스 리소스와 컨트롤러
- CoreDNS
추정 변경사항
스토리지
동적 프로비저닝 개념이 생겼다.
기본적인 볼륨 요청 방법이 사라졌다.
애플리케이션에 설정하는 항목이 빠졌다.
트러블슈팅
그냥 표현들만 바뀐 것 같고, 크게 바뀐 건 없을 것 같다.
로깅이 모니터링으로 바뀌었다 정도인데, 평가하려면 어차피 로그를 남기는 방식밖에 없을 듯..
워크로드
별로 바뀐 게 없다.
스케줄링에 대해 조금 더 상세한 문제가 나올 가능성은 있어 보인다.
어피니티, 테인트, 리소스 제한, 토폴로지 등이 들어가지 않을까 한다.
클러스터 아키텍처
업그레이드나 연결 등을 라이프사이클 관리라고 퉁치는 듯.
가장 단골 항목이었던 etcd가 관리 항목이 사라졌다.
그러나 다른 항목에 그냥 퉁쳐친 것인지는 알 수 없다.
각종 인터페이스에 대한 이해와, CRD의 이해까지 이제 요구된다.
또한 관련 툴인 헬름과 커스토마이즈의 사용법을 묻는 문제가 나올 것으로 생각된다.
사실 혼자 공부하면서 cka의 범위가 진정한 쿠버네티스 전문가는 아닌 것 같다 생각했다.
쿠버네티스의 모든 개념을 알아야 하는 것은 아니라고 느꼈기 때문인데, 이제는 좀 범위가 확실히 늘어나서 그럴싸해지지 않나 싶기는 하다.
네트워크
적절한 cni 고르기가 빠졌다.
인그레스 항목이 두 개로 늘었는데, 게이트웨이 api 설정하는 게 중시되는 듯.
- 스토리지 – 10%
- 스토리지 클래스, 영구 볼륨
- 볼륨 모드, 볼륨에 대한 접근과 요청 정책
- 기본적인 영구 볼륨 요청
- 애플리케이션에 영구 스토리지 설정
- 트러블슈팅 – 30%
- 클러스터와 노드 로깅
- 애플리케이션 모니터링
- 컨테이너 에러, 출력 로깅
- 애플리케이션 실패 트러블슈팅
- 클러스터 컴포넌트 실패 트러블슈팅
- 네트워크 트러블슈팅
- 워크로드와 스케줄링 – 15%
- 디플로이먼트 이해, 롤링 업데이트과 롤백
- 컨피그맵과 시크릿으로 애플리케이션 설정
- 애플리케이션 스케일
- 견고한, 자가 복구하는 애플리케이션을 위한 이전 버전(primitives)의 방법
- 리소스 제한이 파드 스케줄링에 끼치는 영향
- 양식 관리 및 템플릿 툴 사용
- 클러스터 아키텍쳐, 설치와 설정 – 25%
- RBAC
- 클러스터 설치를 위한 kubeadm
- 고가용성 클러스터 관리
- 클러스터 배포를 위한 기본 인프라 프로비저닝
- kubeadm으로 클러스터 업그레이드
- etcd 백업과 복구
- 서비스와 네트워킹 – 20%
- 노드 네트워크 설정
- 파드 연결
- 서비스 타입과 엔드포인트
- 인그레스
- CoreDNS
- 적절한 CNI 선택
공부 방법
뭄샤드 옹님 도움 받기
방법에 정도가 있을 리가 있겠냐마는, 나는 개인적으로 뭄샤드의 강의를 확실하게 1회독은 하고 들어가는 게 좋다고 생각한다.
실습환경 제공과 문제 타게팅형 풀이가 핵심 이유이다.
즉, 쿠버네티스 자체를 익히는 공부 외에도 시험을 위한 공부도 결국 필요는 하다는 것이다.
그러나 나는 결국 강의를 수강하지 않았다.
아래 있는 킬러코다 해보면서, 문서 읽다보니 그냥 익혀져서 굳이 필요성을 느끼지 못했다.
killer.sh
아주 잘 알려진 매운맛 cka 예비 사이트.
이후에는 실제 시험 환경을 느끼고, 문제 방식 감을 조금 더 잡을 수 있도록 killer.sh 문제를 풀어보는 것이 좋다고 생각한다.
이 문제들은 실제 유형보다 훨씬 어렵게 나오고, 그래서 자신의 기본기를 더 파악하는데 도움된다.
단순하게 자격증만 따고 끝이길 바라는 사람들에게는 그렇게 유효한 방법은 아닐 수도 있겠다.
cka 시험을 구매하면 2 세션을 무료로 사용할 수 있게 되는데, 이것만 하더라도 충분하다.
킬러코다 문제 풀기
아래 실습환경에 나와 있는 킬러코다에서는 기본적으로 몇 가지의 예제 문제를 제공해주고 있다.
어느 정도 개념이 잡혀있다면 바로 이 문제들을 풀어가며 준비를 하는 것도 괜찮을 것 같다.
killercoda
문서 읽기
나는 깊게 들어가고 싶은 분야에서는 일단 파고들다 보니 공식 문서를 읽으면서 진행하고 있는데..
이거 절대 처음 공부하는 사람한테는 추천하지 않는다.
문서가 생각보다 정리가 잘 안 돼있는 느낌이 있다.
이 사람 저 사람 손을 너무 많이 타서 설명 방식이 저마다 다르다.
나는 이걸 시도하다 살짝 감이 잡힌 이후로 킬러코다 문제 풀기로 넘어갔다.
시험 세팅
코테 보듯이 주변에 아무것도 없게 두기.
감독이 철저하게 진행되기 때문에 그냥 스터디룸을 하나 빌리는 것이 가장 마음이 편하다.
책상에 아무것도 없게 하고, 가방이나 옷들도 입지 않을 거면 스터디룸 밖으로 꺼내두라고 지시한다.
그러니 최대한 비우고 가는 편이 좋다.
VIM 세팅
vm으로 시험을 보니 중요한 것 중 하나가 편한 에디터를 사용하는 것이다.
vm에는 vim 세팅이 전혀 돼있지 않은 관계로 관련한 세팅을 직접 해주어야만 한다.
set et
set ts=2
set sw=2
set sts=2
set ai
set si
set nu
syntax on
사실 이것들은 내가 항상 해두는 vim 세팅이라 정확하게 뭐가 뭔지는 잘 모른다.
탭을 스페이스로 바꾸고, 탭 크기를 2로 만들고, 자동 들여쓰기, 숫자 매기기 등의 요소들이 들어있다.
터미널 스크립트 설정
뭐.. 굳이 다른 거 쓸 사람은 없다고 생각하는데 결국 bash를 사용하게 될 것이다.
export do='--dry-run=client -o yaml'
export now='--force --grace-period 0'
위 두 환경 변수 정도 등록해두면 아주 유용하게 사용할 수 있다.
참고 자료
실습 환경
다양한 사이트들이 무료로 쿠버네티스를 실습할 수 있는 환경을 제공한다.
비용 문제가 있다보니 시간 제한을 두고 제공해준다.
- 킬러코다
- 플레이그라운드
- 카타코다
- 2022년 5월 이후 Katacoda는 사라졌다.