이번 글은 kafka 플랫폼의 component 중 하나인 kafka connector에 간략히 알아보고 k8s에 배포하여 kafka connector cluster 환경을
구성해 보겠습니다. kafka connector는 kafka 와 연동하는 legacy 플롯폼의 변경 데이터를 real-time으로 target 플롯폼에 전송하기 위한
kafka 플렛폼의 CDC 기능을 갖고 있는 하나의 component입니다. kafka connect 는 source connector와 target 플랫폼에 변경 데이터를
전송하기 위한 link connector로 분류합니다.

그러면 kafka-connector를 k8s에 배포하기 위해 사전에 kafka schema-registry를 필요로 합니다. kafka-schema-registry 와
kafka-connector는 kafka를 발전시키고 있는 confluent에서 제공하는 helm chart를 시용합니다. kafka connector를 설치하기 위해
confluent 사에서 제공하는 helm chart site를 방문합니다.

cp-helm-charts

1. kafka schema-registry 를 k8s에 배포
schema-registry를 배포하기 위해 github의 cp-help-charts에서 자신의 pc에 git clone 합니다.

git clone https://github.com/confluentinc/cp-helm-charts.git

schema-registry directory로 변경합니다.
cd cp-helm-charts/charts/cp-schema-registry

values.yaml을 schema-registry-values.yaml 이름으로 상위 폴더로 복사합니다.

cp values.yaml ../schema-registry-values.yaml

schema-registry-values.yaml 파일을 열어서 bootstrapServers: “” 부분에 kafka-headless:9092로 추가합니다.

[변경 전]

[병경 후]

schema-registry를 k8s에 배포합니다.

helm install my-schema -f schema-registry-values.yaml cp-schema-registry

[수행 결과]

pod의 목록을 확인합니다.

kubectl get pods

2. kafka connector 를 k8s에 배포
kafka connector directory로 변경합니다.
cd cp-helm-charts/charts/cp-kafka-connect

values.yaml을 my-connect-values.yaml 이름으로 상위 폴더로 복사합니다.

cp values.yaml ../my-connect-values.yaml

my-connect-values.yaml 파일을 열어서 bootstrapServers: “” 부분에 kafka-headless:9092로 추가하고, url 부분에 schema-registry url 정보를 추가합니다.

schema-registry 정보 확인방법
kubectl get svc

kafka connector를 k8s에 배포합니다.
helm install my-connect -f my-connect-values.yaml cp-kafka-connect

[수행 결과]

pod 목록을 확인합니다.

kubectl get pods