본문 바로가기

IT Study/Kubernetes

kubernetes ReplicationController

kubernetes ReplicationController

쿠버네티스의 가장 기본적인 컨트롤러로 지정한 숫자만큼 파드를 항상 보장해준다.

지정한 파드의수 보다 적거나,많으면 파드의갯수를 조절하여 지정된 갯수만큼 보장.자동&수동으로 스케일링 기능 가능

 

 

레플리케이션 컨트롤러를 구성하는 가장중요한 3가지 요소.

 

●replicas 

->  보장해 줄 파드의 갯수

●selector

-> 복제할 파드의 레이블 셀렉터 key:value 타입

●template

-> 복제할 파드를 만들기위한 파드템플릿

 

레플리케이션 컨트롤러 구성방법. yaml 예제

 

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

 

-> selector:   app: webui   app:webui라는 labels를 가진 pod를 replicas: 3 3개를  template: 에 맞춰 3개 생성

   

※ Pod template는 반드시 selector에 있는 key:value 를 labels로 포함하고 있어야 한다. 라벨은 많아도 상관없다.

 

 

●ReplicationController 생성 ,관리 및 확인

 

 

#kubectl get replicationcontrollers  [ or kubectl get rc] 로 생성된 레플리케이션 컨트롤러를 확인할수있다.

DESIRED= 보장하는 파드의갯수

CURRENT=현재 running중인 파드갯수

READY= 생성된 파드중 준비가완료된 파드갯수

 

레플리케이션 컨트롤러 scale 설정

 

#kubectl edit rc [ RC명 ] 에서 replicas: 변경 또는  #kubectl scale rc [RC명] --replicas= 으로도 변경가능하다.

 

 

 

레플리케이션 컨트롤러 삭제 delete

 

#kubectl delete pod [파드명] 으로만 삭제한다면 레플리케이션 컨트롤러에의해 다시 생성된다

레플리케이션 컨트롤러를 전체 삭제해주어야됨

 

#kubectl delete rc [RC명]

 

레플리케이션 컨트롤러에의해 삭제됨과 동시에 다시 생성된다 kubectl delete rc [RC명] 명령어로 삭제해주어야됨.