相关疑难解决方法(0)

如何将多个文件/秘密挂载到 kubernetes 的公共目录中?

我从不同的文件创建了多个秘密。我想将它们全部存储在公共目录中/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)

如何将来自多个机密的文件存储在同一目录中?

kubernetes kubernetes-secrets

20
推荐指数
3
解决办法
1万
查看次数

使用单个卷从 secrets 或 configmaps 挂载多个文件

我使用一个秘密来存储多个数据项,如下所示:

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并安装它们。

kubernetes kubernetes-secrets

6
推荐指数
1
解决办法
4326
查看次数

标签 统计

kubernetes ×2

kubernetes-secrets ×2