728x90
반응형
기존 코드
# 헬름 설치
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
# bitnami 추가
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
# 카프카 설치
helm install my-kafka --set volumePermissions.enabled=true
문제 상황
위와 같은 코드를 이용해 EKS에 Helm 을 이용해 카프카를 구축하던 도중 문제가 발생했다.
카프카 Pod들의 Status는 Running이지만 마이크로 서비스를 배포했을때 카프카 연결에 계속 실패해 계속 RESTARTS되었다.
먼저 마이크로서비스가 배포된 파드의 로그를 살펴보았다.
kubectl logs -f <pod이름>
도커 허브에 올라간 이미지를 통해 정상적으로 스프링 부트는 실행되었지만 카프카 연결에 실패하는 상황이였다.
다음으로 확인해 볼 사항은 카프카가 올라간 Pod 살펴보았다.
카프카 파드의 log를 살펴보았더니 다음과 같은 에러가 계속 실행되었다.
[2024-03-25 06:04:16,805] INFO [SocketServer listenerType=BROKER, nodeId=0]
Failed authentication with /192.168.36.181 (channelId=192.168.39.33:9092-192.168.36.181:39794-195)
(Unexpected Kafka request of type METADATA during SASL handshake.)
(org.apache.kafka.common.network.Selector)
클라이언트가 SASL 인증을 시도하지만 실패하는 상황이였다.
Unexpected Kafka request of type METADATA during SASL handshake.
과거 Helm 관련된 kafka 설치 법을 뒤져봐도 해당 문제에 대한 글이 별로 없었다.
예전에는 문제 없이 동작했지만, 최근 버전의 Helm을 통해 kafka를 설치에 종종 문제가 생기는 듯 했다.
yaml 파일을 이용해 설정해도 되지만 helm install 시 옵션을 통해 해결했다.
해결 코드
Helm install my-kafka --set volumePermissions.enabled=true,replicaCount=3,listeners.client.protocol=PLAINTEXT oci://registry-1.docker.io/bitnamicharts/kafka
옵션을 통해 install 시 listeners.client.protocol=PLAINTEXT 옵션을 주어 해결했다.
브로커가 클라이언트 요청을 수신하기 위해 사용하는 프로토콜을 보안이 적용되지 않은 PLAINTEXT 를 사용해 우선 문제를 해결했다.
728x90
반응형
'벡엔드 > MSA' 카테고리의 다른 글
카프카(Kafka)를 사용하는 이유 (0) | 2024.03.26 |
---|---|
Helm bitnami를 사용한 카프카(kafka) 설치 24.03 (1) | 2024.03.25 |
Retry & DLQ (0) | 2024.03.21 |
Kafka Scaling 카프카 스케일링 (0) | 2024.03.20 |
OpenFeign (@FeignClient) (0) | 2024.03.19 |