gpt4 book ai didi

kubernetes - 将 Spring Boot 应用程序导入 Kubernetes

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

我有一个 Spring Boot 应用程序,它配置了带有以下属性的 https。

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

这些应用程序在 VM 中运行,并且证书被放置在定义的路径中。现在,尝试将此应用程序部署到 Kubernetes 中,但不知道如何实现。

我已经在 configMap 中为 application.properties 创建了挂载。
在我的 dockerFile 中,

--spring.config.location=file:/conf/application.properties



在 deployments.yaml 中,如下所示。
"spec": {
"volumes": [
{
"name": "app-prop",
"configMap": {
"name": "app-config",
"items": [
{
"key": "application.properties",
"path": "application.properties"
}
]
}
}
],
"containers": [
{
"name": "app-service",
"image": "docker.com/app-service",
"volumeMounts": [
{
"name": "app-prop",
"mountPath": "/conf"
}
],
"imagePullPolicy": "IfNotPresent"
}
],

属性 server.ssl.keyStore 在 application.properties 中。

最佳答案

由于这些 keystore 受密码保护,可以说您可以将它们捆绑到 docker 镜像中并相对于镜像的根目录引用它们,然后通过从 Secret 设置的环境变量注入(inject)密码。年代:

apiVersion: v1
kind: Secret
metadata:
name: spring-ssl
data:
keyPass: bAsE64TxT
---
kind: Pod
# etc
containers:
- env:
- name: SERVER_SSL_KEY_STORE_PASSWORD
valueFrom:
secretKeyRef:
key: spring-ssl
name: keyPass

Spring Boot 将获取那些格式正确的环境变量并将它们应用到任何其他配置值之上,产生(希望)正确的分配,而无需在任何容易访问的地方硬编码密码

但是,如果您甚至希望将 jks 保留在 docker 镜像之外,那么可以随意将 jks 存储在同一个 Secret 中。 ,甚至是一个单独的,和 volumeMount jks到位

关于kubernetes - 将 Spring Boot 应用程序导入 Kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49545426/

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