무지개곰
article thumbnail
반응형

목차

스케일링이란?

Deployment로 부하 스케일링

6장 리뷰


스케일링이란?

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

Replicaset 생성 예시

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

 

whoami.yaml

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는 조회되지 않음

Deployment로 부하 스케일링

loadbalancer와 deployment 생성

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

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의 관계도

결과

 

Replicas 변경

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

 

web-replicas-3.yaml

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

 

Pod 정의 변경

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

 

web-logging-level.yaml

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이 생성된 것을 확인

scale 명령 사용하기

kubectl scale --replicas=4 deploy/pi-web

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


6장 리뷰

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

반응형
profile

무지개곰

@무지개곰

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