쿠버네티스 ( kubernetes ) - 컨트롤러( Controller )
2021. 5. 25. 10:49ㆍContainer/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
반응형
'Container > kubernetes' 카테고리의 다른 글
| kuberentes CertificateSigningRequest란? (0) | 2025.02.07 |
|---|---|
| kubernetes 커맨드 모음 ( command ) (0) | 2021.05.27 |
| 쿠버네티스 ( kubernetes ) - 서비스( Service )와 클러스터 네트워크 (0) | 2021.05.25 |
| 쿠버네티스 ( kubernetes ) - 파드( Pod ) (0) | 2021.05.25 |
| 쿠버네티스(kubernetes)의 기본개념에 관하여... (0) | 2021.05.25 |