Docker & Kube

Controller 와 ReplicationController

박다큐 2024. 1. 17. 17:34

※ 따배쿠  6-1 Controller 정리

 

Controller 란?

  • Pod의 개수를 보장해줌. -> Pod를 몇개 운영하는지 결정하고 그 개수 만큼 Pod를 보장해준다는 뜻

 

Controller의 종류

  1. Daemon set
  2. Replication controller
  3. Replicaset
  4. Stateful sets
  5. Job
  6. CronJob
  7. 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