쿠버네티스 ( kubernetes ) - 컨트롤러( Controller )

2021. 5. 25. 10:49Container/kubernetes

728x90
반응형

1. 컨트롤러 란?

컨트롤러는 파드를 제어한다. 파드에게 부여할 워크로드의 타입, 처리에 따라서 적절한 컨트롤러를 선택해야한다.

 

 

2. 컨트롤러의 종류

  • 디플로이먼트
  • 레플리카셋
  • 레플리케이션 컨트롤러
  • 스테이트풀셋
  • 크론잡
  • 데몬셋
  • 가비지 컬렉션

 

3. 컨트롤의 내용

  • 기동/정지/삭제
  • 파드의 개수
  • 자기 회복
  • 퍼시스턴트 스토리지
  • 디플로이 스케쥴

 

4. 워크로드 타입

  • 프런트엔드 처리
    • 스마트폰, IOT기기, 컴퓨터 등의 클라이언트로부터 요청을 직접 받아드리는 워크로드를 총칭
    • 대량의 클라이언트 요청에 대해 짧은 시간에 응답을 반환하는

 

  • 백엔드 처리
    • 프런드엔드 위에서 업부 특성에 맞게 대응할 있는 유연성이 있어야한다.
    • 요청량이 변하더라도 일정한 응답속도를 유지해야하며, 요구사항에 맞게 단기간에 기능을 추가하고 변경하는것이 가능해야한다.
    • Mysql이나 Redis 같은 미들웨어를 사용하거나 클라우드 사업자가 제공하는 데이터베이스 관리 서비스를 활용한다.
    • 데이터스토어, 캐시, 메시징, 마이크로 서비스, 배치 처리

 

  • 배치 처리
    • 어떤 트리거에 의해 실행된다.
    • 배치처리의 내용은 다양해서 동영상포맷변환, 대량 메일 송수신, 과학 계산, GPU 사용한 딥러닝

 

  • 시스템 운영 처리
    • 시스템 운영을 돕기 위해 쿠버네티스 API 사용해서 노드를 발생하는 에러나 하드웨어 이상을 감지하고 자동으로 대책을 실행하는 파드를 만드는 경우가 있다.
    • 시스템을 자동화 할수 있는 플랫폼이다.

 

5. 컨트롤러 타입

컨트롤러는 앞에서 말한 워크로드를 처리하기 위해 파드를 제어하고 실행하는 역활을 담당한다.

 

  • 디플로이먼트(Deployment)
    • 대등한 관계에 있는 여러 개의 파드로 수평한 클러스터를 구성할 사용한다.
    • 정해진 개수만큼 파드가 기동하도록 관리하며, 가동 중인 파드를 차례 대로 교체하거나 규모를 조절 있는 기능을 갖추고 있다.

 

  • 스테이스풀셋(StatefulSet)
    • 파드와 퍼시스턴트 볼륨을 조합하여 데이터의 보관에 초점을 컨트롤러이다.
    • 파드와 퍼시스턴트 볼륨에 번호를 매겨 관리함으로써 본질적으로 일시적인 존재인  파드가 상태를 가지는 워크로드를 처리할 있도록 해준다.

 

  • ( Job )
    • 배치 처리를 하는 컨테이너가 정상 종료 때까지 재실행을 반복하는 컨트롤러이다.
    • 파드 실행 횟수, 동시 실행수, 실행 횟수의 상한을 설정할 있으며, 지워 때까지 로그를 보존한다.
    • 데이터 처리나 과학분야 계산 작업 등에 사용된다.

 

  • 크론잡 ( CronJob )
    • 지정한 시각에 정기적으로 앞서 소개한 잡을 생성한다.
    • UNIX에서 사용되는 cron 같은 형식으로 잡의 생성시각을 설정 있다.
    • 잡을 실행 오나료한 파드를 까지 보관 있는지 설정할 있어, 정기적으로 실행되어야하는 배치처리에 적합하다.

 

  • 데몬셋 ( DaemonSet )
    • k8s 클러스터의 모든 노드에서 같은 파드를 실행하기 위해 존재
    • 예를 들면 클러스터 네트워크를 구성하는 파드는 데몬셋에 의해 모든 노드에 실행되며, 새로운 노드가 추가되면 해당노드에서 자동으로 실행된다.
    • 시스템 운영 자동화에 적합하다.

 

  • 레플리카셋 ( ReplicaSet )
    • 디플로이먼트 컨트롤러와 연동해서 파드가 기동되어야 하는 수를 관리한다.
    • 레플리카셋은 직접 다루기보다는 디플로이먼틀를 이용하는 것이 기본이다.

 

  • 레플리케이션 컨트롤러 ( Replication Controller )
    • 쿠버니테스의 예전 튜토리얼 등에서 언급되는데 차세대 컨트롤러인 디플로이먼트로 대체되었다.( 잘 사용안함 )

 

6. 워크로드와 컨트롤러의 대응

워크로드타입 컨트롤러타입 다루는 스탭
프런트엔드 처리         디플로이먼트 디플로이먼트
오토스케일
인그레스
서비스
백엔드 처리         스테이트풀셋 스테이트풀셋
스토리지
서비스
배치 처리        
크론잡
잡과 크론잡
시스템 운영         데몬셋         스테이트 풀셋        
클러스터
가상화

 

728x90
반응형