我从不同的文件创建了多个秘密。我想将它们全部存储在公共目录中/var/secrets/。不幸的是,我无法做到这一点,因为 kubernetes在 pod 验证步骤期间抛出'Invalid value: "/var/secret": must be unique错误。下面是我的 pod 定义示例。
apiVersion: v1
kind: Pod
metadata:
labels:
run: alpine-secret
name: alpine-secret
spec:
containers:
- command:
- sleep
- "3600"
image: alpine
name: alpine-secret
volumeMounts:
- name: xfile
mountPath: "/var/secrets/"
readOnly: true
- name: yfile
mountPath: "/var/secrets/"
readOnly: true
volumes:
- name: xfile
secret:
secretName: my-secret-one
- name: yfile
secret:
secretName: my-secret-two
Run Code Online (Sandbox Code Playgroud)
如何将来自多个机密的文件存储在同一目录中?
我使用一个秘密来存储多个数据项,如下所示:
apiVersion: v1
kind: Secret
metadata:
name: my-certs
namespace: my-namespace
data:
keystore.p12: LMNOPQRSTUV
truststore.p12: ABCDEFGHIJK
Run Code Online (Sandbox Code Playgroud)
在我的Deployment我将它们安装到这样的文件中:
volumeMounts:
- mountPath: /app/truststore.p12
name: truststore-secret
subPath: truststore.p12
- mountPath: /app/keystore.p12
name: keystore-secret
subPath: keystore.p12
volumes:
- name: truststore-secret
secret:
items:
- key: truststore.p12
path: truststore.p12
secretName: my-certs
- name: keystore-secret
secret:
items:
- key: keystore.p12
path: keystore.p12
secretName: my-certs
Run Code Online (Sandbox Code Playgroud)
这按预期工作,但我想知道是否可以实现将这两个秘密安装为具有较少 Yaml 的文件的相同结果?例如volumes使用,items但我不知道如何使用一个卷和多个卷items并安装它们。