로컬에 떠 있지 않은 kafka(AWS의 kafka나 회사의 kubernetes 위에 떠 있는 kafka 등)에 접속해야 할 일이 가끔 있다. 여느 ssh 서버 접속하듯이 단순히 그 경로를 포트포워딩하여 로컬 주소와 매핑하여 연결하려고 하면 안 되는 경우가 있다. 가령, 다음과 같은 사례를 살펴볼 수 있다.
내가 찾아본 것이 맞다면 kafka client 접속 시에는 다음과 같이 동작한다. (참고: https://www.confluent.io/blog/kafka-client-cannot-connect-to-broker-on-aws-on-docker-etc/)
이때 kubernetes DNS는 kubernetes 위에서만 돌아가지, 내 로컬에서는 돌아갈 리가 없다. 따라서 단순히 포트포워딩만 하면 연결이 되지 않는다. 아래와 같이 /etc/hosts
에 DNS 주소를 강제로 넣어서 해결하자.
127.0.0.1 kafka.myserver.svc.cluster.local
참고: https://github.com/bitnami/charts/issues/1021
+ kafka-ui 짱 좋음(https://github.com/provectus/kafka-ui)