在K8S中挂载 Secret 到 Pod

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

作为卷挂载 Secret

将 Secret 作为卷挂载到 Pod 时,Secret 的每个键会成为挂载目录下的一个文件,文件内容就是键对应的值。

以下是一个示例 YAML 文件,展示了如何把 Secret 作为卷挂载到 Pod 中:

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: secret-volume-pod
spec:
  containers:
    - name: my-container
      image: nginx
      volumeMounts:
        - name: secret-volume
          mountPath: "/etc/secret"
          readOnly: true
  volumes:
    - name: secret-volume
      secret:
        secretName: my-secret    
代码解释
  • volumeMounts:定义了容器内的挂载点,这里是 /etc/secret 目录,并且设置为只读。
  • volumes:定义了要挂载的卷,secretName 指定了要使用的 Secret 的名称。

作为环境变量挂载 Secret

把 Secret 作为环境变量挂载到 Pod 时,Secret 的键值对会成为容器的环境变量。

以下是一个示例 YAML 文件,展示了如何将 Secret 作为环境变量挂载到 Pod 中:

yaml 复制代码
apiVersion: v1
kind: Pod
metadata:
  name: secret-env-pod
spec:
  containers:
    - name: my-container
      image: nginx
      env:
        - name: SECRET_USERNAME
          valueFrom:
            secretKeyRef:
              name: my-secret
              key: username
        - name: SECRET_PASSWORD
          valueFrom:
            secretKeyRef:
              name: my-secret
              key: password    
代码解释
  • env:定义了容器的环境变量。
  • valueFrom:指定了环境变量的值来源,secretKeyRef 用于引用 Secret 中的键值对。

前提条件

在使用上述配置之前,你需要确保 my-secret 这个 Secret 已经存在于相应的命名空间中。可以使用以下命令创建一个简单的 Secret:

bash 复制代码
kubectl create secret generic my-secret --from-literal=username=admin --from-literal=password=password123

创建好 Secret 后,使用 kubectl apply -f <filename>.yaml 命令来创建 Pod。

相关推荐
GEM的左耳返13 分钟前
Java面试实战:从基础到架构的全方位技术交锋
spring boot·微服务·云原生·java面试·技术解析·ai集成
张火火isgudi38 分钟前
CentOS8 使用 Docker 搭建 Jellyfin 家庭影音服务器
服务器·docker·容器
qq_447705312 小时前
宝塔通过docker部署JupyterHub指南【常见错误处理】
运维·docker·容器
tanxiaomi2 小时前
docker 从主机复制文件到容器外进行编辑
运维·docker·容器
hzulwy3 小时前
docker与k8s的容器数据卷
docker·eureka·kubernetes
java叶新东老师3 小时前
k8s pod生命周期、初始化容器、钩子函数、容器探测、重启策略
云原生·容器·kubernetes
超级小忍3 小时前
Spring Cloud Gateway:微服务架构下的 API 网关详解
微服务·云原生·架构
GEM的左耳返3 小时前
Java面试新趋势:云原生与新兴框架实战解析
云原生·graalvm·服务网格·java面试·quarkus·micronaut
Json____4 小时前
docker搭建部署 onlyoffice 实现前端集成在线解析文档解决方案
运维·docker·容器·在线文档·onlyoffice·文档预览·在线文档解析
Kookoos5 小时前
ABP VNext + Elastic APM:微服务性能监控
微服务·云原生·架构·abp vnext·elastic apm