Certified Kubernetes Application Developer (CKAD) #1 시험 환경: kubectl 마스터와 dry-run, generators

K8s 실무 트랙 26편으로 클러스터를 직접 굴려 보고 KCNA 시리즈 9편으로 클라우드 네이티브의 큰 그림을 객관식으로 검증했다면, 그다음은 터미널 위에서 직접 매니페스트를 만들고 고치는 실력을 증명할 차례입니다. CNCF 쿠버네티스 자격증 가운데 앱 개발자 관점의 실기 시험이 **Certified Kubernetes Application Developer (CKAD)**입니다. 이 시리즈는 CKAD 합격에 필요한 모든 도메인을 21편으로 풀어내는 트랙입니다.

KCNA가 개념을 고르는 객관식이었다면, CKAD는 빈 터미널에 직접 답을 만들어 내는 실기입니다. 그래서 이 첫 글은 시험이 무엇을 묻는지뿐 아니라, 2시간을 어떻게 운영할지를 가르는 kubectl 환경 셋업까지 함께 다루겠습니다. 이 셋업이 합격과 불합격을 가르는 경우가 많습니다.

CKAD는 어떤 자격증인가 #

CKAD는 쿠버네티스 위에 애플리케이션을 설계하고 배포하고 운영하는 능력을 실기로 검증하는 자격증입니다. 클러스터 자체를 설치하거나 control plane을 복구하는 운영자 영역은 CKA가 다루고, CKAD는 그 위에서 앱을 돌리는 개발자의 일에 집중합니다. 다음 같은 작업을 빈 터미널에서 제한 시간 안에 끝낼 수 있는지를 봅니다.

  • 멀티 컨테이너 Pod를 설계하고 init container와 sidecar를 배치한다
  • Deployment를 롤링 업데이트하고 문제가 생기면 롤백한다
  • ConfigMap과 Secret을 env 또는 volume으로 주입한다
  • liveness와 readiness probe를 정확한 형식으로 붙인다
  • SecurityContext로 컨테이너 권한을 제한한다
  • Service와 NetworkPolicy로 통신 경로를 연다

이 시험을 통과한 사람은 매니페스트를 외워서 쓰는 것이 아니라, kubectl과 공식 문서를 빠르게 조합해 원하는 리소스를 만들어 낼 수 있습니다.

어떤 사람에게 가치가 있는가 #

직군효용
백엔드 / 앱 개발자쿠버네티스 위 배포를 직접 다루는 실무 증명
DevOps / 플랫폼 엔지니어CKA로 가기 전 앱 레이어 실기 감각 확보
SRE앱 배포와 트러블슈팅의 손 빠르기 검증
클라우드 네이티브 전환 팀매니페스트 작성 표준을 갖춘 인력

KCNA가 개념 입문이었다면 CKAD는 첫 실기 자격증입니다. CKA,CKS로 이어지는 실기 3종의 출발점이며, 여기서 익히는 kubectl 속도와 dry-run 습관이 이후 두 시험에도 그대로 쓰입니다.

시험 구조 #

CKAD 시험의 표면 정보는 짧게 외워둘 만합니다.

항목
형식실기(performance-based). 실제 클러스터에서 작업
문항 수약 15〜20개 작업(task)
시험 시간2시간
합격선66%
응시료$395 USD (재시험 1회 포함)
유효 기간2년
응시 자격없음 (누구나 응시 가능)
문서 열람시험 중 kubernetes.io/docs 등 공식 문서 열람 허용
응시 방식온라인 감독(PSI). 원격 터미널
쿠버네티스 버전응시 시점의 최신 마이너 버전 기준(예약 시 확인)

KCNA와 결정적으로 다른 점 #

KCNA는 객관식이라 개념을 고르면 됐지만, CKAD는 빈 터미널에 직접 리소스를 만들어 채점 스크립트가 그 결과를 검사합니다. 외워서 쓰는 시험이 아니라 만들어 내는 시험이라, 같은 지식이라도 손이 느리면 시간이 모자랍니다. 그래서 이 시리즈는 개념 설명마다 kubectl 명령과 매니페스트를 함께 두어, 읽는 것이 아니라 따라 치며 익히도록 구성하겠습니다.

