gpt4 book ai didi

Kubernetes - 如何将信任库路径和密码传递给 JVM 参数

转载 作者:行者123 更新时间:2023-12-02 12:11:27 25 4
gpt4 key购买 nike

我需要将 jks 文件添加到我的 JVM 以与服务器进行 SSL 握手。 JKS 安装在卷中并可供 docker 容器使用。如何在启动期间将 JKS 信任库路径和密码传递给 Springboot(JVM)。
我认为一种选择是作为环境变量 (-Djavax.net.ssl.trustStore, -Djavax.net.ssl.trustStorePassword) 。对于 Openshift,下面的 url 中描述了以下工作。
选项1:

      env:
- name: JAVA_OPTIONS
value: -Djavax.net.ssl.trustStore=/var/run/secrets/java.io/keystores/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit
https://developers.redhat.com/blog/2017/11/22/dynamically-creating-java-keystores-openshift/
但是,我似乎没有为 Kubernetes 找到类似的 JAVA_OPTIONS 环境变量。
选项2:
我的 Docker 文件是:
FROM openjdk:8-jre-apline
..........
........
ENTRYPOINT ["java", "-jar", "xxx.jar"]
可以按如下方式进行更改,并且可以通过 configmap 将 $JAVA_OPTS 设置为 JVM 的 env 变量吗?
FROM openjdk:8-jre-apline
..........
........
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -jar xxx.jar" ]
配置图:
JAVA_OPTS: "-Djavax.net.ssl.trustStore=/var/run/secrets/java.io/keystores/truststore.jks -Djavax.net.ssl.trustStorePassword=changeit"
请建议这是否可行或任何其他更好的解决方案。如果我们可以 secret 存储密码,则更优选。

最佳答案

几个选项:
1:您可以将其全部分解并使用 secrets将您的凭据仅存储为 env vars,将 key 存储为可作为文件安装在容器中的磁盘上的 key ,以及将其他 java 选项保存为 env 变量的 ConfigMap,然后使用容器中的入口点脚本来验证和混搭它们一起形成 JAVA_OPTS 字符串。
2:您可以将整个字符串放入您在运行时使用的 JAVA_OPTS key 中。

apiVersion: v1
kind: Pod
metadata:
name: secret-env-pod
spec:
containers:
- name: mycontainer
image: myimage
env:
- name: JAVA_OPTS
valueFrom:
secretKeyRef:
name: mysecret
key: JAVA_OPTS
restartPolicy: Never

关于Kubernetes - 如何将信任库路径和密码传递给 JVM 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62682943/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com