TL;DR
Kafkaとkafka-uiをMinikubeで動かしてみました。
この記事では実際にKafkaとkafka-uiが動くまでの過程について記載します。
GitHub: https://github.com/cacapouh/kafka-ui-k8s
Minikubeを起動
Strimziというツールを動かす関係で、
起動時にメモリ割り当てを4GB以上にして起動する必要がありました。
因みにですが、Minikubeのデフォルトのメモリ割り当ては2GBです。
minikube start --memory=4096
Strimziのデプロイ
Kafkaをk8sにデプロイするためにStrimziというツールを使います。
そのため、まずStrimziをデプロイする必要がありますが、
Strimzi側で用意されているマニフェストを単に適用するだけで、デプロイできました。
以下は実際に実行したコマンドになります。
kubectl create namespace kafka
kubectl create -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka
Kafkaクラスタのデプロイ
こちらも同様に、単にStrimziの方で用意されているサンプルのマニフェストファイルを適用するだけで、デプロイできました。
以下、デプロイおよび動作チェック用のコマンドになります。
マニフェスト適用:
kubectl apply -f https://strimzi.io/examples/latest/kafka/kafka-persistent-single.yaml -n kafka
起動するまで待つ:
kubectl wait kafka/my-cluster --for=condition=Ready --timeout=300s -n kafka
メッセージの送信:
$ kubectl -n kafka run kafka-producer -ti --image=quay.io/strimzi/kafka:0.39.0-kafka-3.6.1 --rm=true --restart=Never -- bin/kafka-console-producer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic my-topic
If you don't see a command prompt, try pressing enter.
>Hello strimzi!
>Hoge!
メッセージの受信:
$ kubectl -n kafka run kafka-consumer -ti --image=quay.io/strimzi/kafka:0.39.0-kafka-3.6.1 --rm=true --restart=Never -- bin/kafka-console-consumer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic my-topic --from-beginning
If you don't see a command prompt, try pressing enter.
Hello strimzi!
Hoge!
kafka-uiのセットアップ
以下の自作のマニフェストファイルを用いて、kafka-uiをデプロイしました。
マニフェスト適用:
kubectl apply -n kafka -f kafka-ui.yml
ブラウザからアクセス:
minikube service kafka-ui-service -n kafka
おわりに
kafka-ui以外は、Strimzi側で用意されているマニフェストファイルを適用するだけでデプロイできました。簡単でしたね