저는 Rancher Desktop에서 Helm과 Kubernetes를 사용해 단일 노드 Kafka 클러스터를 설정했습니다.
Java/Spring Boot 애플리케이션이 시작될 때 Kafka에 로그인하고 프로듀서를 시작하는 것까지는 성공하지만, 메시지를 전송하려고 하면 실패합니다.
Kafka 클러스터는 Bitnami Helm 차트를 사용해 배포했습니다.
아래는 제가 사용한 values.yaml
입니다.
controller:
replicaCount: 1
persistence:
size: 1Gi
podSecurityContext:
enabled: false
containerSecurityContext:
enabled: false
resources:
limits:
memory: 2Gi
automountServiceAccountToken: true
externalAccess:
enabled: true
service:
type: LoadBalancer
ports:
external: 9094
autoDiscovery:
enabled: true
broker:
podSecurityContext:
enabled: false
containerSecurityContext:
enabled: false
sasl:
client:
users: [ "myuser" ]
passwords: [ "mypassword" ]
rbac:
create: true
# siehe https://github.com/bitnami/charts/issues/19522
extraConfig: |
deleteTopicEnable=true
auto.create.topics.enable=false
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
provisioning:
enabled: true
topics:
- name: heartBeat
Java 애플리케이션을 시작하면 다음과 같은 로그가 출력됩니다:
[2025-04-15 10:37:05,188] [main] severity=INFO - org.apache.kafka.clients.producer.ProducerConfig.logAll - traceid= - ProducerConfig 값들:
acks = -1
auto.include.jmx.reporter = true
batch.size = 16384
bootstrap.servers = [localhost:9094]
...
org.springframework.kafka.support.serializer.JsonSerializer
[2025-04-15 10:37:05,188] [main] severity=INFO - org.apache.kafka.common.telemetry.internals.KafkaMetricsCollector.init - traceid= - Kafka metrics collector 초기화 중
[2025-04-15 10:37:05,198] [main] severity=INFO - org.apache.kafka.clients.producer.KafkaProducer.configureTransactionState - traceid= - [Producer clientId=producer-1] idemopotent producer 인스턴스화 완료
[2025-04-15 10:37:05,207] [main] severity=INFO - org.apache.kafka.common.security.authenticator.AbstractLogin.login - traceid= - 로그인 성공
[2025-04-15 10:37:05,213] [main] severity=INFO - org.apache.kafka.common.utils.AppInfoParser.<init> - traceid= - Kafka 버전: 3.8.1
[2025-04-15 10:37:05,214] [main] severity=INFO - org.apache.kafka.common.utils.AppInfoParser.<init> - traceid= - Kafka 커밋 ID: 70d6ff42debf7e17
[2025-04-15 10:37:05,214] [main] severity=INFO - org.apache.kafka.common.utils.AppInfoParser.<init> - traceid= - Kafka 시작 시간(ms): 1744706225213
[2025-04-15 10:37:05,451] [kafka-producer-network-thread | producer-1] severity=INFO - org.apache.kafka.clients.Metadata.update - traceid= - [Producer clientId=producer-1] 클러스터 ID: jg0sCtb1jEoEwK8lBIlDGj
[2025-04-15 10:37:26,496] [kafka-producer-network-thread | producer-1] severity=INFO - org.apache.kafka.clients.NetworkClient.handleDisconnections - traceid= - [Producer clientId=producer-1] 노드 0 연결 끊김
[2025-04-15 10:37:26,497] [kafka-producer-network-thread | producer-1] severity=WARN - org.apache.kafka.clients.NetworkClient.processDisconnection - traceid= - [Producer clientId=producer-1] 노드 0 (192.168.127.2/192.168.127.2:9094) 와의 연결을 설정할 수 없습니다. 노드가 사용 불가능할 수 있습니다.
로그인 이후에 무언가 연결을 시도합니다.
노드 0 (192.168.127.2/192.168.127.2:9094) 와의 연결을 설정할 수 없습니다. 노드가 사용 불가능할 수 있습니다.
물론 이것은 작동하지 않습니다. Kafka는 오직 localhost:9094를 통해서만 접근할 수 있기 때문입니다.
클라이언트나 Kafka가 메시지를 전송하기 위해 올바른 주소를 사용하도록 설정하려면 어떻게 해야 하나요?