0


Kubernetes 1.28.2安装配置kafka集群及UI for Kafka

本文详述了在kubernetes 1.28.2下安装配置kafka群集及安装配置开源免费的UI for Kafka 图形化web界面管理kafka的步骤。Kafka版本是最新的3.6.1。 本文用于测试环境,如用于生产,请自行调整。

  1. 安装Kafka-Operator

创建命名空间:

kubectl create namespace kafka

下载

https://strimzi.io/install/latest?namespace=kafka

并重命名为kafka-install.yaml,执行安装

kubectl create -f kafka-install.yaml -n kafka

创建kafka集群

下载https://strimzi.io/examples/latest/kafka/kafka-persistent-single.yaml

以下红色的是修改或增加的内容:(增加了namespace, 增加了nodePort和修改了storage class的名称,本测试环境使用了Minio的CSI的directpv-min-io作为storage class)

apiVersion: kafka.strimzi.io/v1beta2

kind: Kafka

metadata:

name: my-cluster

namespace: kafka

spec:

kafka:

version: 3.6.1

replicas: 3

listeners:

  - name: plain

    port: 9092

    type: internal

    tls: false

  - name: tls

    port: 9093

    type: internal

    tls: true

  - name: external # 增加外部访问用的listener

    port: 9094 #端口

    type: nodeport # nodeport类型

    tls: false

    configuration:

      bootstrap:

        nodePort: 32094 # 指定nodeport端口,不指定会随机分配

config:

  offsets.topic.replication.factor: 1

  transaction.state.log.replication.factor: 1

  transaction.state.log.min.isr: 1

  default.replication.factor: 1

  min.insync.replicas: 1

  inter.broker.protocol.version: "3.6"

storage:

  type: jbod

  volumes:

  - id: 0

    type: persistent-claim

    size: 1Gi

    class: directpv-min-io   

    deleteClaim: false       

zookeeper:

replicas: 3

storage:

  type: persistent-claim

  size: 1Gi

  class: directpv-min-io

  deleteClaim: false

entityOperator:

topicOperator: {}

userOperator: {}

kubectl apply -f kafka-persistent-single.yaml

kubectl get pod -n kafka

kubectl get svc -n kafka

kubectl get deploy -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

消费数据:

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

也可以手工进入container内部运行命令,下面以生产数据为例:

kubectl get pod kafka-producer -o jsonpath='{.spec.containers[*].name}' -n kafka

查询到container名称也为:kafka-producer

kubectl exec -it kafka-producer -n kafka -c kafka-producer -- /bin/sh

cd bin

手工生产数据:

./kafka-console-producer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic my-topic

  1. 安装UI for Kafka:

Github网址:

GitHub - provectus/kafka-ui: Open-Source Web UI for Apache Kafka Management

临时测试:

docker run -it -p 8080:8080 -e DYNAMIC_CONFIG_ENABLED=true provectuslabs/kafka-ui

永久运行:

vi ui-kafka.yml内容如下:

services:
  kafka-ui:
    container_name: kafka-ui
    image: provectuslabs/kafka-ui:latest
    ports:
      - 8080:8080
    environment:
      DYNAMIC_CONFIG_ENABLED: true
    volumes:
      - ~/kui/config.yml:/etc/kafkaui/dynamic_config.yaml

创建目录及文件:

mkdir kui

cd kui

touch config.yml

chmod 777 config.yml

mkdir -p /etc/kafkaui

touch /etc/kafkaui/dynamic_config.yaml

chmod 777 /etc/kafkaui/dynamic_config.yaml

cd ~

启动 ui-kafka container:

docker-compose -f ui-kafka.yml up -d

查看启动的container:

docker container ls|grep kafka

然后在浏览器运行:(192.168.249.10是kubernetes cluster的master node的ip)

http://192.168.249.10:8080/

添加kafka cluster:

查看Message:

基于浏览器Produce message:

参考网址:

Quickstarts

GitHub - provectus/kafka-ui: Open-Source Web UI for Apache Kafka Management

使用Strimzi-Kafka-Operator搭建kafka集群 | 爪哇君-Java技术栈

标签: kubernetes kafka 容器

本文转载自: https://blog.csdn.net/xbll263/article/details/136387104
版权归原作者 xbll263 所有, 如有侵权,请联系我们删除。

“Kubernetes 1.28.2安装配置kafka集群及UI for Kafka”的评论:

还没有评论