使用镜像卷与 Pod

功能状态: Kubernetes v1.31 [alpha]

本页面介绍如何使用镜像卷配置 Pod。这允许您将来自 OCI 仓库的内容挂载到容器中。

开始之前

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

您的 Kubernetes 服务器必须为 v1.31 版本。要检查版本,请输入 kubectl version

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

运行使用镜像卷的 Pod

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

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
    

运行以下命令

cat /volume/dir/file

输出类似于

1

还可以运行

cat /volume/file

输出类似于

2

进一步阅读

最后修改时间:2024 年 6 月 24 日 下午 10:58 PST: 添加 ImageVolume 文档 (a12454f2dc)