K8S에서 Kafka를 이용할 때 API로 접근해야할 경우가 생길 수 있다.
본 글에서는 Kafka Rest API를 strimzi에서 제공하는 KafkaBridge를 이용해 RestAPI를 구현하고자 한다.
이전 글에 이어 작성한다.
KafkaBridge 생성
아래와 같이 kafka-proxy.yaml 파일을 생성한다.
이미 생성해 놓은 kafka broker bootstrap server 주소를 설정에서 수정한다.(bootstrapServers)
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
name: my-bridge
spec:
replicas: 1
bootstrapServers: my-cluster-kafka-bootstrap:9092
http:
port: 8080
아래 명령어를 사용해 Bridge를 생성한다.
kubectl apply -f kafka-proxy.yaml -n kafka
2. Service 등록
외부에서 API에 접근하기 위해 Service를 등록해야한다.
다음과 같이 kafka-proxy-service.yaml 을 생성한다.
apiVersion: v1
kind: Service
metadata:
name: my-bridge-nodeport
spec:
type: NodePort
ports:
- port: 8080
nodePort: 31000
selector:
strimzi.io/cluster: my-bridge
strimzi.io/kind: KafkaBridge
strimzi.io/name: my-bridge-bridge
아래 명령어를 사용해 Bridge Service를 생성한다.
kubectl apply -f kafka-proxy-service.yaml -n kafka
nodePort는 31000으로 임으로 설정하였다. 원하는 포트로 변경 가능하다.
http://마스터주소:31015/