0

我尝试在 Kubernetes 集群中使用 Strimzi (0.14) 构建 Kafka 集群。

我使用的是srimzi自带的例子,即examples/kafka/kafka-persistent.yaml。

此 yaml 文件如下所示:

apiVersion: kafka.strimzi.io/v1beta1
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    version: 2.3.0
    replicas: 3
    listeners:
      plain: {}
      tls: {}
    config:
      offsets.topic.replication.factor: 3
      transaction.state.log.replication.factor: 3
      transaction.state.log.min.isr: 2
      log.message.format.version: "2.3"
    storage:
      type: jbod
      volumes:
      - id: 0
        type: persistent-claim
        size: 12Gi
        deleteClaim: false
  zookeeper:
    replicas: 3
    storage:
      type: persistent-claim
      size: 9Gi
      deleteClaim: false
  entityOperator:
    topicOperator: {}
    userOperator: {}

kubectl apply -f examples/kafka/kafka-persistent.yaml

动物园管理员和卡夫卡经纪人都长大了。
但是,我在 kafka 代理日志中看到了错误: [SocketServer brokerId=1] Failed authentication with /10.244.5.94 (SSL handshake failed) (org.apache.kafka.common.network.Selector) [data-plane-kafka-network-thread-1-ListenerName(REPLICATION)-SSL-0]

有谁知道如何解决这个问题?

4

1 回答 1

0

导致这种情况的原因之一是,如果您的集群对服务域使用不同的 DNS 后缀(默认为.cluster.local)。您需要找出正确的 DNS 后缀并使用KUBERNETES_SERVICE_DNS_DOMAINStrimzi Cluster Operator 部署中的环境变量来覆盖默认值。

如果您执行到 Kafka 或 Zookeeper pod 之一并执行hostname -f它应该会显示完整的主机名,您可以从中识别后缀。

(我从评论中粘贴了这个作为完整答案,因为它有助于解决问题。)

于 2019-11-08T11:08:39.317 回答