본문 바로가기
Kubernetes

[Kubernetes] ReplicaSet을 이용한 Pods 배포

by sum_mit45 2024. 10. 25.
728x90
반응형
10/24(목) 실습 내용 중

ReplicaSet 이란?

  • ReplicaSet은 동일한 파드(pod)를 일정한 개수만큼 실행하여 서비스의 지속성을 보장하는 중요한 객체다.
  • 클라우드 환경에서는 노드의 하드웨어 장애네트워크 문제로 인해 파드가 중단될 수 있다. 이때 ReplicaSet은 다른 노드에서 새로운 파드를 생성하여 사용자에게 중단 없는 서비스를 제공하는 역할을 한다.

(실습) ReplicaSet 구성하

1. replicaset.yml 파일 생성

nano nginx-replicaset.yml 명령어로 파일을 생성한 후 아래와 같이 작성해준다. 

apiVersion: apps/v1

kind: ReplicaSet

metadata:
  name: 3-replicaset

spec:
  template:
    metadata:
      name: 3-replicaset
      labels:
        app: 3-replicaset
    spec:
      containers:
      - name: 3-replicaset
        image: nginx
        ports:
        - containerPort: 80
  replicas: 3
  selector:
    matchLabels:
      app: 3-replicaset

 

  • apiVersion: 사용할 Kubernetes API의 버전을 지정한다.
  • kind: 생성할 리소스의 유형을 정의. 여기서는 ReplicaSet을 생성한다.
  • metadata: 이 섹션은 리소스에 대한 메타 정보를 포함한다. 
    • name: 3-replicaset 이 필드는 ReplicaSet의 이름을 정의한다. 클러스터 내에서 이 이름으로 식별된다.
  • spec: 이 섹션은 ReplicaSet의 내부 정보를 포함한다. 
    • template: ReplicaSet에서 관리할 파드의 텝플릿을 정의한다. 여기서는 name을 통해 파드의 이름을 정의하고, app: 3-replicaset 라벨을 통해 파드를 식별하는 데 활용한다.
    • spec: 파드의 세부 사항을 정의한다. containers는 파드 내에서 실행할 컨테이너를 정의한다. 
    • replicas: 이 필드는 ReplicaSet이 유지해야 하는 파드의 수를 정의한다. 여기서는 3개의 Nginx 파드를 항상 실행하도록 설정했다.
    • selector: ReplicaSet이 관리할 파드를 선택하기 위한 규칙을 정의한다. matchLables는 ReplicaSet이 어떤 파드를 관리할지 결정하는 조건을 설정한다. 

2. yaml 정보를 가지고 ReplicaSet 적용

kubectl apply -f replicaset.yml
  • 이 명령어를 실행하여, replicaset.yml 파일에 정의된 Replicaset이 Kubernetes 클러스터에 적용되고 지정한 대로 파드가 생성된다. 
  • apply를 사용하여 현재 클러스터의 상태와 비교하여, 변경된 부분만 적용된다. 

3. ReplicaSet 상태 확인

kubectl get replicaset
  • 이 명령어로 클러스터 내 현재 ReplicaSet을 확인할 수 있다.
  • 모든 ReplicaSet의 개요를 제공하고, 이름(NAME), 원하는 복제본 수, 현제 복제분 수 등을 확인할 수 있다. 
  • 아래 이미지와 같이 명령어 실행한 이후에, 3-replicaset 이 만들어진 것을 확인할 수 있다.

kubectl get replicaset 명령어 결과

4. 파드 확인

kubectl get pods
  • 파드의 상태를 확인할 때 사용한다. 
  • 현재 네임스페이스의 모든 파드를 나열하고, 상태와 소속된 ReplicaSet을 보여준다.
  • 아래 이미지와 같이 3개의 파드가 생성된 것을 확인할 수 있다.

5. 스케일 변경

kubectl scale --replicas=5 replicaset/3-replicaset
  • ReplicaSet의 주요 기능 중 하나는 애플리케이션을 손쉽게 스케일 업 또는 스케일 다운하는 것이다.
  • 복제본 수를 변경하려면 scale 명령어와 --replicas 옵션을 사용한다.
  • 위 명령어는 replicaSet의 복제본 수를 5개로 스케일링 하는 것이다. 
  • 아래 이미지와 같이 기존에는 3개였던 파드가 5개로 증가한 것을 확인할 수 있다. 

 

6. 삭제

kubectl delete -f replicaset.yml
kubectl delete -f replicaset.yml --cascade=orphan

 

  • ReplicaSet을 삭제할 경우, delete 명령어를 사용한다.
  • 이때 --cascade=orphan 옵션을 이용하면 파드는 유지된 채 ReplicaSet 만 삭제할 수 있다.

728x90
반응형