Controller 란
- Pod의 개수를 보장하며 조절가능.
ReplicationController
- 요구하는 Pod의 개수를 보장하며 파드 집합의 실행을 항상 안정적으로 유지하는것을 목표로 한다.
- 요구하는 Pod의 개수가 부족하면 템플릿을 이용해 Pod를 추가
- 요구하는 Pod 수 보다 많으면 최근에 생성된 Pod를 삭제
기본 구성
- selector
- replicas
- template
Selector의 내용을 보고 replicas의 개수를 보장, 혹시라도 동작되고 있는 Pod들 중 라벨 셀렉터의 컨테이너와 일치하는 것이 있는것을 찾아서 개수가 다를경우 추가해주거나 줄인다.(템플릿의 내용을 참고해서)
실습 : replicationcontroller를 사용해보자
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
replication controller를 사용해서 pod를 생성하는 yaml 파일의 예제이다.
1. kind: ReplicationController로 선언
2. replicas: 3 으로 selector 에서 참조하는 webui라는 라벨의 Pod를 3개 유지시켜달라 (spec이 다르더라도 라벨이 같으면 같은것으로 판단한다)
3. 컨테이너 템플릿을 참조해서 컨테이너를 생성/제거
컨트롤러 생성 후 확인 (kubectl get replicationcontroller) rc로 줄여서 확인해도 된다.
좀더 자세하게 확인 describe
desired는 요청한 갯수를 나타냄.
edit 명령어로 현재 동작하고 있는 컨트롤러를 수정 해본다.
kubectl edit replicationcontroller
replicas를 5로 수정해줘 본다.
nginx 컨테이너가 5개로 늘어난 것을 확인 할 수 있다. 이렇게 edit으로 파일의 내용을 수정해서 스케일 아웃을 진행할 수 있지만 명령어 한줄로도 스케일 아웃, 인이 가능하다.
명령어로 스케일 아웃/인 해보기
kubectl scale rc [metadata-name] --replicas=2
가장 예전에 생성된 컨테이너 두개를 terminate해서 다운된것을 확인 할 수 있다.
edit 명령어로 rc를 확인해 보니 spec : replicas에도 2로 적용이 돼 있는것을 확인할 수 있다.
'Kubernetes' 카테고리의 다른 글
쿠버네티스 - Deployment (0) | 2021.07.17 |
---|---|
쿠버네티스 - Replicaset (0) | 2021.07.17 |
Pod에 환경변수 설정하기/Pod 실행 패턴 (0) | 2021.07.15 |
Pod에 리소스(cpu, memory) 할당하기 (0) | 2021.07.15 |
init 컨테이너 & infra 컨테이너 / static Pod (0) | 2021.07.14 |