본문 바로가기
Devops/Kubernetes

[Kubernetes] Deployment (1)

by 볼링치는 개발자 2021. 6. 11.
반응형

Kubernetes가 처리하는 기본 단위인 deployment를 생성하는 방법은 2가지가 있습니다.

  1. 명령어로 생성
  2. yaml file로 생성

명령어로는 다음과 같이 생성합니다.

$ kubectl create deployment [이름] --image=[이미지]

yaml 파일로는 다음과 같이 생성합니다.

$ kubectl apply -f [yaml 파일 이름]

그럼 nginx deployment를 yaml 파일을 생성해 deployment를 만들어 보겠습니다.

 

$ vi nginx.yaml 명령어를 통해 다음과 같은 내용을 포함하는 yaml파일을 만들어줍니다.

출처: https://kubernetes.io/ko/docs/concepts/workloads/controllers/deployment/

그리고 다음 명령어를 입력해 해당 yaml파일로부터 deployment를 생성해줍니다.

$ kubectl apply -f nginx.yaml

$ kubectl get deployment 명령어를 통해 실행 중인 deployment를 확인할 수 있습니다.

그럼 다음 명령어로 pod들의 상태를 모니터링하면서 yaml파일을 수정해 보겠습니다.

$ kubectl get pods--watch

처음에는 방금 만든 deployment의 pod하나가 실행 중인 것을 확인할 수 있습니다.

그럼 해당 depolyment를 만들기 위해 사용한 nginx.yaml파일을 다음과 같이 replicaset의 개수를 2로 늘려 다시 apply 해보겠습니다.

다음 실행 결과처럼, 기존에 있던 pndkd의 아이디를 갖는 pod하나가 돌고 있었는데, replicaset의 크기를 2로 늘리고 apply 해주니 wk2zt의 아이디를 갖는 pod하나가 더 생겨 실행되면서 총 2개의 pod가 실행됨을 확인했습니다.

그럼 nginx.yaml파일의 replicaset의 개수를 4로 늘리고 apply 해보겠습니다.

다음 실행 결과를 보면, 아까 있었던 pndkd, wk2zt의 아이디를 갖는 pod들을 제외하고, hd5tp, knjd9의 아이디를 갖는 pod들이 총 4개가 실행되고 있음을 확인할 수 있습니다.

그럼 마지막으로 nginx.yaml파일의 replicaset 개수를 1로 줄여보고 apply 해보겠습니다.

그럼 실행 결과와 같이 가장 처음에 생성된 pod인 pndkd pod를 제외하고 knjd9, hd5tp, wk2zt pod들이 제거되는 것을 볼 수 있습니다.

이런 실습을 통해 작업이 매우 편리해준 것을 확인할 수 있습니다.


Deployment yaml파일 분석해보기

Deployment yaml파일은 위와 같은 구조로 되어있습니다.

 

apiVersion과 kind 같은 경우를 보면 일반적인 deployment파일을 파헤쳐보면 대부분 다 저렇게 사용합니다.

 

반응형

'Devops > Kubernetes' 카테고리의 다른 글

[Kubernetes] Deployment (2)  (0) 2021.06.11
[Kubernetes] Kubernetes 시작하기 (2)  (0) 2021.06.11
[Kubernetes] Kubernetes 시작하기 (1)  (0) 2021.06.11

댓글