IT 강의/도커 쿠버

[CKA 강의 요약] Deployments

rnany 2024. 6. 13. 21:24

Udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests  강의의 32. Deployments 챕터를 공부한 내용으로 강의 내용과 다를 수 있습니다. 정확한 내용은 강의를 들으시는 것을 추천드립니다.


1. Deployment

이번 챕터에서는 앞서 배웠던 replication과 같은 kubernetes의 자원들에 대한 부분은 고려하지 않고, deployment를 사용해 실제 운영 환경에서는 어플리케이션을 배포하는 방법에 대해 집중한다.

애플리케이션의 새로운 버전이 나와 docket registry에 업로드 하고 모든 docker 인스턴스를 한번에 업그레이드할 경우 유저에게 영향을 미칠 수 있다.이에 하나씩 업데이트 하는 것을 ‘롤링 업데이트’ 라고 한다. 또한, 업데이트 중 오류가 발생 할 경우 '롤백'을 원하는 경우가 있다. 이런 기능들을 Deployment가 지원해준다.

Deployment가 생성되면 ReplicaSet이 자동으로 생성된며, Deployment는 원활한 업그레이드를 위해 롤링 업데이트 사용, 롤백, 중지, 재개하는 기능을 제공한다.

 

 

2. Deployment 다뤄보기

 

Deployment는 이전 구성 요소들과 같이 설정 파일을 통해 생성 할 수 있다.

Deployment의 설정 파일은 Replica Set의 설정 파일의 "kind"가 Deployment로 변경된 것만 빼면 동일하다.

apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: myapp-deployment
      labels:
        app: myapp
        type: front-end
    spec:
     template:
        metadata:
          name: myapp-pod
          labels:
            app: myapp
            type: front-end
        spec:
         containers:
         - name: nginx-container
           image: nginx
     replicas: 3
     selector:
       matchLabels:
        type: front-end

 

kubectl create 명령어를 사용하여 Deployment를 생성한다.

$ kubectl create -f deployment-definition.yaml

 

kubelctl get 명령어를 통해 생성한 deployment를 조회할 수 있다.

$ kubectl get deployment

 

 

Deployment를 생성하며 자동으로 생성된 replica set도 kubectl 명령어를 사용하여 조회 가능하다.

$ kubectl get replicaset

 

자동으로 생성 된 pods의 정보 또한 확인 가능하다.

$ kubectl get pods

 

하단 명령어를 통해 모든 자원을 한번에 조회 가능하다.

$ kubectl get all

 

 Deployment가 생성 된 것 외엔 replicat set과 생성된 자원이 차이가 없어보인다. 다음 강의에서 deployment를 사용하는 예시를 봐본다.