문서 열람이 허용된다는 것의 의미 #

CKAD는 시험 중 공식 문서 열람이 허용됩니다. 그래서 모든 YAML 필드를 외울 필요는 없습니다. 그러나 문서를 뒤지는 시간도 시험 시간이므로, 자주 쓰는 리소스는 generator로 뼈대를 즉시 만들고 문서는 세부 필드를 확인하는 용도로만 쓰는 것이 합격 전략입니다.

시험 도메인의 비중 #

CKAD의 출제 범위는 공식 시험 커리큘럼에 5개 도메인으로 정리되어 있습니다.

#도메인비중시리즈 매핑
1Application Design and Build20%#2 , #3 , #4
2Application Deployment20%#5#10
3Application Observability and Maintenance15%#11 , #12
4Application Environment, Configuration and Security25%#13#17
5Services and Networking20%#18 , #19

가장 큰 도메인은 **Application Environment, Configuration and Security(25%)**로, ConfigMap,Secret,SecurityContext,리소스 관리가 여기에 모여 있습니다. 그다음이 설계,배포,네트워킹이 각각 20%이고, 관측이 15%입니다. 비중이 그대로 학습 시간 배분의 가이드입니다.

kubectl 환경 마스터 #

CKAD의 절반은 지식이고 절반은 속도입니다. 시험 시작과 동시에 다음 셋업을 해 두면 작업당 수십 초씩 아낍니다.

alias와 환경 변수 #

# kubectl을 k로
alias k=kubectl

# dry-run + YAML 출력을 do로
export do="--dry-run=client -o yaml"

# 즉시 삭제를 now로 (Pod를 빠르게 지우고 다시 만들 때)
export now="--force --grace-period=0"

이렇게 두면 k run nginx --image=nginx $do > pod.yaml처럼 매니페스트 뼈대를 한 줄로 뽑아낼 수 있습니다. 시험 환경의 기본 셸에는 k alias와 bash 자동완성이 이미 설정되어 있는 경우가 많지만, 없으면 첫 1분에 직접 설정합니다.

# 자동완성 (k 까지 확장)
source <(kubectl completion bash)
complete -o default -F __start_kubectl k

generators: 빈 매니페스트를 손으로 쓰지 않는다 #

CKAD에서 매니페스트를 처음부터 손으로 쓰는 사람은 시간을 잃습니다. 대부분의 리소스는 명령형 generator로 뼈대를 만든 뒤 필요한 필드만 고치는 편이 빠릅니다.

# Pod 매니페스트 뼈대
k run nginx --image=nginx $do > pod.yaml

# Deployment 뼈대 (replicas 포함)
k create deploy web --image=nginx --replicas=3 $do > deploy.yaml

# Job / CronJob 뼈대
k create job pi --image=perl $do > job.yaml
k create cronjob report --image=busybox --schedule="*/5 * * * *" $do > cj.yaml

# ConfigMap / Secret
k create configmap app-config --from-literal=KEY=value $do > cm.yaml
k create secret generic app-secret --from-literal=PASSWORD=1234 $do > secret.yaml

# Service (Pod/Deployment 노출)
k expose deploy web --port=80 --target-port=8080 $do > svc.yaml

kubectl explain: 문서보다 빠른 필드 확인 #

필드 경로가 헷갈릴 때는 브라우저로 문서를 여는 것보다 kubectl explain이 빠른 경우가 많습니다.

k explain pod.spec.containers.resources
k explain deployment.spec.strategy --recursive

vim 셋업: YAML 들여쓰기 사고 방지 #

매니페스트를 직접 편집할 때 탭과 공백이 섞이면 파싱 오류가 납니다. 시험 시작 시 ~/.vimrc에 다음을 넣어 둡니다.

set expandtab
set tabstop=2
set shiftwidth=2
set number

context 전환을 가장 먼저 확인한다 #

