对于Kubernetes部署Dockerizing春季启动应用程序(Dockerizing Spri

2019-09-27 17:58发布

我有我的application.properties如下一些特性弹簧启动应用程序。

server.ssl.keyStore=/users/admin/certs/appcert.jks
server.ssl.keyStorePassword=certpwd
server.ssl.trustStore=/users/admin/certs/cacerts
server.ssl.trustStorePassword=trustpwd

在这里,证书路径是硬编码到一些路径。 但是,我不想硬编码此作为路径不会Mesos或Kubernetes世界知道。

我有一个码头工人文件,如下所示。

FROM docker.com/base/jdk1.8:latest

MAINTAINER Application Engineering [ https://docker.com/ ]

RUN mkdir -p /opt/docker/svc

COPY application/weather-service.war /opt/docker/svc/

CMD java -jar /opt/docker/svc/weather-service.war --spring.config.location=file:/conf/application.properties -Dlogging.config=/conf/logback.xml

在这里,我可以使用量kubernetes安装选项,以便放置application.proerties。

如何能够做到在application.properties证书文件是一回事吗?

在这里,证书道具是可选的少数应用程序和强制性的少数应用。

我需要的选项泊坞窗图像内整合和具有泊坞窗图像之外的证书文件。

方法1。 在泊坞窗图像

从application.properties删除属性“server.ssl.keyStore”,并将它传递如像下面之一的环境变量。

CMD Java的罐子/opt/docker/svc/weather-service.war --spring.config.location =文件:/conf/application.properties -Dlogging.config = / CONF / logback.xml -Dserver.ssl.keyStore = /certs/appcert.jks

现在,证书应该是在秘密的地方,并使用卷装入与kubernetes选项。

方法2。 没有必要有-Dserver.ssl.keyStore = /证书/ appcert.jks在泊坞窗文件,但仍请从application.properties属性“server.ssl.keyStore”,并做如下。

一种。 创建秘密

kubectl创建秘密通用SVC-信任证书--from文件= / cacerts的

湾 创建如下一个环境变量。

{ “名称”: “JAVA_OPTS”, “值”: “-Dserver.ssl.trustStore = /证书/信任/ cacerts中”}

C。 下荚容器创建卷安装。

“volumeMounts”:[{ “名称”: “信任证书”, “装载路径”: “/证书/信任”}]

d。 创建规范下的体积。

{ “名”: “信任证书”, “秘密”:{ “secretName”: “SVC-信任证书”, “项目”:[{ “钥匙”: “cacerts中”, “路径”: “cacerts中”} ]}}

方法3。

使用Kubernetes持久卷。

创建于Kubernetes持久的体积。

安装卷到每个微服务(在群脚本文件的更改)的吊舱。 安装的文件系统通过可访问的 - “/共享/文件夹/证书”路径。

CMD Java的罐子/opt/docker/svc/weather-service.war --spring.config.location =文件:/conf/application.properties -Dlogging.config = / CONF / logback.xml -Dserver.ssl.keyStore = /certs/appcert.jks

我已经采取了第二种方法。 这个对吗? 有没有其他更好的办法?

谢谢

Answer 1:

是的,第二种方法是最好的之一,它是如果你存储的证书一样,钥匙等该主题所涵盖的一些敏感数据的唯一途径文档 。

此外,你可以加密你的秘密添加另一级别的保护。



文章来源: Dockerizing Spring boot application for Kubernetes Deployment