상세 컨텐츠

본문 제목

25.04.14. 쿠버네티스 Deployment 실습 정리 🚀

AWS CLOUD SCHOOL 9기

by AI Engineer crystal 2025. 4. 14. 16:21

본문

 

이번 실습에서는 쿠버네티스에서 Deployment를 이용한 애플리케이션 배포와 관리, 그리고 버전 업데이트, 롤백, 이미지 프리로드 등의 실전 스킬을 익혔습니다.


📌 목차

  1. Deployment란?
  2. Deployment 작성 및 적용
  3. ImagePull 에러 해결 방법
  4. 배포 상태 및 기록 확인
  5. 버전 업데이트 & 롤백
  6. Deployment 전략 (RollingUpdate vs Recreate)

Deployment란?

Deployment는 다음 기능을 제공합니다:

  • 고정된 수의 Pod를 유지 (→ 내부적으로 ReplicaSet 사용)
  • 롤링 업데이트버전 롤백
  • 선언형 방식으로 안정적인 배포 관리

✅ ReplicaSet과 거의 동일하지만, Deployment는 업데이트/롤백 기능까지 포함된 상위 리소스입니다.


Deployment 작성 및 적용

✅ aws9deploy.yml 예시

apiVersion: apps/v1
kind: Deployment
metadata:
  name: aws9deploy
spec:
  replicas: 4
  selector:
    matchLabels:
      app: web  # (1) 아래 Pod 템플릿과 일치해야 함
  template:
    metadata:
      labels:
        app: web  # (1)과 동일해야 함!
    spec:
      containers:
        - name: aws9ctn
          image: brian24/aws9:bluer

적용

kubectl apply -f aws9deploy.yml

ImagePull 에러 해결 방법

만약 이미지가 정상적으로 pull되지 않으면 아래 명령어로 삭제 후 조치합니다:

kubectl delete -f aws9deploy.yml

그리고 모든 노드에서 수동으로 이미지 pull:

docker pull brian24/aws9:blue
docker pull brian24/aws9:green

다시 적용:

kubectl apply -f aws9deploy.yml

배포 상태 및 기록 확인

kubectl rollout status deploy aws9deploy

배포 히스토리 확인:

kubectl rollout history deploy aws9deploy

버전 업데이트 & 롤백

✅ 이미지 업데이트

kubectl set image deploy aws9deploy aws9ctn=brian24/aws9:green

업데이트 후 실제 Pod와 ReplicaSet 확인:

kubectl get pod,rs,deploy

✅ 페이지 접근 테스트

curl <Pod IP>

예:

curl 192.168.104.5

출력:

<font color="green">GREEN PAGE</font>

✅ 롤백

kubectl rollout undo deploy aws9deploy

이전 버전으로 쉽게 복구됩니다.


Deployment 전략 (RollingUpdate vs Recreate)

kubectl describe deploy aws9deploy

🔄 RollingUpdate (기본값)

  • 일부 Pod를 지우고 새로운 버전을 순차적으로 배포
  • 서비스 중단 없이 배포 가능
  • 단점: 일시적으로 구버전/신버전이 혼재
strategy:
  type: RollingUpdate
  rollingUpdate:
    maxUnavailable: 1
    maxSurge: 1

🔁 Recreate

  • 기존 버전을 모두 삭제 후 새 버전을 배포
  • 완전히 새로 시작하지만, 배포 중에는 서비스 중단 발생 가능
strategy:
  type: Recreate

✅ 마무리

Deployment는 실무에서 **지속적 배포(CD)**에 꼭 필요한 기능입니다.
이번 실습에서는 Deployment의 기초부터 업데이트/롤백, 전략 설정까지 중요한 부분을 다뤘습니다.

쿠버네티스에서 Deployment를 잘 활용하면 안정적이고 유연한 서비스 배포가 가능합니다.
선언형 배포 + 자동화된 롤링 업데이트 = 😎 실무 필수 스킬!

관련글 더보기