본문 바로가기
K8S

ReplicationController란?

by ohrohi 2025. 2. 7.
반응형
  • Controller 란?
    • Pod의 개수를 보장
  • Controller 종류
    • DAEMON SET
    • DEPLOYMENT: Replicaset의 부모역할
      • REPLICASET: Replication Cntroller를 보완하기 위해 나옴
    • STATEFUL SETS: 상태를 보장해주는 컨트롤러
    • CRONJOB: 부모입장에서 컨트롤해주는 역할
      • JOB: Batch job을 처리해주는 컨트롤러
    • REPLICATION CONTROLLER: Contorller의 가장 basic한 API
  • 요구하는 Pod의 개수를 보장하며 파드 집함의 실행을 항상 안정적으로 유지하는 것을 목표
    • 요구하는 Pod의 개수가 부족하면 template를 이용해 Pod를 추가
    • 요구하는 Pod 수보다 많으면 최근에 생성된 Pod를 삭제
  • 기본 구성
    • selector: 라벨 셀렉터 (key:value 형식)
    • replicas: 배포갯수
    • template: 컨테이너 템플릿

ex) selector가 지정한 라벨을 가지고 있는 컨테이너들의 갯수를 (replicas) 확인해서 많으면 죽이고(삭제), 부족하면 파드 템플릿 (template)를 보고 새로 생성해준다.

 

Pod-definition (정의)  ReplicationContorller-definition (정의)
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
labels:
  apps: webui
spec:
containers:
- name: nginx-container
  image: nginx:1.14  
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

 

  • ReplicationController 확인방법
# kubectl get replicationcontrollers
# kubectl get rc
# kubectl get rc [rc 명]
# kubectl describe rc [rc 명]
  • 운영중인 ReplicationController 파드 갯수 변경 방법
    # kubectl scale rc [rc 명] --replicas=2
    # kubectl edit rc [rc 명]
      => replicas 부분에서 숫자 변경
    ​

 

반응형