• kafka入坑


    快速入门

    使用 Strimzi 项目时,在 Kubernetes 上启动和运行 Apache Kafka 集群非常简单!

    Kubernetes Kind 是一个 Kubernetes 集群,以单个 Docker 镜像的形式实现,并以容器的形式运行。它主要用于测试 Kubernetes 本身,但也可用于本地开发或 CI。

    使用 Minikube 或 Minishift 的本地安装时,Kubernetes 集群在虚拟机内启动,运行 Linux 内核和 Docker 守护程序,消耗额外的 CPU 和 RAM。

    另一方面,Kind 不需要额外的 VM - 它只是作为 Linux 容器运行,使用一组进程,使用与 Docker 守护程序相同的 Linux 内核。因此,它启动速度更快,消耗的 CPU 和 RAM 比其他方案更少,这在 Linux 主机上本地运行 Docker 守护程序时尤其明显。

    Kubernetes Kind 目前不支持节点端口或负载均衡器。您将无法从 Kubernetes 环境外部轻松访问 Kafka 集群。如果您需要从外部访问,我们建议使用 Minikube。

    api-resources

    k api-resources | grep kaf
    kafkabridges                       kb                     kafka.strimzi.io/v1beta2               true         KafkaBridge
    kafkaconnectors                    kctr                   kafka.strimzi.io/v1beta2               true         KafkaConnector
    kafkaconnects                      kc                     kafka.strimzi.io/v1beta2               true         KafkaConnect
    kafkamirrormaker2s                 kmm2                   kafka.strimzi.io/v1beta2               true         KafkaMirrorMaker2
    kafkamirrormakers                  kmm                    kafka.strimzi.io/v1beta2               true         KafkaMirrorMaker
    kafkarebalances                    kr                     kafka.strimzi.io/v1beta2               true         KafkaRebalance
    kafkas                             k                      kafka.strimzi.io/v1beta2               true         Kafka
    kafkatopics                        kt                     kafka.strimzi.io/v1beta2               true         KafkaTopic
    kafkausers                         ku                     kafka.strimzi.io/v1beta2               true         KafkaUser
    
    

    使用安装文件部署 Strimzi

    ClusterRole

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      creationTimestamp: "2024-07-11T06:53:34Z"
      labels:
        app: strimzi
        chart: kafka-operator-0.31.1
        component: broker-role
        heritage: Helm
        release: qfusion-kafka-operator
      name: strimzi-kafka-broker
      resourceVersion: "2187"
      uid: e4da519d-418d-4e84-8b63-cc73773fac87
    rules:
    - apiGroups:
      - ""
      resources:
      - nodes
      verbs:
      - get
    

    ClusterRoleBinding

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      creationTimestamp: "2024-07-12T07:32:13Z"
      labels:
        AppName: kafka-6d02b3a4
        TenantId: 847798ee3db44716b6357b04e5a55c16
        app.kubernetes.io/instance: kafka-6d02b3a4
        app.kubernetes.io/managed-by: strimzi-cluster-operator
        app.kubernetes.io/name: kafka
        app.kubernetes.io/part-of: strimzi-kafka-6d02b3a4
        strimzi.io/cluster: kafka-6d02b3a4
        strimzi.io/kind: Kafka
        strimzi.io/name: strimzi
      name: strimzi-qfusion-admin-kafka-6d02b3a4-kafka-init
      resourceVersion: "2595833"
      uid: c4e26e5a-8212-4d5e-8e44-9c72795ee1d6
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: strimzi-kafka-broker
    subjects:
    - kind: ServiceAccount
      name: kafka-6d02b3a4-kafka
      namespace: qfusion-admin
    
    

    advertised.listeners

    https://www.confluent.io/blog/kafka-listeners-explained/

    advertised.listeners 配置项在 Kafka 配置中非常重要,它指定了 Kafka 代理(Broker)应该向外部(包括客户端和其它 Kafka 代理)通告的监听地址和端口。这个配置确保了即使在复杂的网络环境中,比如使用了服务发现或者网络隔离的情况下,Kafka 集群的各个组件也能正确地找到并相互通信。

    下面是对您提供的 advertised.listeners 配置的详细解释:

    • CONTROLPLANE-9090://kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc:9090

      • 监听器名称CONTROLPLANE-9090
      • 协议:SSL(安全套接字层,用于加密通信)
      • Kafka 代理地址kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc —— 这通常是一个 Kubernetes 服务的 DNS 名称,它解析为 Kafka 集群中的一个代理。
      • 端口9090 —— Kafka 代理监听的端口。
    • REPLICATION-9091://kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc:9091

      • 监听器名称REPLICATION-9091
      • 协议:SSL
      • 端口9091 —— 用于 Kafka 代理之间的数据复制。
    • PLAIN-9092://kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc:9092

      • 监听器名称PLAIN-9092
      • 协议:PLAINTEXT(明文)
      • 端口9092 —— 对外提供非加密的访问。
    • TLS-9093://kafka-823135ee-kafka-2.kafka-823135ee-kafka-brokers.qfusion-admin.svc:9093

      • 监听器名称TLS-9093
      • 协议:SSL
      • 端口9093 —— 另一个 SSL 端口,可能用于不同的用途或客户端。
    • ZONE1-9094://10.10.x.x:23561

      • 监听器名称ZONE1-9094
      • 协议:SASL_PLAINTEXT(简单认证和明文传输)
      • IP 地址10.10.180.x.x —— 一个固定的 IP 地址,可能用于特定区域或场景的访问。
      • 端口23561 —— 特定于这个监听器的端口号。

    在 Kubernetes 环境中,.kafka-823135ee-kafka-brokers.qfusion-admin.svc 这部分是一个服务名称,它可能被 Kubernetes DNS 解析为集群内所有 Kafka 代理的内部 IP 地址。这样,即使代理的 IP 地址发生了变化,服务的 DNS 名称仍然保持稳定,可以用于通信。

    advertised.listeners 配置确保了 Kafka 集群可以在复杂的网络环境中正确地对外通告其服务地址和端口,使得客户端和其它 Kafka 代理能够找到并与之通信。

    https://blog.csdn.net/AE_BD/article/details/136626386

  • 相关阅读:
    Electron(v26.2.1)无法加载React Developer Tools(v4.28.0)
    uni-app下Worker的使用
    头歌平台——C语言之数学运算强化练习题
    瑞芯微开发板资料收集
    【从头构筑C#知识体系】1.4 事件
    使用 Elastic 输入包自定义你的数据摄取
    File “build/make/tools/fileslist_util.py“, line 62, in main
    路由器本地docker 下载node容器部署 thressjs文档
    东北最大城商行退出异地助贷,发力区域自营业务
    HDFS架构
  • 原文地址:https://blog.csdn.net/hezuijiudexiaobai/article/details/140432678