💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、豆包、星火、月之暗面及文生图、文生视频 广告
通常将 Secret 作为挂载卷在 Pod 中使用的步骤如下: 1. 创建一个 Secret 或是使用已经存在的 Secret。通常多个 Pods 会使用同一个 Secret。 2. 修改 Pod YAML 文件定义,使用字段`.spec.volumes[]`挂载卷,卷的名称可以任意命名,在字段`.spec.volumes[].secret.secretName`中填写需要挂载的 Secret 对象的名称。 3. 在每个需要 Secret 的容器中添加字段`.spec.containers[].volumeMounts[]`。规定`.spec.containers[].volumeMounts[].readOnly = true`以及字段`.spec.containers[].volumeMounts[].mountPath`表示将 Secret 挂载到某个未使用过的目录下。 4. 修改镜像或是命令行以便程序可以在对应的目录下找到需要的文件。Secret`data`字段下的每个 key 都会被用作挂载目录下的文件名。 比如下面这个 YAML 文件定义了将 mysecret 挂载到容器中的 /etc/foo 目录下: ~~~yaml apiVersion: v1 kind: Pod metadata: name: mypod spec: containers: - name: mypod image: redis volumeMounts: - name: foo mountPath: '/etc/foo' readOnly: true volumes: - name: foo secret: secretName: mysecret ~~~ 执行创建并进入到容器中查看: ~~~bash $ kubectl exec -it mypod bash root@mypod:/data# cd /etc/foo root@mypod:/etc/foo# ls password username root@mypod:/etc/foo# cat username admin root@mypod:/etc/foo# cat password 1f2d1e2e67dfroot ~~~ 如果想要指定挂载的文件名可以使用`items`和`path`字段,将上面的定义修改为: ~~~yaml # 将 username secret 的值存储到 /etc/foo/my-group/my-username 文件中,同时 username secret 不会被使用到 ...... volumes: - name: foo secret: secretName: mysecret items: - key: username path: my-group/my-username ~~~