디플로이먼트에서 의도하는 상태를 설명하고, 디플로이먼트 컨트롤러는 현재 상태에서 의도하는 상태로 비율을 조정하며 변경한다.
Deployment YAML

메타데이터는 디플로이먼트의 속성에 대한 정보를 담고 있다.
하단의 스펙에서는 유지할 레플리카 개수부터 파드 내의 컨테이너 스펙까지 지정한다. matchLabels는 파드를 식별할 때 사용하는 라벨로, 해당 라벨에 매칭된 파드의 개수를 지속적으로 파악한다. template > metadata > labels는 생성되는 파드에 설정할 라벨이며, 이 라벨이 matchLabels와 다르지 않도록 유의한다.
1. 디플로이먼트 YAML 파일 설정

nginx 버전 1.14.2를 사용하는 3개의 파드를 유지하도록 디플로이먼트를 설정한다.
셀렉터는 다른 컨트롤러와 겹치지 않아야 하며, 쿠버네티스는 겹치는 것을 막지 않으므로 주의한다.
2. 디플로이먼트 실행
kubectl create -f dep1.yaml 명령어로 YAML 파일을 실행하여 디플로이먼트를 생성한다.

3. 디플로이먼트 수정 및 확인
nginx 버전을 1.14.2에서 1.16.1로 변경한 뒤 변동사항에 대해 확인한다. 새로운 레플리카셋이 생성되어 파드가 교체되는 것을 확인할 수 있다.
디플로이먼트로 생성된 파드에는 template-hash라는 라벨이 생성되는데 다른 그룹의 파드와 식별하기 위해 자동으로 입력되는 것이니 수정하지 않도록 한다. 아래 새로 생성된 파드의 해시가 다른 것을 볼 수 있다.

kubectl get rs 명령어로 레플리카셋을 확인해보면 기존의 레플리카셋은 0개의 레플리카로 스케일 다운되고, 새로운 레플리카셋이 생성되어 3개의 레플리카로 스케일 업 된 것이 확인된다.

디플로이먼트 구성과 이벤트에 대해 좀 더 상세히 확인하려면 describe 명령어를 사용한다. 이미지가 새롭게 지정한 버전으로 업데이트 되었고, 레플리카의 스케일 업/다운 진행과정은 하단에 이벤트란에서 확인 가능하다.

4. 디플로이먼트 삭제
더 이상 사용하지 않는다면 kubectl delete deployment nginx 명령어를 사용해 앞서 생성한 디플로이먼트를 삭제한다.
'Kubernetes' 카테고리의 다른 글
| [Lab] ReplicaSet 실행 및 삭제 (0) | 2020.10.13 |
|---|---|
| [Lab] GKE 기본 구성 실습 (0) | 2020.10.12 |
| [Lab] Docker로 컨테이너 구성 (0) | 2020.10.12 |