상태 비저장 앱을 위한 배포
배포를 사용하여 상태 비저장 애플리케이션을 관리하고, 롤링 업데이트와 롤백을 수행하세요.
상태 비저장 앱을 위한 배포은(는) CoddyKit의 무료 Docker & DevOps Fundamentals 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Docker & DevOps Fundamentals 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Docker & DevOps Fundamentals 강의에는 총 4개의 강의가 포함되어 있습니다.
Kubernetes 배포 만나기
Kubernetes의 기본 개념인 배포에 오신 것을 환영합니다! 배포는 상태 비저장 애플리케이션을 관리할 때 사용하는 대표적인 리소스입니다.
배포를 애플리케이션의 설계도라고 생각해 보세요. 실행할 애플리케이션 복제본 수와 중단 없이 복제본을 업데이트하는 방법을 Kubernetes에 알려 줍니다.

포드와 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-deploymentkubectl 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 상태 비저장 앱을 위한 배포
- 네트워크 액세스를 위한 서비스
- ConfigMaps 및 Secrets
- Ingress와 외부 라우팅