Kubernetes or Openshift 등 컨테이너 플랫폼 기반 kafka cluster를 구성 – IBM Developer

IBM Developer 한국어 사이트가 2021년 6월 1일자로 종료됩니다. developer.ibm.com 영문 사이트는 계속 사용하실 수 있습니다.

Kubernetes 기반 kafka 클러스터 구성 (1/4)

open source 기술 trend에서 메시징 플랫폼으로서 de-facto 처럼 사용되고 있는 대표적인 kafka를 helm chart를 시용하여 환경 구성을 하는 과정을 설명합니다. kafka를 kubernetes에 배포하기 위해 우선 kafka 데이터를 저장하기 위한 static pv 또는 dynamic pv가 필요합니다. 본 글에서는 dynamic pv를 활용한 kafka를 배포할 것입니다.

1. kafka helm chart에서 dynamic pv 설정

kafka를 설치하기 위해 kubernetes kafka incubator github site에 방문합니다. 하이퍼레저 로드맵

storage를 설정하기 위해 values.yaml 을 작업 pc에 download하여 kafka-values.yaml 로 저장하고, 파일을 editor로 열여서 storageClass 부분의 주석을 자신의 kubernetes에 환경에서 제공하는 storageClass를 설정한다.

remove comment

ibm cloud kubernetes에서 제공하는 많은 storageClass 목록에서 교육 목적으로 비용이 저렴한 “ibmc-file-bronze” storageClass로 설정합니다. on-prem 환경에 kubernetes 구성하였다면 nfs storage를 storageClass로 환경구성하여 설정합니다.

nfs storageclass

2. kafka-values.yaml 을 kubernetes 환경에 배포

helm chart v2.x 인 경우
helm install --name kafka -f kafka-values.yaml incubator/kafka

helm chart v3.x 이상인 경우
helm install kafka -f kafka-values.yaml incubator/kafka


[실행 결과]
deploy kafka to k8s

3. kafka operation을 위한 kafka-client 배포

kafka 를 kubernetes로 성공적으로 배포하고 출력 결과중에 testclient 정보를 editor에 복사하고, testclient를 kafka-client로 변경합니다.

[변경 전]
deploy kafka to k8s

[변경 후]
deploy kafka to k8s

4. kafka-client를 kubernetes에 배포

kafka-client를 kubernetes에 배포합니다.  
kubectl apply -f kafka-client.yaml  
pod/kafka-client created  

kubernetes에 배포된 kafka-client 와 kafka cluster pod를 확인합니다.  
kubectl get pods


[실행 결과]
deploy kafka to k8s