Kubernetes - 将 jks 文件存储在 secrets 或 configMap 中

use*_*872 5 kubernetes

我有一个 keystore.jks 文件,我需要将它作为 docker 进程的 env 变量传递。

我使用以下命令将文件存储为机密。

kubectl 创建秘密通用 ssl-keystore-cert --from-file=./keystore.jks

在我的 deployment.yaml 中使用上述秘密,如下所示。

{
            "name": "SERVER_SSL_KEYSTORE",
            "valueFrom": {
              "secretKeyRef": {
                "name": "ssl-keystore-cert",
                "key": "keystore.jks"
              }
            }
          }
Run Code Online (Sandbox Code Playgroud)

错误:无法启动容器“app-service”:来自守护进程的错误响应:oci 运行时错误:container_linux.go:265:启动容器进程导致“process_linux.go:368:容器初始化导致\”setenv:无效参数\“”回退重启失败的容器

反正有没有将 keystore.jks 存储在 secret 或 configmap 中?

调试:-

kubectl 描述秘密 ssl-keystore-cert

Name:         ssl-keystore-cert
Labels:       <none>
Annotations:  <none>

Type:  Opaque

Data
====
keystore.jks:  4818 bytes
Run Code Online (Sandbox Code Playgroud)

Dou*_*oug 0

在创建秘密时,您引用keystore.jks

但在您的 yaml 中,您引用了server-ssl.jks

这些应该是相同的密钥,但它们是不同的。

要验证密钥是否正确,请运行:

kubectl describe secrets/ssl-keystore-cert