각 작업은 지정된 클러스터/네임스페이스에서 풀어야 채점됩니다. 문제마다 제시되는 kubectl config use-context ... 명령을 먼저 실행하는 습관이 오답을 막습니다.

k config use-context <문제에서 지정한 컨텍스트>
k config set-context --current --namespace=<문제 네임스페이스>

학습 전략 #

1) 읽지 말고 친다 #

이 시리즈의 모든 명령과 매니페스트는 직접 따라 치며 익히는 것을 전제로 합니다. minikube나 kind로 로컬 클러스터를 띄워 두고, 글의 예제를 그대로 실행해 결과를 확인하겠습니다. CKAD는 손에 익은 만큼 점수가 나옵니다.

2) dry-run을 기본 습관으로 #

매니페스트가 필요한 거의 모든 작업은 k ... $do > file.yaml로 시작합니다. 이 습관이 들면 시험에서 빈 화면을 마주할 일이 없습니다.

3) 부분 점수를 노린다 #

CKAD는 작업 단위로 채점되며 일부 작업은 부분 점수가 있습니다. 한 작업에 막히면 표시해 두고 다음으로 넘어간 뒤, 쉬운 작업부터 확실히 점수를 쌓는 운영이 합격선을 넘기는 길입니다. 시간 관리는 #20에서 자세히 다루겠습니다.

4) 모의고사는 후반에 #

본 시리즈를 한 바퀴 돌고 나면 #21에 풀스케일 실기 모의고사를 두었습니다. 추가 연습이 필요하면 killercoda의 CKAD 시나리오나 응시권에 포함된 killer.sh 모의 환경이 신뢰 기준입니다.

등록과 응시 환경 #

등록 절차 #

  1. Linux Foundation 교육 포털에서 CKAD 구매. 자주 진행되는 할인 행사를 기다리면 저렴하게 구매 가능
  2. 응시권에 포함된 killer.sh 모의 시험 2회를 활용. 실제 시험과 거의 같은 환경
  3. PSI 감독 시스템에서 응시일 예약
  4. 응시 전 시스템 호환성 검사(브라우저,웹캠,네트워크) 통과

온라인 감독 응시 준비 #

CKAD는 원격 터미널에 접속해 작업하는 온라인 감독 시험입니다.

  • 신분증. 영문 표기가 있는 여권이 가장 안전. 이름이 등록 정보와 정확히 일치해야 함
  • 응시 환경. 책상 위 모든 물건 치움, 듀얼 모니터는 한 대만 사용, 가족,룸메이트 출입 차단
  • 시스템 점검. 응시 30분 전 입실해 백그라운드 앱을 모두 종료. 안정적인 유선 네트워크 권장

정리 #

이번 글에서 잡은 것:

  • CKAD는 앱 개발자 관점의 첫 실기 자격증. 빈 터미널에 직접 리소스를 만들어 내는 시험
  • 약 15〜20개 작업 / 2시간 / 66% / $395(재시험 1회 포함) / 2년 유효. 시험 중 공식 문서 열람 허용
  • 5개 도메인. Design and Build(20%), Deployment(20%), Observability and Maintenance(15%), Environment,Configuration,Security(25%), Services and Networking(20%)
  • kubectl 셋업. alias k, do(dry-run), now(즉시 삭제), generator, explain, vim 들여쓰기, context 전환
  • 학습 전략. 읽지 말고 치기. dry-run 기본화. 부분 점수 노리기. 모의고사는 후반

다음: Pod와 컨테이너 라이프사이클 #

환경은 잡았습니다. 이제 CKAD의 가장 작은 단위인 Pod로 들어갑니다.

#2 Pod와 컨테이너 라이프사이클: restart policy와 컨테이너 상태에서는 Pod의 생애 주기(Pending,Running,Succeeded,Failed), restartPolicy(Always,OnFailure,Never)가 동작에 미치는 영향, 컨테이너 상태(Waiting,Running,Terminated)와 종료 코드 읽는 법, 그리고 시험에서 자주 나오는 “이 Pod가 왜 재시작을 반복하는가” 유형까지 직접 만들어 보며 정리하겠습니다.

X