CKAD 실전 유형 정리(추가) — SA 연결, Docker Build, Docker Tar

2026. 2. 23. 23:56k8s

CKAD를 준비하다 보면 기본적인 Deployment, Service 외에
은근히 당황하는 유형이 있습니다.

특히 다음 3가지는 반드시 정리해두는 것이 좋습니다.

  • ServiceAccount와 Role 연결 (RBAC)
  • docker build
  • docker image를 tar 파일로 저장/로드

1️⃣ ServiceAccount와 Role 연결 (RBAC)

CKAD에서 가장 자주 등장하는 보안 문제 유형입니다.

기본 구조

Role → 권한 정의
RoleBinding → 연결
ServiceAccount → Pod가 사용

즉,

Pod → ServiceAccount → RoleBinding → Role

이렇게 연결됩니다.


예시 문제

namespace test에서
특정 Pod가 configmap을 get, list 할 수 있도록 구성하라


1. ServiceAccount 생성

apiVersion: v1
kind: ServiceAccount
metadata:
  name: app-sa
  namespace: test

2. Role 생성

apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: cm-reader
  namespace: test
rules:
- apiGroups: [""]
  resources: ["configmaps"]
  verbs: ["get", "list"]

3. RoleBinding 연결

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: cm-reader-binding
  namespace: test
subjects:
- kind: ServiceAccount
  name: app-sa
  namespace: test
roleRef:
  kind: Role
  name: cm-reader
  apiGroup: rbac.authorization.k8s.io

4. Pod에 ServiceAccount 적용

spec:
  serviceAccountName: app-sa

시험에서 자주 실수하는 부분

  • namespace 불일치
  • roleRef.apiGroup 누락
  • subjects.namespace 누락
  • Role 대신 ClusterRole 잘못 사용

RBAC는 CKAD에서 출제 빈도가 매우 높습니다.


2️⃣ docker build 문제

CKAD는 Kubernetes 중심 시험이지만
이미지를 직접 빌드해서 사용하는 문제가 나올 수 있습니다.


Dockerfile 예시

FROM nginx:alpine
COPY index.html /usr/share/nginx/html

이미지 빌드

docker build -t myapp:v1 .

Deployment에 적용

containers:
- name: web
  image: myapp:v1

주의사항

로컬에서 빌드한 이미지라면:

imagePullPolicy: Never

또는

레지스트리에 push 후 IfNotPresent 사용.


3️⃣ docker image tar 파일 만들기

오프라인 환경 또는 이미지 이동 문제에서 등장할 수 있습니다.


이미지 저장

docker save myapp:v1 -o myapp.tar

이미지 로드

docker load -i myapp.tar

containerd 환경일 경우

ctr images import myapp.tar

CKAD 출제 가능성 정리

유형 출제 가능성
ServiceAccount + RoleBinding 매우 높음
docker build 중간
docker save/load 낮음

마무리 정리

CKAD는 단순한 리소스 생성 시험이 아닙니다.
권한 연결, 이미지 관리, 실전 CLI 활용 능력을 함께 요구합니다.

특히 RBAC는 반드시 숙지해야 합니다.

시험 전 다음은 반드시 연습하세요.

  • kubectl create sa
  • kubectl create role
  • kubectl create rolebinding
  • docker build
  • docker save / load