※ 따배쿠 6-1 Controller 정리
Controller 란?
- Pod의 개수를 보장해줌. -> Pod를 몇개 운영하는지 결정하고 그 개수 만큼 Pod를 보장해준다는 뜻
Controller의 종류
- Daemon set
- Replication controller
- Replicaset
- Stateful sets
- Job
- CronJob
- Deployment
ReplicationController 란
Pod의 개수를 보장하며 Pod 집합의 실행을 항상 안정적으로 유지할 수 있도록 하는것을 목표로 하는 Controller
- 만약 Pod의 개수를 3개로 설정하였다하면 Pod의 개수가 2개 라면 1개의 Pod를 더 생성하고, 4개라면 최근에 생성된 Pod 1개를 죽인다.
기본구성
- 1. selector
- 2. replicas
- 3. template
apiVersion: v1
kind: ReplicationController
metadata:
name: rc-nginx
spec:
replicas: 3
selector:
app: webui
template:
metadata:
name: nginx-pod
labels:
app: webui
spec:
containers:
- name: nginx-container
image: nginx:1.14
- Pod를 생성해야한다면 template에 있는 컨테이너 탬플릿을 가지고 Pod를 생성함.
- 컨테이너 탬플릿은 selector에 있는 key: value 를 labels에서 똑같은 key: value 값을 가지고 있어야한다.
yaml 파일로 ReplicationController 실행
kubectl create -f rc-nginx.yaml
ReplicationController 확인하는 명령어
kubectl get replicationController
kubectl get rc
kubectl describe rc rc-nginx
create 명령어 사용시 3개의 Pod 생성 확인
또한 현재 node에 라벨 app=webui의 라벨을 가진 Pod가 하나 더 생성되면 그 생성된 Pod는 바로 Delete 되버린다.
apiVersion: v1
kind: Pod
metadata:
labels:
app: webui
name: redis
spec:
containers:
- image: redis
name: redis
kubectl edit rc rc-nginx
kubectl scale rc rc-nginx --replicas=2
edit 명령어를 사용하여 replicas 부분의 숫자를 변경하게 되면 변경한 숫자만큼 Pod의 개수가 scale 된다.
다른 방법으론 kubectl scale rc [컨테이너 이름] --replicas=[숫자] 명령어가 있다.
ReplicationController 삭제 방법
kubectl delete rc [rc 이름]
'Docker & Kube' 카테고리의 다른 글
Controller - ReplicaSet (0) | 2024.01.17 |
---|---|
Docker 설치 (2) | 2023.11.21 |