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

2. 安装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技术栈

  • 29
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值