Kubernetes · 2 min read · Dec 09, 2025

Kubernetes 클러스터에서 첫 배포 만들기

** 이 기사에서는 Kubernetes 클러스터에서 첫 배포를 만드는 방법을 살펴보겠습니다. 예를 들어 Nginx에 대한 배포를 생성합니다.

우리가 실행 중인 Kubernetes 클러스터를 가지고 있으면, 그 위에 컨테이너화된 애플리케이션을 배포할 수 있습니다. 이를 달성하기 위해 Kubernetes 배포 구성 파일을 생성할 수 있습니다.

배포는 Pods 및 ReplicaSets에 대한 선언적 업데이트를 제공합니다. 우리는 배포에서 원하는 상태를 설명하고, 배포 컨트롤러는 실제 상태를 제어된 비율로 원하는 상태로 변경합니다.

“kubectl” Kubernetes 명령줄 인터페이스를 사용하여 배포를 생성하고 관리할 수 있습니다. Kubectl은 Kubernetes API를 사용하여 클러스터와 상호작용합니다.

배포 생애 주기에는 세 가지 단계가 있습니다:

  1. 진행 중: Kubernetes는 배포가 새로운 ReplicaSet을 생성할 때, 배포가 최신 ReplicaSet을 확장하거나 이전 ReplicaSet을 축소할 때, 또는 새로운 Pods가 준비되거나 사용 가능할 때 배포를 진행 중으로 표시합니다.
  2. 완료: Kubernetes는 배포와 관련된 모든 복제본이 업데이트되고 사용 가능하며, 배포에 대한 이전 복제본이 실행되지 않을 때 배포를 완료로 표시합니다.
  3. 실패: 이는 할당량 부족, 준비 프로브 실패, 이미지 풀 오류 또는 권한 부족으로 인해 발생할 수 있습니다.

전제 조건

  1. AWS 계정 (없다면 생성하세요)
  2. Kubernetes 클러스터

참고: AWS EC2 인스턴스에서 시도하고 싶지 않다면 VM을 사용하여 클러스터를 생성할 수도 있습니다.

우리가 할 일

  1. Nginx에 대한 Kubernetes 배포 생성.

Nginx에 대한 Kubernetes 배포 생성

첫 번째 배포를 만들기 위해 객체/배포 파일을 생성할 새 디렉토리를 만듭니다. 시스템에서 새 디렉토리를 생성하려면 다음 명령을 사용하세요.

mkdir my-first-deployment
cd my-first-deployment/

진행하기 전에 클러스터의 상태를 확인하세요.

클러스터에서 사용 가능한 노드를 확인하고 “ kubectl “의 버전을 확인하려면 다음 명령을 사용하세요.

sudo kubectl version
sudo kubectl get nodes

클러스터에 사용 가능한 노드가 있으면 배포를 생성할 준비가 된 것입니다.

다음 코드 블록으로 “ my-first-deployment.yml “ 파일을 생성하세요.

vim my-first-deployment.yml

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

여기서,

  • apiVersion: APIVersion은 객체의 이 표현의 버전화된 스키마를 정의합니다.
  • kind: 생성하려는 객체의 종류(예: 배포, 서비스, 구성 맵 등).
  • name: 이름은 네임스페이스 내에서 고유해야 합니다.
  • labels: 객체를 구성하고 분류하는 데 사용할 수 있는 문자열 키와 값의 맵입니다.
  • spec: 배포의 원하는 동작 사양입니다.
  • replicas: 원하는 Pods의 수입니다.
  • selector: Pods에 대한 레이블 선택기입니다. 이 배포에 의해 영향을 받는 Pods는 이 레이블 선택기에 의해 선택된 기존 ReplicaSets의 Pods입니다. 이는 Pod 템플릿의 레이블과 일치해야 합니다.

이제 다음 명령을 사용하여 배포를 생성할 준비가 되었습니다.

sudo kubectl apply -f my-first-deployment.yml
sudo kubectl get deployments

kubectl apply

위 스크린샷에서 두 개의 Pods가 사용 가능하도록 배포가 생성된 것을 볼 수 있습니다.

다음 명령을 사용하여 Pods의 세부 정보를 확인할 수 있습니다.

sudo kubectl get pods

kubectl get pods

배포에 대한 자세한 내용을 알고 싶다면 “kubectl describe” 명령을 사용하여 배포의 전체 세부 정보를 얻을 수 있습니다.

sudo kubectl get deployments
sudo kubectl describe deployments nginx-deployment

kubectl get deployments

더 이상 배포가 필요하지 않다면 “kubectl delete command”를 사용하여 삭제할 수 있습니다.

sudo kubectl get deployments
sudo kubectl delete deployments nginx-deployment
sudo kubectl get deployments

kubectl  get deployments

위 스크린샷에서 배포가 삭제된 후 더 이상 사용 가능하지 않음을 볼 수 있습니다.

배포를 삭제하면 Pods도 삭제됩니다.

다음 명령을 사용하여 Pods의 가용성을 확인할 수 있습니다.

sudo kubectl get pods

위 스크린샷에서 배포를 삭제한 후 Pods가 삭제되었고 더 이상 사용 가능하지 않음을 볼 수 있습니다.

결론

이 기사에서는 Kubernetes에서 첫 Nginx 배포를 만드는 단계를 살펴보았습니다. 또한 배포에 대한 세부 정보를 추출하는 방법도 살펴보았습니다. 이와 함께 배포를 삭제하는 명령도 탐색했습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.