Program Language/K8S

CKA 자격증 - Certified Kubernetes Administrator 3편 [Deployment]

QueryJun 2023. 8. 10. 11:59

Deployment 란?

Deployment는 ReplicaSet을 기반으로 한 리소스로, 애플리케이션의 업데이트와 롤백을 관리하는 데 사용됩니다. 

즉, 새로운 버전의 애플리케이션을 배포하거나 업데이트할 때 사용되며, 이를 통해 가용성을 유지하면서 안정적인 배포를 수행할 수 있습니다.

 

1. 쿠버네티스 Deployment 의 YAML 파일

  • apiVersion 및 kind: 리소스의 종류와 버전을 나타냅니다. 여기서는 Deployment 리소스를 생성하므로 apps/v1과
    kind: Deployment로 지정합니다.
  • metadata: 리소스의 메타데이터 정보를 담고 있습니다. 이름(name)은 해당 Deployment의 식별자로 사용됩니다.
  • spec: Deployment의 구성 정보를 정의합니다.
    • replicas: 유지할 Pod 복제본 수를 설정합니다.
    • selector: 해당 Deployment가 관리하는 ReplicaSet의 파드를 선택하는 데 사용되는 레이블 선택기입니다.
    • template: 생성될 Pod의 템플릿을 정의합니다.
      • metadata.labels: Pod 레이블을 설정합니다.
      • spec.containers: Pod 내에서 실행될 컨테이너 정보를 정의합니다. 이미지와 포트 등의 정보가 여기에 포함됩니다.

2. Deployment 정보 출력

$ kubectl get deployments
$ kubectl get deployment
$ kubectl get deploy

# 모두 동일한 결과 출력

  • NAME: Deployment의 이름입니다.
  • READY: 현재 준비된 복제본 수와 전체 복제본 수를 나타냅니다.
  • UP-TO-DATE: 최신 이미지로 업데이트된 복제본 수를 나타냅니다.
  • AVAILABLE: 사용 가능한 복제본 수를 나타냅니다.
  • AGE: Deployment가 생성된 후 경과한 시간을 나타냅니다.

4. 지정된 경로에 있는 yaml 파일을 이용하여 Deployment 생성

kubectl create -f /root/deployment-definition-1.yaml

해당 명령은 지정된 경로에 있는 YAML 파일을 사용하여 쿠버네티스 클러스터에 Deployment을 생성하는 명령입니다.

 

5. 지정된 경로에 있는 yaml 파일을 이용하여 Deployment 업데이트

$ kubectl apply /root/deployment-definition-1.yaml

해당 명령은 지정된 경로에 있는 YAML 파일을 사용하여 쿠버네티스 클러스터에 새로운 Deployment을 업데이트 합니다.


6. 새 배포(Deployment) 생성

$ kubectl create deployment httpd-frontend --image=httpd:2.4-alpine --replicas=3

 

  • httpd-frontend: Deployment의 이름으로, 이 이름을 사용하여 Deployment를 식별할 수 있습니다.
  • --image=httpd:2.4-alpine: 생성되는 파드에 사용될 컨테이너 이미지를 지정합니다. 여기서는 Apache HTTP Server의 2.4-alpine 버전 이미지를 사용합니다.
  • --replicas=3: 생성되는 파드의 복제본 수를 지정합니다. 이 경우 3개의 복제본이 유지됩니다.
    이 명령을 실행하면 지정한 이미지와 복제본 수를 가진 Deployment가 생성됩니다.

감사합니다.

 

반응형