【问题标题】:Restart wurstmeister/kafka-docker after server.properties changes due to ssl config在 server.properties 由于 ssl 配置发生更改后重新启动 wurstmeister/kafka-docker
【发布时间】:2019-08-20 05:41:49
【问题描述】:

根据文档,wurstmeister/kafka-docker 的 SSL 配置将在 server.properties 文件中完成,如下所示:

listeners=PLAINTEXT://host.name:port,SSL://host.name:port
# The following is only needed if the value is different from ``listeners``, but it should contain
# the same security protocols as ``listeners``
advertised.listeners=PLAINTEXT://host.name:port,SSL://host.name:port

ssl.keystore.location=/var/private/ssl/kafka.server.keystore.jks
ssl.keystore.password=test1234
ssl.key.password=test1234
ssl.truststore.location=/var/private/ssl/kafka.server.truststore.jks
ssl.truststore.password=test1234

来源:https://docs.confluent.io/3.0.0/kafka/ssl.html#configuring-kafka-brokers

我还关注了其余文档,因此我还配置了 SSL 和端口 9093:

listeners=PLAINTEXT://:9092,SSL://:9093
advertised.listeners=PLAINTEXT://localhost:9092,SSL://localhost:9093

完成后,我尝试停止并再次启动服务器:

docker stop wurstmeister_kafka_1
docker start wurstmeister_kafka_1

还有

docker restart wurstmeister_kafka_1

但是当我使用docker ps 进行检查时,我没有看到端口 9093 被绑定:

λ docker ps
CONTAINER ID        IMAGE                           COMMAND                  CREATED             STATUS              PORTS
                  NAMES
b6c5685414ec        wurstmeister/kafka:latest       "start-kafka.sh"         3 days ago          Up 6 minutes        0.0.0.0:9092->9092/tcp
                  wurstmeister_kafka_1
ded10e44873a        wurstmeister/zookeeper:latest   "/bin/sh -c '/usr/sb…"   3 days ago          Up 3 days           22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp   wurstmeister_zookeeper_1

下面的命令openssl s_client -debug -connect localhost:9093 -tls1表示错误:

λ openssl s_client -debug -connect localhost:9093 -tls1
20024:error:0200274D:system library:connect:reason(1869):../openssl-1.1.1a/crypto/bio/b_sock2.c:110:
20024:error:2008A067:BIO routines:BIO_connect:connect error:../openssl-1.1.1a/crypto/bio/b_sock2.c:111:
20024:error:0200274D:system library:connect:reason(1869):../openssl-1.1.1a/crypto/bio/b_sock2.c:110:
20024:error:2008A067:BIO routines:BIO_connect:connect error:../openssl-1.1.1a/crypto/bio/b_sock2.c:111:
connect:errno=0

如何重新启动 docker 以使 server.properties 中的更改生效?如果这不是正确的方法,那是什么?

【问题讨论】:

    标签: docker ssl apache-kafka


    【解决方案1】:

    Docker 不会保留映像中的文件更改。

    您要么必须将自己的server.properties 卷挂在容器中,要么查看环境变量是否允许您在映像启动期间更新配置(类似于confluentinc/kafka 映像)

    【讨论】:

    • 有一个环境变量,但是它的值指向文件系统中的一个路径和文件。在 docker-compose up 的时候,这个路径和文件还不存在,所以会报错。另外,我不是像你说的那样尝试保存,只是尝试配置并重新启动
    • 如果您对文件进行了卷挂载,它们仍然存在。您需要在容器外生成密钥
    • 谢谢。安装的卷有效。传递了指向服务器密钥库文件路径及其密码的环境变量。Kafka SSL 的问题仍然存在,我认为此时它超出了 Docker 的范围。
    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 2019-03-23
    • 2021-02-03
    • 2020-08-21
    • 2020-11-11
    • 2021-10-02
    • 1970-01-01
    相关资源
    最近更新 更多