Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【每日一个云原生小技巧 #62】Kubernetes 投射卷 Projected Volumes

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

作者头像
郭旭东
发布于 2024-01-14 12:55:25
发布于 2024-01-14 12:55:25
42106
代码可运行
举报
文章被收录于专栏:云原生工具箱云原生工具箱
运行总次数:6
代码可运行
在 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
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Kubernetes-存储卷Volume
由于容器本身是非持久化的,因此需要解决在容器中运行应用程序遇到的一些问题。首先,当容器崩溃时,kubelet将重新启动容器,但是写入容器的文件将会丢失,容器将会以镜像的初始状态重新开始;第二,在通过一个Pod中一起运行的容器,通常需要共享容器之间一些文件。Kubernetes通过存储卷解决上述的两个问题。
菲宇
2019/06/12
5K1
在容器中获取配置及上下文信息 -- Projected Volumes
在实际的线上场景中,我们并不能在配置 Pod 的 yaml 里描述所有需要的信息,因为总有一些信息或因为其保密性,或因为其动态变化性,是不能够放在配置文件里的,那么,这类信息要怎么加入到我们的 Pod 配置体系中呢?
用户3147702
2022/06/27
1.1K0
深入浅出 Kubernetes:初识 Pod(下)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
耕耘实录
2019/09/18
4930
Kubernetes中的Volume介绍
Docker 中也有一个 volume 的概念,尽管它稍微宽松一些,管理也很少。在 Docker 中,卷就像是磁盘或是另一个容器中的一个目录。它的生命周期不受管理,直到最近才有了 local-disk-backed 卷。Docker 现在提供了卷驱动程序,但是功能还非常有限(例如Docker1.7只允许每个容器使用一个卷驱动,并且无法给卷传递参数)。
sunsky
2020/08/20
2.3K0
kubernetes中那些不为存储数据而存在的volume
这kubernetes中,这类Volume不是为了存放数据,也不是用来做数据交换,而是为容器提供预先定义好的数据。所以从容器角度来看,这类Volume就像是被投射进容器一样。
极客运维圈
2020/01/20
7680
kubernetes中那些不为存储数据而存在的volume
Kubernetes中Secret的使用
Secret 是一种包含少量敏感信息例如密码、令牌或密钥的对象。 这样的信息可能会被放在 Pod 规约中或者镜像中。 使用 Secret 意味着你不需要在应用程序代码中包含机密数据。
王先森sec
2023/10/17
6920
Kubernetes 存储概念之Volumes介绍
默认情况下容器中的磁盘文件是非持久化的,对于运行在容器中的应用来说面临两个问题,第一:当容器挂掉,K8S重启它时,文件将会丢失;第二:当Pod中同时运行多个容器,容器之间需要共享文件时。Kubernetes的Volume解决了这两个问题
授客
2022/05/06
2.2K0
深入k8s:Pod对象中重要概念及用法
Pod,实际上是在扮演传统基础设施里“虚拟机”的角色;而容器,则是这个虚拟机里运行的用户程序。
luozhiyun
2020/07/27
5970
(译)Kubernetes 中的用户和工作负载身份
本文中我们会试着解释,在 Kubernetes API Server 上如何对用户和工作负载进行认证的问题。
崔秀龙
2022/11/23
2.2K0
(译)Kubernetes 中的用户和工作负载身份
K8S学习笔记之Kubernetes数据持久化方案
在开始介绍k8s持久化存储前,我们有必要了解一下k8s的emptydir和hostpath、configmap以及secret的机制和用途。
Jetpropelledsnake21
2019/03/22
1.9K0
K8S学习笔记之Kubernetes数据持久化方案
Kubernetes数据持久化方案
在开始介绍k8s持久化存储前,我们有必要了解一下k8s的emptydir和hostpath、configmap以及secret的机制和用途。
星哥玩云
2022/07/13
9210
Kubernetes数据持久化方案
kubernetes ConfigMap和Secret:配置应用程序
当启动镜像时,容器启动时执行如下命令:tail -f /var/log/aa.log
yaohong
2019/09/14
1.2K0
Kubernetes | 存储 - Storage
ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件、命令行参数或环境变量中读取配置信息。ConfigMap API 给我们提供了向容器中注入配置信息的机制,ConfigMap 可以被用来保存单个属性,也可以用来保存整个配置文件或者 JSON 二进制大对象。
Zkeq
2023/05/13
9430
Kubernetes | 存储 - Storage
使用Kubernetes新的绑定服务账户令牌来实现安全的工作负载身份
安全是 Linkerd 最关心的问题。它在增强系统的整体安全性方面发挥着关键作用,而这只有在 Linkerd 本身是安全的情况下才可能实现。我们最近在 Linkerd 上增加了对 Kubernetes 的新绑定服务账户令牌的支持。这是迈向安全的一大步。但是为什么呢?为了理解这一点,首先我们需要了解 Linkerd 是如何使用服务帐户的。
CNCF
2022/01/17
1.7K0
使用Kubernetes新的绑定服务账户令牌来实现安全的工作负载身份
【云原生 | Kubernetes篇】Kubernetes(k8s)临时存储(十六)
​Kubernetes(k8s)临时存储一、几种临时存储Kubernetes 为了不同的目的,支持几种不同类型的临时卷: emptyDir: Pod 启动时为空,存储空间来自本地的 kubelet 根目录(通常是根磁盘)或内存 configMap、downwardAPI 、 secret: 将不同类型的 Kubernetes 数据注入到 Pod 中 CSI 临时卷: 类似于前面的卷类型,但由专门支持此特性的指定 CSI 驱动程序提供 通用临时卷: 它可以由所有支持持久卷的存储驱动程序提供 二、empt
Lansonli
2022/06/22
9550
【云原生 | Kubernetes篇】Kubernetes(k8s)临时存储(十六)
mac 上学习k8s系列(31)istio part I
Istio 提供一种简单的方式来为已部署的服务建立网络, Istio 使用 Envoy 代理的扩展版本, Envoy 被部署为 sidecar,和对应服务在同一个 Kubernetes pod 中。下面我们开始在mac m1环境搭建istio。
golangLeetcode
2022/08/02
2710
【K8S专栏】Kubernetes应用配置管理
不论什么样的应用,基本都有配置文件,在企业中,大部分会用到配置中心,比如apollo、nacos等,也有一些公司直接使用Kubernetes自带的配置管理,主要有:
没有故事的陈师傅
2022/12/06
6150
CKAD考试实操指南(三)---舞动容器:多容器Pod实践指南
在这份CKAD考试实操指南中,我将为你详细介绍如何利用CKAD-exercises项目和知十平台进行CKAD考试的准备和复习。通过CKAD-exercises提供的练习题,你可以在知十平台的云原生环境中进行实践和模拟。在这个过程中,你将熟悉Kubernetes的各种操作和场景,并在实践中加深对知识的理解。这种结合实践和理论的学习方式将为你在考试中取得优异成绩提供强有力的支持。
知十
2023/07/25
5280
CKAD考试实操指南(三)---舞动容器:多容器Pod实践指南
一个 Projeted Volume 挂载 service account 引发的故障
最近接到一个业务报告的故障,提到 argo 创建的流水线运行失败,其中 Pod 去访问 kube API Server 时,偶发出现 401 认证不通过的问题。
米开朗基杨
2023/12/26
2370
一个 Projeted Volume 挂载 service account 引发的故障
Kubernetes 1.25:CSI 内联存储卷正式发布
CSI 内联存储卷是在 Kubernetes 1.15 中作为 Alpha 功能推出的,并从 1.16 开始成为 Beta 版本。我们很高兴地宣布,这项功能在 Kubernetes 1.25 版本中正式发布(GA)。
CNCF
2022/11/28
5220
推荐阅读
相关推荐
Kubernetes-存储卷Volume
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验