在K8S中挂载 Secret 到 Pod

打印 上一主题 下一主题

主题 1006|帖子 1006|积分 3018

在 Kubernetes 里,把 Secret 挂载到 Pod 中有两种主要方式:作为卷挂载和作为环境变量挂载。下面为你提供相应的代码示例。
作为卷挂载 Secret

将 Secret 作为卷挂载到 Pod 时,Secret 的每个键会成为挂载目录下的一个文件,文件内容就是键对应的值。
以下是一个示例 YAML 文件,展示了如何把 Secret 作为卷挂载到 Pod 中:
  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: secret-volume-pod
  5. spec:
  6.   containers:
  7.     - name: my-container
  8.       image: nginx
  9.       volumeMounts:
  10.         - name: secret-volume
  11.           mountPath: "/etc/secret"
  12.           readOnly: true
  13.   volumes:
  14.     - name: secret-volume
  15.       secret:
  16.         secretName: my-secret   
复制代码
代码表明



  • volumeMounts:定义了容器内的挂载点,这里是 /etc/secret 目录,并且设置为只读。
  • volumes:定义了要挂载的卷,secretName 指定了要利用的 Secret 的名称。
作为环境变量挂载 Secret

把 Secret 作为环境变量挂载到 Pod 时,Secret 的键值对会成为容器的环境变量。
以下是一个示例 YAML 文件,展示了如何将 Secret 作为环境变量挂载到 Pod 中:
  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4.   name: secret-env-pod
  5. spec:
  6.   containers:
  7.     - name: my-container
  8.       image: nginx
  9.       env:
  10.         - name: SECRET_USERNAME
  11.           valueFrom:
  12.             secretKeyRef:
  13.               name: my-secret
  14.               key: username
  15.         - name: SECRET_PASSWORD
  16.           valueFrom:
  17.             secretKeyRef:
  18.               name: my-secret
  19.               key: password   
复制代码
代码表明



  • env:定义了容器的环境变量。
  • valueFrom:指定了环境变量的值泉源,secretKeyRef 用于引用 Secret 中的键值对。
前提条件

在利用上述设置之前,你需要确保 my-secret 这个 Secret 已经存在于相应的命名空间中。可以利用以下命令创建一个简单的 Secret:
  1. kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=password123
复制代码
创建好 Secret 后,利用 kubectl apply -f <filename>.yaml 命令来创建 Pod。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

美食家大橙子

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表