ReplicationController란?
<이미지 출처 : Kubernetes & Docker Part 2 >
- 요구하는 pod의 개수를 보장하며 pod 집합의 실행을 항상 안정적으로 유지하는 것을 목표
- 요구하는 pod의 개수가 부족하면 template를 이용해 pod를 추가
- 요구하는 pod 수 보다 많으면 최근에 생성된 pod를 삭제
- 기본구성
- selector
- replicas
- template
- 반드시 selector의 key, value 값을 labels로 가지고 있어야 함
- definition
apiVersion: v1
kind: ReplicationController
metadata:
name: rc-nginx
spec:
replicas: 3
selector:
app: web
template:
metadata:
name: nginx-pod
labels:
app: web
spec:
containers:
- name: nginx-container
image: nginx:1.14
- replicationcontroller 및 container 생성 확인
kubectl get replicationcontrollers RCNAME
2kubectl describe rc RCNAME
kubectl get pod --show-labels
- container 개수 수정
kubectl edit replicationcontroller RCNAME
kubectl scale replicationcontroller RCNAME --replicas=2
Replicaset이란?
<이미지 출처 : Kubernetes & Docker Part 2 >
- Replication controller와 성격은 동일하게 pod의 개수 보장
- Replication controller보다 풍부한 selector
- matchExpressions 연산자
- In : key와 values를 지정하여 key, value가 일치하는 pod만 연결
- NotIn : key는 일치하고 value는 일치하지 않는 pod에 연결
- Exists : key에 맞는 label의 pod를 연결
- DoesNotExist : key와 다른 label의 pod를 연결
- matchExpressions 연산자
- --cascade=orphan 옵션을 통해서 연쇄 삭제 기능 비활성화 (default = true)
- definition
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: rs-web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
name: nginx-pod
labels:
app: web
spec:
containers:
- name: nginx-container
image: nginx:1.14
ports:
- containerPort: 80
- 동작 확인
kubectl get replicaset RSNAME
kubectl get rs RSNAME
- scale in/out
kubectl scale replicaset RSNAME --replicas=2
참고 :
[따배쿠] 6-1 Controller - ReplicationController란?
[따배쿠] 6-2. ReplicaSet(ReplicationController와의 차이점은?) 쿠버네티스 pod 개수 보장
'INFRA > DevOps' 카테고리의 다른 글
[K8s] DaemonSet (0) | 2022.10.11 |
---|---|
[K8s] Deployment (1) | 2022.10.04 |
[K8s] Pod에 Resource 할당(cpu/memory requests, limits) & K8s Pod 환경변수 설정과 실행 패턴 (0) | 2022.09.21 |
[K8s] Init container & Infra container (0) | 2022.09.14 |
[k8s] LivenessProbe를 이용해서 Self-healing Pod 생성 (0) | 2022.09.13 |
댓글