Kubernetes部署Bitnami Kafka遇arr[2]: unbound variable报错求助
在Kubernetes部署Bitnami Kafka时解决
arr[2]: unbound variable错误 问题场景
部署Bitnami Kafka镜像到Kubernetes时触发以下错误:
/opt/bitnami/scripts/libkafka.sh: line 364: arr[2]: unbound variable
使用的部署配置清单如下:
apiVersion: apps/v1 kind: Deployment metadata: name: event-bus-svc spec: replicas: 1 selector: matchLabels: app: event-bus-svc template: metadata: labels: app: event-bus-svc spec: containers: - name: event-bus-svc image: bitnami/kafka:latest imagePullPolicy: Never env: - name: KAFKA_CFG_NODE_ID value: "0" - name: KAFKA_CFG_PROCESS_ROLES value: "controller,broker" - name: KAFKA_CFG_LISTENERS value: "//kafka:9092,CONTROLLER://:9093" - name: KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP value: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT" - name: KAFKA_CFG_CONTROLLER_QUORUM_VOTERS value: "0@kafka:9093" - name: KAFKA_CFG_CONTROLLER_LISTENER_NAMES value: "CONTROLLER" - name: KAFKA_CFG_ADVERTISED_LISTENERS value: "PLAINTEXT://kafka:9092" --- apiVersion: v1 kind: Service metadata: name: event-bus-clusterip-svc spec: selector: app: event-bus-svc ports: - name: event-bus-src protocol: TCP port: 9092 targetPort: 9092
错误原因
配置中的KAFKA_CFG_LISTENERS参数格式错误:第一个listener项//kafka:9092缺少协议前缀(如PLAINTEXT)。Bitnami的Kafka启动脚本会按://分割每个listener配置,没有协议前缀时,分割后的数组元素不足,导致脚本触发数组越界错误。
解决方法
修改KAFKA_CFG_LISTENERS的value,给第一个listener添加PLAINTEXT协议前缀:
- name: KAFKA_CFG_LISTENERS value: "PLAINTEXT://kafka:9092,CONTROLLER://:9093"
重新部署后,Kafka容器即可正常启动,服务可通过event-bus-clusterip-svc:9092访问。
内容的提问来源于stack exchange,提问作者Cleriston Martins Cardoso
相关产品推荐
相关产品推荐

