0Pricing
Docker & DevOps Fundamentals · 강의

상태 비저장 앱을 위한 배포

배포를 사용하여 상태 비저장 애플리케이션을 관리하고, 롤링 업데이트와 롤백을 수행하세요.

상태 비저장 앱을 위한 배포은(는) CoddyKit의 무료 Docker & DevOps Fundamentals 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Docker & DevOps Fundamentals 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Docker & DevOps Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

Kubernetes 배포 만나기

Kubernetes의 기본 개념인 배포에 오신 것을 환영합니다! 배포는 상태 비저장 애플리케이션을 관리할 때 사용하는 대표적인 리소스입니다.

배포를 애플리케이션의 설계도라고 생각해 보세요. 실행할 애플리케이션 복제본 수와 중단 없이 복제본을 업데이트하는 방법을 Kubernetes에 알려 줍니다.

상태 비저장 앱을 위한 배포 — 일러스트레이션 1

포드와 ReplicaSets를 넘어

이제 포드(가장 작은 단위)와 특정 개수의 포드를 유지하는 ReplicaSets에 대해 배웠습니다.

배포는 ReplicaSet 위에서 동작하며 다음과 같은 더 높은 수준의 추상화를 제공합니다.

  • ReplicaSets 생성 및 업데이트
  • 애플리케이션의 새 버전 배포
  • 문제가 발생했을 때 이전 버전으로 롤백

덕분에 애플리케이션을 훨씬 쉽고 안전하게 관리할 수 있습니다.

배포 YAML 살펴보기

다른 Kubernetes 리소스와 마찬가지로 배포도 YAML을 사용해 정의합니다. 기본 구조를 살펴보겠습니다.

  • apiVersion: Kubernetes API 버전을 지정합니다(예: apps/v1).
  • kind: 배포 리소스에서는 항상 Deployment입니다.
  • metadata: 배포의 name과 선택적 labels 같은 정보를 포함합니다.

이 필드를 사용해 Kubernetes가 배포를 식별하고 구성합니다.

복제본 및 템플릿 지정

배포의 핵심은 spec 섹션입니다. 여기에서 다음을 정의합니다.

  • replicas: 애플리케이션에 필요한 동일한 포드의 개수입니다.
  • selector: 배포가 관리할 포드를 찾는 방법입니다(레이블 사용).
  • template: 각 포드의 컨테이너, 볼륨 등을 설명하는 포드 정의입니다.

배포는 template을 사용해 새 포드를 생성합니다.

Nginx 배포

다음은 Nginx 웹 서버를 위한 간단한 배포 매니페스트입니다. 이 정의는 Nginx 포드 3개가 실행되도록 유지하라고 Kubernetes에 지시합니다.

각 부분을 이해해 보세요!

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

배포 생성

배포 YAML 파일(예: nginx-deployment.yaml)이 있으면 kubectl apply 명령을 사용해 Kubernetes 클러스터에 배포를 생성할 수 있습니다.

그러면 Kubernetes가 원하는 개수의 포드를 생성하고 유지합니다.

kubectl apply -f nginx-deployment.yaml

다음 명령으로 상태를 확인할 수 있습니다.

kubectl get deployments

확장 및 축소

애플리케이션 인스턴스가 더 많이 또는 더 적게 필요한가요? 배포를 사용하면 쉽게 확장할 수 있습니다! YAML의 replicas 필드를 조정한 뒤 다시 적용하거나 다음과 같은 직접 명령을 사용할 수 있습니다.

kubectl scale deployment nginx-deployment --replicas=5

이 명령은 배포에 Nginx 포드 2개를 더 생성하도록 즉시 지시하여 총 5개가 되게 합니다.

다운타임 없는 업데이트

배포의 가장 큰 이점 중 하나는 롤링 업데이트를 수행할 수 있다는 것입니다. 포드 템플릿을 업데이트할 때(예: 이미지 버전 변경) Kubernetes는 기존 포드를 한꺼번에 모두 종료하지 않습니다.

대신 기존 포드를 새 포드로 점진적으로 교체하여 업데이트가 진행되는 동안에도 애플리케이션을 계속 사용할 수 있도록 합니다.

kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1

손쉽게 롤백하기

업데이트에서 실수하셨나요? 걱정하지 마세요! Deployment는 수정 기록을 보관하므로 이전의 안정적인 버전으로 쉽게 되돌릴 수 있습니다.

이를 롤백이라고 하며, Deployment를 위한 중요한 안전장치입니다.

kubectl rollout undo deployment/nginx-deployment

kubectl rollout history deployment/nginx-deployment를 사용하여 기록을 확인할 수도 있습니다.

Deployment 퀴즈 시간

한 개발자가 이미지 nginx:1.14.2를 사용하는 Nginx Deployment를 nginx:1.16.1로 업데이트합니다. 이 업데이트에 Kubernetes Deployment를 사용할 때 얻는 가장 큰 이점은 무엇인가요?

Deployment: 핵심 정리

잘하셨습니다! 상태 비저장 애플리케이션을 관리하는 강력한 리소스인 Kubernetes Deployment에 대해 배웠습니다.

  • Deployment는 ReplicaSets를 관리하고, ReplicaSets는 다시 Pod를 관리합니다.
  • replicas 수를 포함하여 원하는 상태를 정의합니다.
  • 주요 기능으로는 간편한 확장, 중단 없이 업데이트하는 롤링 업데이트, 이전 버전으로 간단히 되돌리는 롤백이 있습니다.

다음으로 애플리케이션을 외부에 노출하는 Services를 살펴보겠습니다!

자주 묻는 질문

“상태 비저장 앱을 위한 배포” 강의는 무료인가요?

네 — “상태 비저장 앱을 위한 배포” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Docker & DevOps Fundamentals 강의 전체를 잠금 해제할 수 있습니다. Docker & DevOps Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.

“상태 비저장 앱을 위한 배포”에서 뭘 배우나요?

배포를 사용하여 상태 비저장 애플리케이션을 관리하고, 롤링 업데이트와 롤백을 수행하세요. 브라우저에서 직접 실행하는 실습 코드로 Docker & DevOps Fundamentals을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Docker & DevOps Fundamentals을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Docker & DevOps Fundamentals은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“상태 비저장 앱을 위한 배포” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Docker & DevOps Fundamentals 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Docker & DevOps Fundamentals 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 상태 비저장 앱을 위한 배포
  2. 네트워크 액세스를 위한 서비스
  3. ConfigMaps 및 Secrets
  4. Ingress와 외부 라우팅
← Docker & DevOps Fundamentals(으)로 돌아가기