본문 바로가기

Computer Science/Kubernetes 정리

Kubernetes 정리 5 : ReplicaSets

1. Replication Controller

  • Replication Controller는 클러스터에서 여러 POD의 인스턴스를  실행하는 데 도움이 된다.
  • 고가용성(High Availabilty)를 제공한다.
  • POD가 하나만 있어도 Replication Controller가 도움이 된다.
  • Replication Controller는 기존 POD가 죽었을 때, 새로운 POD를 자동으로 불러와서 지정된 수의 POD가 항상 실행 중이라는 것을 항상 보장한다.

 

 

 

  • Replication Controller가 필요한 또 다른 이유는 부하를 분산하기 위해 여러 POD를 생성해야한다.(로드 밸런싱)
  • 유저가 늘어나면 로드밸런싱을 위해 추가 파드를 배포한다.
  • 해당 노드의 리소스가 부족해지면 클러스터의 다른 노드에 추가 POD를 배포할 수 있다.
  • Replication Controller는 클러스터의 여러 노드에 걸쳐있기 떄문에 여러 노드에서 POD와 애플리케이션의 로드 밸런싱에 도움이 된다,

 

 

2. Replica set과 Replication Controller의 차이점

Replication Controller이 더 오래된 기술이며, ReplicaSet에 의해 대체됨.

ReplicaSet은 Replication을 설정하는 새로운 권장 방법. 따라서 앞으로의 모든 데모 및 구현에서는 ReplicaSet을 사용하도록 노력하겠습니다.

 

3. Replication Controller만드는 방법

1) yaml파일 생성

이름을 re-definition.yaml로 한다. 

2) 4개의 루트 레벨 속성 작성

apiVersion, kind, metadata, spec 네 개의 섹션을 작성한다.

3) 파일저장

Esc: wq를 눌러 파일을 저장한다.

4) Yaml파일 kubectl create

kubectl create -f rc-definition.yaml 커맨드를 적용해 Replication controller를 생성한다.

5) Replication controller 생성 확인

kubectl get replicationcontroller

6) Replication controller 로 시작된 POD 확인

kubectl get replicationcontroller

kubectl get pods

이를 마치면 세개의 파드가 실행되는 것을 볼 수 있다.

파드는 모두 Replication controller의 이름으로 시작한다. 이는 모두 Replication controller에 의해 자동으로 생성되었음을 나타낸다.