무지개곰
article thumbnail
반응형

1. 목차

스케일링이란?

Deployment로 부하 스케일링

6장 리뷰


2. 스케일링이란?

Replicaset과 Deployment를 활용하여 Pod의 수를 조절하는 방식

2.1. Replicaset 생성 예시

<code />
kubectl apply -f https://raw.githubusercontent.com/gilbutITbook/kiamol/main/ch06/whoami/whoami.yaml

 

whoami.yaml

<code />
apiVersion: apps/v1 kind: ReplicaSet metadata: name: whoami-web labels: kiamol: ch06 spec: replicas: 1 # 생성할 Pod의 수 selector: matchLabels: app: whoami-web template: metadata: labels: app: whoami-web spec: containers: - image: kiamol/ch02-whoami name: web ports: - containerPort: 80 name: http

 

replicaset을 생성하고 deploy를 조회하였지만 deploy는 조회되지 않음

3. Deployment로 부하 스케일링

3.1. loadbalancer와 deployment 생성

<code />
kubectl apply -f https://raw.githubusercontent.com/gilbutITbook/kiamol/main/ch06/pi/web/web-service.yaml -f https://raw.githubusercontent.com/gilbutITbook/kiamol/main/ch06/pi/web/web.yaml

 

web.yaml

<code />
apiVersion: apps/v1 kind: Deployment metadata: name: pi-web labels: kiamol: ch06 spec: replicas: 2 selector: matchLabels: app: pi-web template: metadata: labels: app: pi-web spec: containers: - image: kiamol/ch05-pi command: ["dotnet", "Pi.Web.dll", "-m", "web"] name: web ports: - containerPort: 80 name: http

 

deployment와 replicaset의 관계도

결과

 

3.2. Replicas 변경

<code />
kubectl apply -f https://raw.githubusercontent.com/gilbutITbook/kiamol/main/ch06/pi/web/update/web-replicas-3.yaml

 

web-replicas-3.yaml

<code />
apiVersion: apps/v1 kind: Deployment metadata: name: pi-web labels: kiamol: ch06 spec: replicas: 3 selector: matchLabels: app: pi-web template: metadata: labels: app: pi-web spec: containers: - image: kiamol/ch05-pi command: ["dotnet", "Pi.Web.dll", "-m", "web"] name: web ports: - containerPort: 80 name: http

 

3.2.1. Pod 정의 변경

<bash />
kubectl apply -f https://raw.githubusercontent.com/gilbutITbook/kiamol/main/ch06/pi/web/update/web-logging-level.yaml

 

web-logging-level.yaml

<code />
apiVersion: apps/v1 kind: Deployment metadata: name: pi-web labels: kiamol: ch06 spec: replicas: 3 selector: matchLabels: app: pi-web template: metadata: labels: app: pi-web spec: containers: - image: kiamol/ch05-pi command: ["dotnet", "Pi.Web.dll", "-m", "web"] name: web ports: - containerPort: 80 name: http env: # pod의 환경변수 변경 - name: Logging__LogLevel__Default value: Debug

Pod의 정의가 바뀌었기에 새 Pod를 생성하기 위한 새 replicaset이 생성된 것을 확인

3.3. scale 명령 사용하기

<code />
kubectl scale --replicas=4 deploy/pi-web

pi-web의 replicas를 4로 변경하는 명령어


4. 6장 리뷰

스케일링을 통하여 부하를 분산시키기도 하고 상황에 따라 Replicaset을 줄여 공간을 확보하는 등 활용도가 높고 유용한 방법을 배울 수 있었습니다.
단순히 replicaset을 조정하는 작업 외에도 웹 페이지를 통하여 같은 서비스의 경우에도 다른 pod에 접속하는 것을 직접 체험하는 실습도 적절하게 제공되어 재밌게 배울 수 있었습니다.
'데몬 셋'과 '객체 간 오너쉽'은 단기간에 이해하기 어려워 다시 공부를 해야 하겠지만 가볍게 훑어보고 프로젝트에서 직접 사용하며 익혀가는 순서로 활용하기 적절한 책이라고 생각되었습니다.

반응형
profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!