ssl - 找不到预期的 Java 密钥库 (JKS) 文件!当使用 Kafka Bitnami helm chart 启用通过 TLS 加密时,它们是强制性的
问题描述
我正在为外部客户端部署启用了 TLS 的 kafka bitnami 图表以进行测试。
我按照说明进行操作,但是出现以下错误。我的配置有什么问题?
$ kubectl logs my-release-kafka-0
Couldn't find the expected Java Key Stores (JKS) files! They are mandatory when encryption via TLS is enabled.
秘密创造是这样的。
kubectl create secret generic kafka-jks --from-file=./kafka.truststore.jks --from-file=./kafka-0.keystore.jks
部署舵图如下。
helm install my-release \
--set externalAccess.enabled=true \
--set externalAccess.service.type=LoadBalancer \
--set externalAccess.service.port=9094 \
--set externalAccess.autoDiscovery.enabled=true \
--set serviceAccount.create=true \
--set rbac.create=true \
--set auth.clientProtocol=tls \
--set auth.jksSecret=kafka-jks \
--set auth.jksPassword=<MY_JKS_PASSWORD> \
bitnami/kafka
根据 kubectl describe pod,它看起来已成功安装。
Mounts:
/bitnami/kafka from data (rw)
/certs from kafka-certificates (ro)
/opt/bitnami/kafka/logs from logs (rw)
/scripts/setup.sh from scripts (rw,path="setup.sh")
/shared from shared (rw)
/var/run/secrets/kubernetes.io/serviceaccount from my-release-kafka-token-bkqgt (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
data:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: data-my-release-kafka-0
ReadOnly: false
scripts:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: my-release-kafka-scripts
Optional: false
shared:
Type: EmptyDir (a temporary directory that shares a pod's lifetime)
Medium:
SizeLimit: <unset>
kafka-certificates:
Type: Secret (a volume populated by a Secret)
SecretName: kafka-jks
Optional: false
:
$ kubectl describe secret kafka-jks
Name: kafka-jks
Namespace: default
Labels: <none>
Annotations: <none>
Type: Opaque
Data
====
kafka-0.keystore.jks: 5181 bytes
kafka.truststore.jks: 1346 bytes
我还测试了密钥库是否正常工作。它看起来工作。
$ keytool -keystore kafka-0.keystore.jks -export -alias localhost -rfc -file signed_exported.crt
Enter keystore password:
Certificate stored in file <signed_exported.crt>
解决方案
github repo 的 README 页面有不一致的地方。参数auth.jksSecret
和auth.jksPassword
已弃用,现在支持 JKS 和 PEM。以下是要使用的参数:
helm install my-release \
...
--set=auth.tls.existingSecret=kafka-jks \
--set=auth.tls.password=<MY_JKS_PASSWORD> \
...
bitnami/kafka
推荐阅读
- python - Windows 上 localhost 和 127.0.0.1 的区别大吗?
- docker - 在 Docker Compose 中将端口绑定到特定网络
- c# - HttpClient Request 适用于 windows ,但不适用于我的服务器 Ubuntu
- ios - 在 appstore connect 中上传的应用程序未在 testflight 中显示
- oop - OOP:从不可变对象继承
- java - 尝试在nodejs项目中连接到Firefox时如何使用Selenium修复“ExceptionInInitializerError”
- php - 使用php在MYSQL数据库中只插入一条记录
- javascript - MongoError:E11000 重复键错误集合:orders.events 索引:_id_ dup 键:{ _id: ObjectId('608e6a80931b45001aa7f910') }
- include - 用例图关系
- python - AttributeError:模块“sklearn”没有属性“StandardScaler”