Kubernetes

쿠버네티스 디플로이먼트(Deployment) .yaml 파일 기술하기

kubectl 2023. 9. 25. 17:09
반응형

쿠버네티스 디플로이먼트는 애플리케이션 배포와 관리를 위한 중요한 오브젝트 중 하나입니다. 디플로이먼트 .yaml 파일은 애플리케이션의 버전 관리와 롤아웃을 정의하는 데 사용됩니다. 디플로이먼트 .yaml 파일의 필수 필드와 오브젝트 spec을 상세히 살펴보겠습니다.

 

 

 

디플로이먼트 .yaml 파일 예제

 

apiVersion: apps/v1

kind: Deployment

metadata:

  name: myapp-deployment

spec:

  replicas: 3

  selector:

    matchLabels:

      app: myapp

  template:

    metadata:

      labels:

        app: myapp

   spec:

    containers:

    - name: myapp-container

      image: nginx:latest

 

필수 필드 설명:

  1. apiVersion: 디플로이먼트 오브젝트의 API 버전을 지정합니다. 현재 버전은 apps/v1 입니다.
  2. kind: 오브젝트의 종류를 나타내며, 디플로이먼트인 경우에는 Deployment로 설정합니다.
  3. metadata: 디플로이먼트의 메타데이터 정보를 정의합니다. 여기에는 디플로이먼트의 이름(name)이 포함됩니다.

디플로이먼트 spec 설명:

  1. replicas: 디플로이먼트에서 생성할 파드의 복제본 수를 지정합니다. 이 예제에서는 3개의 복제본을 생성합니다.
  2. selector: 디플로이먼트가 관리하는 파드를 선택하기 위한 레이블 셀렉터(selector)를 정의합니다. 이 예제에서는 app: myapp 레이블을 가진 파드를 선택합니다.
  3. template: 파드 스펙을 정의하는 템플릿입니다. 새로 생성되는 파드들은 이 템플릿을 기반으로 생성됩니다.
    • metadata.labels: 파드에 할당될 레이블을 정의합니다. 이 예제에서는 app: myapp 레이블을 할당합니다.
    • spec.containers: 파드 내에서 실행될 컨테이너를 정의합니다. 이 예제에서는 nginx:latest 이미지를 사용하는 myapp-container라는 컨테이너를 정의합니다.

 

이 디플로이먼트 .yaml 파일은 쿠버네티스 클러스터에 애플리케이션을 배포하기 위한 기본 구성을 제공합니다. 필수 필드와 spec을 정확하게 설정하면, 쿠버네티스는 디플로이먼트를 사용하여 애플리케이션을 클러스터에 배포하고 관리합니다. 디플로이먼트는 업데이트 및 롤백과 같은 중요한 배포 작업을 보다 안전하고 효율적으로 수행할 수 있도록 도와줍니다. 이를 통해 개발자와 운영팀은 애플리케이션 버전 관리에 더 많은 통제를 할 수 있습니다.

 

반응형