前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【每日一个云原生小技巧 #62】Kubernetes 投射卷 Projected Volumes

【每日一个云原生小技巧 #62】Kubernetes 投射卷 Projected Volumes

作者头像
郭旭东
发布2024-01-14 20:55:25
2290
发布2024-01-14 20:55:25
举报
文章被收录于专栏:云原生工具箱云原生工具箱
在 Kubernetes中,Projected Volumes(投影卷)是一种功能强大的存储特性,允许您将多个已有的卷源映射到Pod内的同一目录中。这一特性尤其适用于需要将不同类型的数据(如Secrets、ConfigMaps和downwardAPI)组合到一个容器可以访问的位置的场景。

使用场景

Projected Volumes非常适用于以下场景:

  • 将来自多个来源的配置数据组合在一起,如Secrets和ConfigMaps。
  • 通过downwardAPI向容器暴露Pod和集群信息。
  • 为访问Kubernetes API提供服务账户令牌。

使用技巧

  • 命名空间一致性:所有Projected Volume的源必须与Pod在同一命名空间。
  • 卷源类型:可以投影Secrets、ConfigMaps、downwardAPI和serviceAccountToken卷。
  • 路径自定义:在卷中自定义每个投影源数据出现的路径。
  • 安全性:为敏感数据(如Secrets)设置非默认的权限模式,以增强安全性。

使用案例

以下是一些使用Projected Volumes的示例:

组合Secret、downwardAPI和ConfigMap:在这个示例中,Pod使用Projected Volume将一个secret、downwardAPI数据和一个configMap组合到一个单一的卷中。每个数据源在卷配置的sources下指定。每个源的数据可以放置在卷内的自定义路径中。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: volume-test
spec:
  containers:
  - name: container-test
    image: busybox
    command: ["sleep", "3600"]
    volumeMounts:
    - name: all-in-one
      mountPath: "/projected-volume"
      readOnly: true
  volumes:
  - name: all-in-one
    projected:
      sources:
      - secret:
          name: mysecret
          items:
            - key: username
              path: my-group/my-username
      - downwardAPI:
          items:
            - path: "labels"
              fieldRef:
                fieldPath: metadata.labels
      - configMap:
          name: myconfigmap
          items:
            - key: config
              path: my-group/my-config

服务账户令牌投影:这个示例展示了一个Pod,它有一个包含服务账户令牌的Projected Volume。该令牌用于认证Kubernetes API。

代码语言:javascript
复制
apiVersion: v1
kind: Pod
metadata:
  name: sa-token-test
spec:
  containers:
  - name: container-test
    image: busybox
    command: ["sleep", "3600"]
    volumeMounts:
    - name: token-vol
      mountPath: "/service-account"
      readOnly: true
  serviceAccountName: default
  volumes:
  - name: token-vol
    projected:
      sources:
      - serviceAccountToken:
          audience: api
          expirationSeconds: 3600
          path: token

这些示例说明了Kubernetes中Projected Volumes的灵活性,允许您在Pod内有效地组合和管理多个数据源。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 使用场景
  • 使用技巧
  • 使用案例
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档