본문 바로가기
Kubernetes(k8s)/따배쿠(따라하면서 배우는 쿠버네티스) 학습

[k8s]Kubernetes - Controller/ReplicationController

by 열정주니어 2023. 2. 21.
반응형

Controller란

  • Pod의 개수를 보장
    • 스케줄러는 파드를 노드에 알맞게 배치, 컨트롤러는 파드의 개수를 보장
    • 컨트롤러가 보장중인 파드 중 한개가 다운되어 수가 적어질 경우 컨트롤러가 파드를 하나 생성하여 보장 개수를 맞춰줌
    • 보장하는 Pod의 구분은 레이블을 이용

 

Controller 종류

 

Replication Controller

  • 가장 기본적인 컨트롤러
  • 요구하는 Pod의 개수를 보장하며 파드 집합의 실행을 항상 안정적으로 유지하는 것을 목표로 함
    • 요구하는 Pod의 개수가 부족하면 template를 이용해 Pod를 추가
    • 요구하는 Pod의 수 보다 많으면 최근에 생성된 Pod를 삭제
  • 기본 구성
    • selector
    • replicas
    • template

  • selector의 key: value에 해당하는 레이블을 갖는 컨테이너를 replicas 배포 갯수만큼 운영
    • 현재 운영 중인 key:value 해당 컨테이너가 배포 갯수보다 많으면 pod를 죽이고 적으면 pod 생성

 

Replication Controller 동작원리

  • app:webui라는 label을 가지는 pod 실행 및 보장

 

Replication Controller Definition

  • Pod 정의는 labels을 key:value의 형태로 넣을 수 있음
    • labels은 Pod를 구분하는 정보, 태그
  • Replication Controller 정의는 selector이용하여 해당 label을 가진 pod를 replicas 수 만큼 보장하며 pod와 똑같은 형식을 template에 넣어 pod가 부족할때 template을 이용해 pod 생성

 

Replication Controller Example

  • create -f를 통해 ReplicationController 실행
    • kubectl create -f rc-nginx.yaml
  • get, describe rc를 통해 ReplicationController 확인
    • kubectl get rc
    • kubectl describe rc rc-nginx
  • edit, scale rc을 이용하여 보장 pod수 수평 확장&감소(scale-out & scale-down)
    • kubectl edit rc rc-nginx
    • kubectl scale rc rc-nginx --replicas=2
  • 컨트롤러의 보장 pod 수가 충족된 상황에서 같은 label의 pod가 생성되면 바로 삭제 됨
    • 보장 pod수가 넘을시 가장 최근에 생성된 pod 삭제 되므로
  • edit을 통해 template의 image정보를 바꾸고 저장하면 컨테이너의 이미지가 당장 바뀌지 않고 기존의 pod가 삭제되고 새로운 pod가 template을 통해 생성될 때 반영 됨
    • 기존의 버전이 삭제되고 새로운 버전으로 변경되는 것을 rolling update 배포라고 함

 

Reference

따배쿠16강

 

반응형