본문 바로가기
클라우드/쿠버네티스

⚓ CKAD 정복 시리즈: 쿠버네티스 API의 작동 원리와 API 중단(Deprecation) 완벽 가이드

by gasbugs 2026. 1. 31.

안녕하세요! 쿠버네티스 자격증의 꽃, CKAD(Certified Kubernetes Application Developer) 시험을 준비하시는 여러분을 위해 준비했습니다. 🚀

시험에서 은근히 까다롭게 느껴질 수 있는 API 버전 체계API 중단(Deprecation) 정책에 대해 10분 만에 마스터할 수 있도록 상세히 정리해 드릴게요. 이 내용을 이해하면 리소스를 생성할 때 어떤 apiVersion을 써야 할지 더 이상 고민하지 않게 될 거예요!


1. 쿠버네티스의 심장, API 서버 이해하기 💓

쿠버네티스의 모든 동작은 kube-apiserver를 통해 이루어집니다. 우리가 kubectl 명령어를 치든, 대시보드를 클릭하든, 결국은 API 서버에 HTTP 요청을 보내는 것이죠.

쿠버네티스 API는 수많은 리소스(Pod, Deployment, Service 등)를 관리하기 위해 API 그룹으로 나뉩니다.

  • Core(Legacy) 그룹: /api/v1 경로를 사용하며 Pod, Service, ConfigMap 등이 포함됩니다.
  • Named 그룹: /apis/$GROUP_NAME/$VERSION 경로를 사용하며 Deployment(apps/v1), Job(batch/v1) 등이 포함됩니다.

2. API 버전의 3단계 진화 과정 🌱

쿠버네티스 API는 안정성에 따라 세 가지 단계를 거칩니다. YAML 파일을 작성할 때 이 단계를 확인하는 것이 중요해요!

단계 특징 안정성
Alpha (v1alpha1) 초기 단계, 기본적으로 비활성화됨. 버그 가능성 높음. ❌ 낮음
Beta (v1beta1) 충분한 테스트 완료. 기본 활성화되나 변경 가능성 있음. ⚠️ 보통
Stable (v1) 최종 완성 단계. 안정적이며 오랜 기간 지원됨. ✅ 높음

3. API 중단(Deprecation) 정책: 왜 중요할까? ⚠️

쿠버네티스는 계속 발전하기 때문에, 오래된 API 버전은 더 이상 사용되지 않게 됩니다(Deprecation). CKAD 시험에서 특히 주의해야 할 점은 "사용 중인 클러스터 버전에서 특정 API가 삭제(Removed)되었을 때" 대응하는 능력입니다.

💡 꼭 기억해야 할 중단 규칙

  1. Stable API는 최소 12개월 또는 3개 릴리스 동안 유지된 후 중단됩니다.
  2. Beta API는 최소 9개월 또는 3개 릴리스 동안 유지된 후 중단됩니다.
  3. API 버전이 중단(Deprecated)되었다고 해서 바로 사라지는 것은 아니지만, 향후 삭제될 예정이므로 최신 버전으로 교체해야 합니다.

4. CKAD 시험 실전 팁: API 정보 확인하기 🛠️

시험 도중 "특정 리소스를 만들어야 하는데 어떤 apiVersion을 써야 하지?"라고 당황할 때 사용할 수 있는 마법의 명령어들입니다.

① 현재 지원되는 API 버전 확인

Bash

kubectl api-versions

 

이 명령어를 통해 클러스터가 지원하는 모든 group/version 목록을 볼 수 있습니다.

② 리소스별 API 그룹 및 버전 확인

Bash

kubectl api-resources

 

각 리소스(Deploy, Po, Ing 등)가 어떤 API 그룹에 속해 있는지, 그리고 SHORTNAMES가 무엇인지 한눈에 보여줍니다.

③ 특정 리소스의 상세 설명과 버전 확인

Bash

kubectl explain deployment

 

이 명령어는 리소스의 구조뿐만 아니라 상단에 해당 리소스의 최신 GROUP과 VERSION을 명시해 줍니다.


5. API 중단 대응 시나리오 (예시: Ingress) 📋

예를 들어, 과거에는 Ingress를 만들 때 extensions/v1beta1을 썼지만, 최신 버전에서는 networking.k8s.io/v1을 사용해야 합니다.

[잘못된 예시 - 이전 버전]

YAML

apiVersion: extensions/v1beta1  # ❌ 삭제된 버전일 수 있음
kind: Ingress
...

 

[올바른 예시 - 최신 버전]

YAML

apiVersion: networking.k8s.io/v1 # ✅ 권장되는 Stable 버전
kind: Ingress
...

 

시험에서 특정 버전으로 생성하라는 명시가 없다면, 항상 kubectl explain을 통해 확인한 최신 Stable 버전을 사용하는 것이 가장 안전합니다! ✅


🌟 요약 및 마무리

  1. 쿠버네티스 API는 Alpha -> Beta -> Stable 단계를 거칩니다.
  2. kubectl api-resources와 kubectl explain은 시험장에서 여러분의 가장 친한 친구입니다.
  3. Deprecation은 더 나은 기능을 위한 변화입니다. 당황하지 말고 최신 API 그룹을 확인하세요.

이 내용을 숙지하신다면 CKAD 시험에서 API 관련 문제는 문제없이 해결하실 수 있을 거예요. 여러분의 합격을 진심으로 응원합니다! 🎊