【问题标题】:Error kafka cannot connect zookeeper on Kubernetes(single node)错误 kafka 无法连接 Kubernetes 上的 zookeeper(单节点)
【发布时间】:2019-05-18 19:27:34
【问题描述】:

我在 kubernetes 单节点上运行 kafka 和 zookeeper 时遇到问题,我用 我的笔记本电脑进行测试,它可以正常工作,但我在私有上运行服务器它在 kafka pod 中显示错误并且 我不知道私人服务器上的网络设置

我使用 kompose 将 docker-compose 文件转换为 k8s yaml 文件

zoo1:名称解析暂时失败

如何修复该错误?

谢谢

我的部署和服务 yaml 文件

kafka1-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: kafka1
  name: kafka1
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: kafka1
    spec:
      containers:
      - env:
        - name: KAFKA_ADVERTISED_LISTENERS
          value: PLAINTEXT://kafka1:9092
        - name: KAFKA_BROKER_ID
          value: "1"
        - name: KAFKA_LOG4J_LOGGERS
          value: kafka.controller=INFO,kafka.producer.async.DefaultEventHandler=INFO,state.change.logger=INFO
        - name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
          value: "1"
        - name: KAFKA_ZOOKEEPER_CONNECT
          value: zoo1:2181
        image: confluentinc/cp-kafka:4.0.0
        name: kafka1
        ports:
        - containerPort: 9092
        resources: {}
      hostname: kafka1
      restartPolicy: Always
status: {}

kafka1-service.yaml

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: kafka1
  name: kafka1
spec:
  ports:
  - name: "9092"
    port: 9092
    targetPort: 9092
  selector:
    io.kompose.service: kafka1
status:
  loadBalancer: {}

zoo1-deployment.yaml

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: zoo1
  name: zoo1
spec:
  replicas: 1
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        io.kompose.service: zoo1
    spec:
      containers:
      - env:
        - name: ZOO_MY_ID
          value: "1"
        - name: ZOO_PORT
          value: "2181"
        - name: ZOO_SERVERS
          value: server.1=zoo1:2888:3888
        image: zookeeper:3.4.9
        name: zoo1
        ports:
        - containerPort: 2181
        resources: {}
      hostname: zoo1
      restartPolicy: Always
status: {}

zoo1-service.yaml

apiVersion: v1
kind: Service
metadata:
  annotations:
    kompose.cmd: kompose convert
    kompose.version: 1.16.0 (0c01309)
  creationTimestamp: null
  labels:
    io.kompose.service: zoo1
  name: zoo1
spec:
  ports:
  - name: "2181"
    port: 2181
    targetPort: 2181
  selector:
    io.kompose.service: zoo1
status:
  loadBalancer: {}

【问题讨论】:

  • 如果你想使用 Confluent 容器,我建议使用 Confluent helm charts
  • 感谢回复,但我无法在 helm t 上创建 kafka 和 zookeeper 始终挂起,我检查了这一点,问题是 helm 无法创建持久卷(状态始终处于挂起状态)。我是 k8s 的初学者,它与 docker 不同
  • 我不确定我是否理解问题所在?
  • 我只想让 kafka 在 k8s 上连接 zookeeper,我尝试了你的方式我遇到了一个关于 helm 的问题(我不确定我安装 helm 的方式是否正确)状态 kafka 和 zookeeper pod 始终处于挂起状态跨度>

标签: docker kubernetes apache-kafka apache-zookeeper


【解决方案1】:

你必须为 kafla 和 zookeeper 创建无头服务

我建议在 kubernetes 中使用 confluent helm 图表来使用 kafka,您可以了解他们是如何创建无头服务的。

什么是日志?究竟发生了什么?

希望对您有所帮助!

【讨论】:

  • 感谢回复,但我无法在 helm t 上创建 kafka 和 zookeeper 始终挂起,我检查了这一点,问题是 helm 无法创建持久卷(状态始终处于挂起状态)。我是 k8s 的初学者,它与 docker 不同
  • 关于持久化卷,它发生一次,你必须自己创建它们。
猜你喜欢
  • 2018-08-25
  • 2015-04-24
  • 2021-05-03
  • 1970-01-01
  • 2018-04-28
  • 2020-10-26
  • 1970-01-01
  • 2021-12-06
  • 1970-01-01
相关资源
最近更新 更多