replicaset 을 이용해 파드를 관리할 때, 파드 수에 대한 수평적 확장 즉, 파드 스케일 아웃을 수행하는 방법은 두가지가 있다.

먼저 아래 내용으로 파드 레플리카를 3개 구동시킨다.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: sample-rs
spec:
  replicas: 3
  selector:
    matchLabels:
      app: sample-app
  template:
    metadata:
      labels:
        app: sample-app
    spec:
      containers:
        - name: nginx-container
          image: nginx:1.16
          ports:
            - containerPort: 80

 

아래 커맨드를 실행해 파드 갯수를 확인한다.

$ kubectl describe replicasets.apps sample-rs
# replicaset 의 정보 확인

$ kubectl get pods -o wide -L app
# pod 가 3개 띄워져 있는지 확인

 

1. kubectl scale 명령어를 이용하는 방법

아래 커맨드를 실행해 pod 의 갯수를 5개로 조정 후 다시 파드의 갯수를 확인한다.

$ kubectl scale replicaset sample-rs --replicas 5
# replica 갯수를 5개로 조정

$ kubectl get pods -o wide -L app
# pod 의 갯수가 5개로 변경되었는지 확인

 

kubectl scale 명령어를 이용한 이 방법은 커맨드로 간편하게 스케일링을 할 수 있으나, 현재 상태가 매니페스트 파일과 동일하지 않게 되기 때문에 실무에서는 권장하지 않는 방법이다.

참고로, scale 명령어는 ReplicationController, Deployment, StatefulSet, Job, CronJob 에 대해서도 사용할 수 있다.

 

2. 매니페스트를 동적으로 수정 후 kubectl apply 하는 방법

아래 커맨드를 실행해 replica 수를 3개에서 5개로 수정하여 저장한 후, 매니페스트를 apply 한다.

$ sed -i -e 's|replicas: 3|replicas: 5|' sample-rs.yaml
# sed 명령어를 이용해 sample-rs.yaml 파일의 내용 중 "replicas: 3" 를 "replicas: 5" 로 치환

$ kubectl apply -f sample-rs.yaml
# 변경된 매니페스트 적용

$ kubectl get pods -o wide -L app
# pod 의 갯수가 5개로 변경되었는지 확인

 

이를 원시적으로 응용하면 원격에서 쉘스크립트를 호출하며 인자를 넘겨 replica 갯수를 조정할 수 있을 것이다. IaC 를 구현하기 위해서라도 이러한 형태로 사용하는 것이 권장된다.

블로그 이미지

망원동똑똑이

프로그래밍 지식을 자유롭게 모아두는 곳입니다.

,