Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes 代理可能不可用错误Kafka架构注册表_Kubernetes_Apache Kafka_Confluent Schema Registry - Fatal编程技术网

Kubernetes 代理可能不可用错误Kafka架构注册表

Kubernetes 代理可能不可用错误Kafka架构注册表,kubernetes,apache-kafka,confluent-schema-registry,Kubernetes,Apache Kafka,Confluent Schema Registry,我已经使用Kubernetes部署和服务定义了Kafka和Kafka模式注册表配置。我将其用作环境变量设置的参考。但是,当我尝试使用注册表运行Kafka时,我看到模式注册表pods崩溃,日志中显示错误消息: [kafka-admin-client-thread | adminclient-1] WARN org.apache.kafka.clients.NetworkClient - [AdminClient clientId=adminclient-1] Connection to node

我已经使用Kubernetes部署和服务定义了Kafka和Kafka模式注册表配置。我将其用作环境变量设置的参考。但是,当我尝试使用注册表运行Kafka时,我看到模式注册表pods崩溃,日志中显示错误消息:

[kafka-admin-client-thread | adminclient-1] WARN
org.apache.kafka.clients.NetworkClient - [AdminClient
clientId=adminclient-1] Connection to node -1
(localhost/127.0.0.1:9092) could not be established. Broker may not be
available.
    [main] ERROR io.confluent.admin.utils.ClusterStatus - Error while getting broker list.
    java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for
a node assignment.
这一错误的原因可能是什么

apiVersion: v1
kind: Service
metadata:
  name: kafka-service
spec:
  ports:
    - name: client
      port: 9092
  selector:
    app: kafka
    server-id: "1"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kafka-1
spec:
  selector:
    matchLabels:
      app: kafka
      server-id: "1"
  replicas: 1
  template:
    metadata:
      labels:
        app: kafka
        server-id: "1"
    spec:
      volumes:
        - name: kafka-data
          emptyDir: {}
      containers:
        - name: server
          image: confluentinc/cp-kafka:5.1.0
          env:
            - name: KAFKA_ZOOKEEPER_CONNECT
              value: zookeeper:2181
            - name: KAFKA_ADVERTISED_LISTENERS
              value: PLAINTEXT://localhost:9092
            - name: KAFKA_BROKER_ID
              value: "2"
            - name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
              value: "1"
          ports:
            - containerPort: 9092
          volumeMounts:
            - mountPath: /var/lib/kafka
              name: kafka-data
---
apiVersion: v1
kind: Service
metadata:
  name: schema-registry-service
spec:
  ports:
    - name: client
      port: 8081
  selector:
    app: kafka-schema-registry
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kafka-schema-registry
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kafka-schema-registry
  template:
    metadata:
      labels:
        app: kafka-schema-registry
    spec:
      containers:
        - name: kafka-schema-registry
          image: confluentinc/cp-schema-registry:5.1.0
          env:
            - name: SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL
              value: zookeeper:2181
            - name: SCHEMA_REGISTRY_HOST_NAME
              value: localhost
            - name: SCHEMA_REGISTRY_LISTENERS
              value: "http://0.0.0.0:8081"
            - name: SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS
              value: PLAINTEXT://localhost:9092
          ports:
            - containerPort: 8081

您已将Schema Registry配置为在
Kafka:9092
中查找Kafka代理,但还将Kafka代理配置为将其地址公布为
localhost:9092


我对Kubernetes不太熟悉,但介绍了在使用容器、IaaS等时原则上如何处理网络配置。

我遇到了同样的错误,我遵循了cricket_007的答案,问题得到了解决


只需将KAFKA_advised_LISTENERS值从PLAINTEXT://localhost:9092更改为PLAINTEXT://schema registry service:9092

我犯了一个错误,粘贴了我的旧版本。我当前的版本是使用localhosts的,但是,它会产生相同的错误
localhost
kafka
更不正确。播发的侦听器必须是其他POD可以访问Kafka的服务DNS名称。模式注册表必须使用该名称,而不是
localhost
。。。。我建议尝试使用合流舵图来简化平台的部署