Chr*_*rds 4 apache-kafka kubernetes kubernetes-helm
我正在使用这个舵图:https : //github.com/helm/charts/tree/master/incubator/kafka
以及 values.yaml 中的这些覆盖
configurationOverrides:
advertised.listeners: |-
EXTERNAL://kafka-${KAFKA_BROKER_ID}.host-removed:$((31090 + ${KAFKA_BROKER_ID}))
listener.security.protocol.map: |-
PLAINTEXT:SASL_PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
sasl.enabled.mechanisms: SCRAM-SHA-256
auto.create.topics.enable: false
inter.broker.listener.name: PLAINTEXT
sasl.mechanism.inter.broker.protocol: SCRAM-SHA-256
listener.name.EXTERNAL.scram-sha-256.sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="password";
Run Code Online (Sandbox Code Playgroud)
基于此文档:https : //kafka.apache.org/documentation/#security_jaas_broker
(快速总结)
Brokers may also configure JAAS using the broker configuration property sasl.jaas.config. The property name must be prefixed with the listener prefix including the SASL mechanism, i.e. listener.name.{listenerName}.{saslMechanism}.sasl.jaas.config. Only one login module may be specified in the config value. If multiple mechanisms are configured on a listener, configs must be provided for each mechanism using the listener and mechanism prefix
listener.name.sasl_ssl.scram-sha-256.sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \
username="admin" \
password="admin-secret";
Run Code Online (Sandbox Code Playgroud)
问题是,当我启动 Kafka 时,出现以下错误:
java.lang.IllegalArgumentException: Could not find a 'KafkaServer' or 'plaintext.KafkaServer' entry in the JAAS configuration. System property 'java.security.auth.login.config' is not set
Run Code Online (Sandbox Code Playgroud)
根据优先顺序,如果没有设置上面的配置,它应该使用静态 jas 文件。
If JAAS configuration is defined at different levels, the order of precedence used is:
Run Code Online (Sandbox Code Playgroud)
helm chart 不支持配置此 jaas 文件的方法,因此使用此属性似乎是所需的方法,我只是对配置不正确的内容感到困惑。
注意:如果我禁用所有 SASL 并仅使用纯文本,则集群可以正常工作,但这在实际环境中效果不佳。
我们定义了 2 个侦听器:PLAINTEXT
和EXTERNAL
. 您已将两者都映射到SASL_PLAINTEXT
.
这真的是你想做的吗?或者你不想PLAINTEXT
要求 SASL 而只是纯文本?
如果您真的希望两者都是 SASL,那么它们都需要 JAAS 配置。在您的问题中,我只看到 EXTERNAL 的 JAAS 配置:
listener.name.EXTERNAL.scram-sha-256.sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="password";
Run Code Online (Sandbox Code Playgroud)
当您映射PLAINTEXT
到 SASL_PLAINTEXT 时,它还需要 JAAS 配置。您可以使用例如:
listener.name.PLAINTEXT.scram-sha-256.sasl.jaas.config: org.apache.kafka.common.security.scram.ScramLoginModule required username="user" password="password";
Run Code Online (Sandbox Code Playgroud)如果您希望您的PLAINTEXT
侦听器实际上是没有 SASL 的纯文本,那么您需要更新侦听器映射:
listener.security.protocol.map: |-
PLAINTEXT:PLAINTEXT,EXTERNAL:SASL_PLAINTEXT
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
3820 次 |
最近记录: |