在k8s上使用strimzi operator安装kafka集群

文章目录

Strimzi Operator 是一种强大的工具,它简化了 Kafka 在 Kubernetes 环境中的部署和管理, 记录下部署教程

部署步骤

官方地址: https://strimzi.io/quickstarts/

创建命名空间:

kubectl create namespace kafka-system

  1. 安装operator, 完成后

    kubectl create -f 'https://strimzi.io/install/latest?namespace=kafka-system' -n kafka-system

    如果k8s集群域名不是默认的cluster.local, 需要在operator资源上使用KUBERNETES_SERVICE_DNS_DOMAIN环境变量覆盖原来的

  2. 执行kubectl apply -f kafka.yaml -n kafka-system

    apiVersion: kafka.strimzi.io/v1beta2
    kind: KafkaNodePool
    metadata:
    name: dual-role
    labels:
    strimzi.io/cluster: my-cluster
    spec:
    replicas: 3
    roles:
    - controller
    - broker
    resources:
    requests:
    memory: 4Gi
    cpu: "2"
    limits:
    memory: 4Gi
    cpu: "2"
    storage:
    type: jbod
    volumes:
    - id: 0
    type: persistent-claim
    size: 20Gi
    class: disk-ssd
    deleteClaim: false
    kraftMetadata: shared

    apiVersion: kafka.strimzi.io/v1beta2
    kind: Kafka
    metadata:
    name: my-cluster
    annotations:
    strimzi.io/node-pools: enabled
    strimzi.io/kraft: enabled
    spec:
    kafka:
    version: 3.8.0
    metadataVersion: 3.8-IV0
    listeners:
    - name: plain
    port: 9092
    type: internal
    tls: false
    - name: tls
    port: 9093
    type: internal
    tls: true
    config:
    offsets.topic.replication.factor: 3
    transaction.state.log.replication.factor: 3
    transaction.state.log.min.isr: 2
    default.replication.factor: 3
    min.insync.replicas: 2
    entityOperator:
    topicOperator: {}
    userOperator: {}

  3. 创建生产者:
    kubectl -n kafka-system run kafka-producer -ti --image=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 --rm=true --restart=Never -- bin/kafka-console-producer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic my-topic

  4. 创建消费者:
    kubectl -n kafka-system run kafka-consumer -ti --image=quay.io/strimzi/kafka:0.45.0-kafka-3.8.0 --rm=true --restart=Never -- bin/kafka-console-consumer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic my-topic --from-beginning

其他示例:

https://github.com/strimzi/strimzi-kafka-operator/blob/release-0.43.x/examples/kafka/kafka-persistent.yaml

说明:

kafka-ephemeral-single.yaml:非持久化存储,单节点集群;

kafka-ephemeral.yaml:非持久化存储,多节点集群;

kafka-jbod.yaml:jbod存储,多节点集群;

kafka-persistent-single.yaml:持久化存储,单节点集群;

kafka-persistent.yaml :持久化存储,多节点集群;

复制代码
相关推荐
Elastic 中国社区官方博客6 小时前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
空中海6 小时前
Kubernetes 生产实践、可观测性与扩展入门
java·贪心算法·kubernetes
Devin~Y6 小时前
大厂Java面试实录:Spring Boot/Cloud、Kafka、Redis、K8s 与 Spring AI(RAG/Agent)三轮连环问
java·spring boot·redis·mysql·spring cloud·kafka·kubernetes
深色風信子7 小时前
Docker newapi
运维·docker·容器·newapi
旷世奇才李先生7 小时前
Spring Cloud Alibaba 2026实战:微服务治理全解析
微服务·云原生·架构
GL_Rain10 小时前
快速搭建Halo博客 + 崩溃秒恢复方案(Docker极简部署)
运维·docker·容器
lar_slw10 小时前
k8s部署前端项目
前端·容器·kubernetes
米高梅狮子13 小时前
06.Kubernetes Secret和Kubernetes Controllers
云原生·容器·kubernetes
雨奔14 小时前
Kubernetes 实操:创建 LimitRange 和 Pod 并管理内存资源
云原生·容器·kubernetes
LSL666_14 小时前
什么是微服务
微服务·云原生·架构