作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将 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/
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/
我是一名优秀的程序员,十分优秀!