k8s 通过kafka operator部署kafka集群

 

使用的operator是strimzi,官方文档:https://strimzi.io/quickstarts/

1、应用 Strimzi 安装文件,包括 `<Strimzi-install-files>`ClusterRolesClusterRoleBindings一些自定义资源定义( CRD)。CRD 定义了用于自定义资源(例如CRDs<Cafka-container-class>` 等)的模式,这些资源将用于管理 Kafka 集群、主题和用户。

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

 

2、查看操作员的日志

kubectl logs deployment/strimzi-cluster-operator -n kafka-2 -f

 

3、创建一个新的 Kafka 自定义资源,以获取 Apache Kafka 集群

vim kafka-single-node.yaml

 

apiVersion: kafka.strimzi.io/v1
kind: KafkaNodePool
metadata:
  name: kafka
  namespace: kafka-2
  labels:
    strimzi.io/cluster: mq
spec:
  replicas: 3
  roles:
    - controller
    - broker
  storage:
    type: jbod
    volumes:
      - id: 0
        type: persistent-claim
        size: 2000Gi
        deleteClaim: false
        kraftMetadata: shared
        class: gp2
  resources:  # 资源限制直接在这里定义,不是在template下
    requests:
      cpu: "4000m"
      memory: "4Gi"
    limits:
      cpu: "7500m"
      memory: "15Gi"
  template:
    pod:
      tolerations:
      - key: "app"
        operator: "Equal"
        value: "statefulset"
        effect: "NoSchedule"
---
apiVersion: kafka.strimzi.io/v1
kind: Kafka
metadata:
  name: mq
  namespace: kafka-2
spec:
  kafka:
    version: 4.1.1
    metadataVersion: 4.1-IV1
    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
      log.retention.hours: 168
      log.segment.bytes: 1073741824
  entityOperator:
    topicOperator: {}
    userOperator: {}

 

kc apply -f kafka-single-node.yaml

 

4、查看pod运行状态

image

 

posted @ 2025-12-19 10:08  苦逼yw  阅读(2)  评论(0)    收藏  举报