Strimzi
는 Apache Kafka
를 쿠버네티스 안에서 심플하게 사용할 수 있게 해주는 RedHat OpenShift
가 개발하는 오픈 소스 솔루션Strimzi
는 Kafka
를 사용하기 위해 컨테이너 이미지와 오퍼레이터를 제공Strimzi
에서 제공하는 Cluster Operator
를 이용해 Kafka
클러스터 및 구성 컴포넌트들을 구성 가능Strimzi
는 쿠버네티스 오퍼레이터 패턴
을 사용해 사용자가 정의한 내용(Custom Resource, CR
)을 감지해 동일한 형태의 리소스를 쿠버네티스에 생성한다.Strimzi
는 여러 종류의 오퍼레이터를 제공한다.
Cluster Operator
: Kafka Cluster, Kafka Connect, Kafka MM, Kafka Bridge ,Kafka Exporter, Cruise Control, Entity Operator를 배포하고 관리Entity Operator
: Topic Operator와 User Operator를 구성Topic Operator
: Kafka Topic을 관리User Operator
: Kafka User를 관리Strimzi
에서 제공하는 Custom Resource Definition(CRD)
에 맞게 Kafka CR을 정의Cluster Operator
는 Kafka CR을 감지하고 쿠버네티스 API 서버에 정의한 리소스 상태와 동일하게 리소스 생성 요청Cluster Operator
는 생성된 리소스를 지속적으로 감시하면서 관리<aside>
<img src="/icons/verified_blue.svg" alt="/icons/verified_blue.svg" width="40px" /> 기본적으로 Cluster Operator
를 생성하면 1개의 오퍼레이터만 생성된다.
따라서, 운영 환경에서는 replica 개수를 늘려 장애 발생 시 리더 선출을 통해 대기하던 Cluster Operator
가 Kafka CR을 관리하고 배포하도록 설정해야 한다.
</aside>
Strimzi Cluster Operator
를 사용함으로써 쿠버네티스 내에서 동작하는 Kafka 및 Kafka 컴포넌트 리소스의 관리를 위임할 수 있다.Kubernetes Native
와의 통합을 통해 쿠버네티스의 이점을 최대한 활용할 수 있다..properties
에 직접 정의하지 않고, 쿠버네티스 리소스를 사용하는 것과 같이 YAML
에 CR
을 정의하는 것으로 IaaC (Infra as a Code)
및 편리하게 Configuration을 정의할 수 있다.