在 Pod 中使用镜像卷

特性状态: Kubernetes v1.31 [alpha] (默认启用:false)

本页面展示如何使用镜像卷配置 Pod。这允许你将来自 OCI 注册表的内容挂载到容器内部。

准备开始

你需要一个 Kubernetes 集群,并且必须配置 kubectl 命令行工具与你的集群进行通信。建议在至少有两个不充当控制平面主机的节点的集群上运行此教程。如果你还没有集群,可以使用 minikube 创建一个,或者使用这些 Kubernetes 游乐场之一

你的 Kubernetes 服务器必须是 v1.31 或更高版本。要检查版本,请输入 kubectl version

  • 容器运行时需要支持镜像卷特性
  • 你需要在主机中执行命令
  • 你需要能够进入 Pod 中执行命令
  • 你需要启用 ImageVolume 特性门控

运行使用镜像卷的 Pod

通过将 .specvolumes.[*].image 字段设置为有效的引用并在容器的 volumeMounts 中使用它来启用 Pod 的镜像卷。例如

apiVersion: v1
kind: Pod
metadata:
  name: image-volume
spec:
  containers:
  - name: shell
    command: ["sleep", "infinity"]
    image: debian
    volumeMounts:
    - name: volume
      mountPath: /volume
  volumes:
  - name: volume
    image:
      reference: quay.io/crio/artifact:v1
      pullPolicy: IfNotPresent
  1. 在你的集群上创建 Pod

    kubectl apply -f https://k8s.io/examples/pods/image-volumes.yaml
    
  2. 附加到容器

    kubectl attach -it image-volume bash
    
  3. 检查卷中文件的内容

    cat /volume/dir/file
    

    输出类似于

    1
    

    你也可以检查不同路径中的另一个文件

    cat /volume/file
    

    输出类似于

    2
    

进一步阅读

上次修改时间为 2024 年 8 月 22 日下午 6:04 PST:修改镜像卷中的步骤描述 (65ce82dd0b)