You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询GKE环境下使用Strimzi Operator从零部署Kafka的完整步骤

前置准备工作
  • 已正常运行的GKE集群,版本匹配Strimzi Operator要求(推荐1.24及以上),集群节点至少3个,单节点配置不低于2C4G
  • 本地已安装配置kubectl,且已完成GKE集群凭据拉取,可正常访问集群
  • 已安装helm(可选,也可直接用kubectl部署)
  • 提前规划好Kafka集群的存储类,GKE默认提供standard(SSD存储类为premium-rwo),Kafka日志存储推荐使用SSD存储类
步骤1:部署Strimzi Operator
  • 首先创建Operator专属命名空间:kubectl create namespace strimzi-operator
  • 下载对应稳定版本的Strimzi部署压缩包,解压后在安装目录执行部署命令:kubectl apply -f install/cluster-operator/ -n strimzi-operator
  • 验证Operator运行状态:kubectl get pods -n strimzi-operator,直到看到cluster-operator的Pod状态为Running即可
步骤2:部署Kafka集群
  • 创建Kafka集群专属命名空间:kubectl create namespace kafka-cluster
  • 编写Kafka自定义资源YAML文件(示例配置如下,可按需调整副本数、存储、监听规则等参数):
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-kafka
  namespace: kafka-cluster
spec:
  kafka:
    replicas: 3
    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
    storage:
      type: persistent-claim
      size: 100Gi
      class: premium-rwo # 按需替换为自己的存储类
  zookeeper:
    replicas: 3
    storage:
      type: persistent-claim
      size: 20Gi
      class: premium-rwo
  entityOperator:
    topicOperator: {}
    userOperator: {}
  • 应用上述YAML文件:kubectl apply -f kafka.yaml -n kafka-cluster
  • 等待集群部署完成:kubectl get kafka my-kafka -n kafka-cluster,直到STATUS字段显示为Ready
  • 验证Pod运行状态:kubectl get pods -n kafka-cluster,正常运行时可看到3个Kafka Pod、3个ZooKeeper Pod和1个Entity Operator Pod均处于Running状态
步骤3:基础功能验证
  • 创建测试Topic,编写KafkaTopic资源YAML后执行kubectl apply创建即可,示例配置:
apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaTopic
metadata:
  name: test-topic
  labels:
    strimzi.io/cluster: my-kafka
  namespace: kafka-cluster
spec:
  partitions: 6
  replicas: 3
  config:
    retention.ms: 604800000
    segment.bytes: 1073741824
  • 验证Topic创建结果:kubectl get kafkatopics -n kafka-cluster
  • 生产消息测试:在集群内启动临时客户端执行生产命令,输入内容即可发送消息
    kubectl run -n kafka-cluster -it --rm kafka-producer --image=quay.io/strimzi/kafka:latest-kafka-3.5.1 --command -- /opt/kafka/bin/kafka-console-producer.sh --broker-list my-kafka-kafka-bootstrap:9092 --topic test-topic
  • 消费消息测试:启动临时消费者,可正常拉取到之前发送的测试消息即为部署正常
    kubectl run -n kafka-cluster -it --rm kafka-consumer --image=quay.io/strimzi/kafka:latest-kafka-3.5.1 --command -- /opt/kafka/bin/kafka-console-consumer.sh --bootstrap-server my-kafka-kafka-bootstrap:9092 --topic test-topic --from-beginning
步骤4:Confluent Kafka迁移适配(生产环境用)
  • 如需对外暴露集群,可按需配置NodePort、LoadBalancer或Ingress类型的listener,更新Kafka资源即可生效
  • 原有Confluent Kafka的数据迁移可使用Strimzi原生支持的MirrorMaker2组件,部署KafkaMirrorMaker2自定义资源即可实现跨集群数据同步,全量+增量同步完成后再切流下线旧集群即可
  • 原有Confluent Kafka的ACL规则可直接复用,通过Strimzi的User Operator即可实现权限配置,兼容原生Kafka的权限逻辑
  • 监控可开启Strimzi自带的metrics配置,对接GKE自带的Prometheus、Grafana服务实现集群指标可视化

内容的提问来源于stack exchange,提问作者Nishchal Dinesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 12:18:05