【发布时间】:2021-10-17 18:01:13
【问题描述】:
我需要在 kubernetes 上启动 Kafka Rest Proxy。当我使用 docker-compose 在本地机器上使用本地 Kafka 代理和 zookeeper 启动它时,它运行良好,我得到了最后一个日志输出,表明 Kafka Rest 正在运行并等待请求。当我在 kubernetes 上启动它时,我只得到以下输出:
===> User
uid=1000(appuser) gid=1000(appuser) groups=1000(appuser)
===> Configuring ...
===> Running preflight checks ...
===> Check if Kafka is healthy ...
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/share/java/cp-base-new/slf4j-log4j12- 1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/usr/share/java/cp-base-new/slf4j-simple-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory[]
log4j:WARN No appenders could be found for logger (io.confluent.admin.utils.cli.KafkaReadyCommand).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
然后 pod 以错误代码 1 退出并处于 CrashLoopBackOff 状态。
对于环境变量,我设置了KAFKA_REST_BOOTSTRAP_SERVERS,格式为PLAINTEXT://{host1},PLAINTEXT://{host2} 和KAFKA_REST_LOG4J_ROOT_LOGLEVEL = DEBUG,但没有出现任何额外的输出。
有人遇到过同样的问题吗?
【问题讨论】:
-
错误是说log4j文件没有正确加载。这就是您看不到日志或更改级别不起作用的原因
-
嗨@Mesayah,有进展吗?
-
@Mikolaj 不幸的是,不是。我正在从官方 Docker 映像运行 kafka-rest,所以我希望所有 log4j 配置都在那里。我注意到在本地启动映像时使用 SimpleLoggerFactory 绑定,而在远程 kubernetes 集群上启动映像时使用 Log4jLoggerFactory 绑定。根据我所读到的,如果在类路径上发现多个绑定,则使用随机绑定。
-
能否分享您正在部署到 Kubernetes 的
.yaml配置文件,以便更容易复制问题?你有没有学过一些教程,如果有的话也可以分享一下吗? -
此外,我关注的是官方的 Kafka REST Proxy 文档,并使用了我在 Confluent Platform docker prebuilt package 中找到的图像。
标签: kubernetes apache-kafka kafka-rest