2

--from-file使用文件名以外的其他方法时,有没有办法设置 kubernetes 密钥名称?

secrets.json在容器中使用了一堆不同的配置文件。但是,为了组织我的文件,它们都没有secrets.json在我的主机上命名。例如secrets.dev.jsonsecrets.test.json。我的应用程序只知道读取secrets.json.

当我创建一个秘密时kubectl create secret generic my-app-secrets --from-file=secrets.dev.json,这会导致密钥名称为secrets.dev.json而不是secrets.json

我将我的秘密内容作为文件安装(这是从 Docker swarm 迁移的遗留物)。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  template:
    spec:
      volumes:
      - name: my-secret
        secret:
          secretName: my-app-secrets
      containers:
        - name: my-app
          volumeMounts:
            - name: my-secret
              mountPath: "/run/secrets/secrets.json"
              subPath: "secrets.json"

因为secrets.json它不作为键存在,因为它使用了文件名 ( secrets.dev.json),所以它最终变成了一个目录。我最终得到了这个挂载路径:/run/secrets/secrets.json/secrets.dev.json.

我希望能够将密钥名称设置为,secrets.json而不是使用secrets.dev.json.

4

1 回答 1

4

您可以指定键名[--from-file=[key=]source]

kubectl create secret generic my-app-secrets --from-file=secrets.json=secrets.dev.json

这里,secrets.json是键名,secrets.dev.json是源

于 2020-04-30T18:18:03.063 回答