Bitnami Kafka Helm Chart配置provisioning.topics参数报错求助
错误根因
bitnami/kafka Helm Chart的provisioning.topics参数要求传入对象数组,每个元素为主题的配置对象,必须包含name字段,还可自定义分区数、副本因子、清理策略等配置。你之前直接传入主题名字符串,模板渲染时无法从字符串中读取name字段,因此触发报错。
解决方案
方案1:直接通过--set参数配置
修改--set中主题的赋值规则,明确指定name字段,示例命令如下:
helm install kafka bitnami/kafka \ --set externalAccess.enabled=true \ --set externalAccess.service.loadBalancerIPs[0]='' \ --set provisioning.enabled=true \ --set provisioning.topics[0].name="123test" \ --set provisioning.topics[0].partitions=3 \ --set provisioning.topics[0].replicationFactor=1
如果需要配置多个主题,依次叠加索引即可,示例如下:
--set provisioning.topics[1].name="test2" --set provisioning.topics[1].partitions=6
方案2:通过values.yaml文件配置(更推荐,适合多主题、多配置的场景)
新建values.yaml文件,写入如下配置:
externalAccess: enabled: true service: loadBalancerIPs: - "" provisioning: enabled: true topics: - name: "123test" partitions: 3 replicationFactor: 1 # 可继续添加更多主题 - name: "test-topic-2" partitions: 6 replicationFactor: 2 config: cleanup.policy: "compact" retention.ms: "86400000"
执行安装命令时指定配置文件:
helm install kafka bitnami/kafka -f values.yaml
配置验证
安装完成后,可进入Kafka容器执行如下命令验证主题是否创建成功:
kubectl exec -it <kafka-pod-name> -- kafka-topics.sh --list --bootstrap-server localhost:9092
如果输出中包含123test则说明配置生效。
内容的提问来源于stack exchange,提问作者Pfarc
相关产品推荐
相关产品推荐

