반응형
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에 접속하는 것을 직접 체험하는 실습도 적절하게 제공되어 재밌게 배울 수 있었습니다.
'데몬 셋'과 '객체 간 오너쉽'은 단기간에 이해하기 어려워 다시 공부를 해야 하겠지만 가볍게 훑어보고 프로젝트에서 직접 사용하며 익혀가는 순서로 활용하기 적절한 책이라고 생각되었습니다.
반응형
'DevOps > Kubernetes' 카테고리의 다른 글
| [Kubernetes] Volume과 Claim (길벗 리뷰어) (0) | 2023.11.26 |
|---|---|
| [Kubernetes] Config Map과 Secret (길벗 리뷰어) (0) | 2023.11.24 |
| [Kubernetes] Service (길벗 리뷰어) (2) | 2023.11.22 |
| [Kubernetes] Pod와 Deployment (길벗 리뷰어) (2) | 2023.11.20 |
| [Kubernetes] CNI 설치 및 pod 생성 (Weave) (0) | 2023.09.25 |
