首页 > 解决方案 > 错误 kafka 无法连接 Kubernetes 上的 zookeeper(单节点)

问题描述

我在 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: {}

标签: dockerkubernetesapache-kafkaapache-zookeeper

解决方案


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

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

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

希望有帮助!


推荐阅读