ReplicaSet & Replication Controller
만약, Pod를 만들었는데 어떠한 이유로 Pod이 장애가 난다면 서비스를 이용할 수 없다. 이런 상황을 방지하기 위해 서비스에 대해 단일 Pod으로 만들기보다는 복수의 Pod으로 만들어서 부하분산을 하도록 한다. 이와 같은 사유로 동일한 Pod를 여러개 만들때 사용하는것이 ReplicaSet 또는 Replication Controller이다.
ReplicaSet, ReplicationConroller 모두 특정 Pod에 대해서 특정 개수를 일정하게 유지하기 위한 목적으로 만들어졌다. 그렇다면 차이점은 뭐가 있을까?
구분 | ReplicaSet | ReplicationContoller | 비고 |
출시시기 | 고도화 버전 | 완전 초창기 버전 | |
Selector | in, notin, exist - 다양한 조건으로 Pod 확인 |
= or != - 같거나, 같지않거나만 비교 가능 |
|
rolling-update | 옵션 사용 불가능 - deployment 필요 |
옵션 사용 가능 | 파드의 점진적 업데이트 But, 대부분 deployment로 업데이트 |
ReplicationController YAML
ReplicationController YAML 만드는 방법은 이전의 Pod YAML과 유사하다.
큰틀에서 보면 apiVersion, kind, metadata, spec은 동일하며, spec에서 몇개의 복제본을 만들지/어떤 Pod을 복제할지 작성한다.
그리고 아래 명령어를 통해 생성 및 확인이 가능하다.
kubectl create -f replication.yaml
kuectl get replicationcontroller
- 결과는 DESIRED(복제본 Pod 수) | CURRENT(현재 복제 Pod 개수) | READY로 구분
kubectl get pods
ReplicaSet YAML
위에서 말한것과 같이 ReplicaSet의 YAML을 만들때는 selector: matchLabels:를 사용한다. 이것이 ReplicationController와 차이점이다.
Replicaset을 생성하고 동작하는것은 ReplicationController와 거의 동일하다.
kubectl create -f replicaset.yaml
kuectl get replicaset
- 결과는 DESIRED(복제본 Pod 수) | CURRENT(현재 복제 Pod 개수) | READY로 구분
kubectl get pods
'기술 이모저모 > [K8s] Kubernetes' 카테고리의 다른 글
[k8s] Service 개념 및 Type 정리 (0) | 2022.09.18 |
---|---|
[k8s] Pod, Replicaset, Deployment의 관계정리 (0) | 2022.09.18 |
[k8s] kubernetes kube-proxy, pod 기본 개념 (0) | 2022.08.26 |
[k8s] kubernetes 구조는 어떻게 될까? (0) | 2022.08.20 |
[Udemy] Udemy 영어 강의 한글자막은 없을까? (0) | 2022.08.20 |