Kubernetes - 如何下载 PersistentVolume 的内容

Kubernetes - how to download a PersistentVolume's content

我在通过 helm 创建的 K8s 集群中有一个测试执行器 Pod,它要求动态创建 PersistentVolume 用于存储测试结果。

现在我想获取本卷的内容。这似乎是很自然的事情。 我希望有一些 kubectl download pv <id>。但是我什么都不能google。

如何获取PersistentVolume的内容?

我在 AWS EKS;所以 AWS API 也是一个选项。我也可以访问 ECR,所以也许我可以以某种方式将它存储为图像并下载?

或者,一般来说,我正在寻找一种传输目录的方法,甚至可以在存档中。但它应该是 容器完成并且不再 运行 之后。

我可以考虑两种方案来满足您的需求:

  1. 创建一个附加了 PV 的 pod,然后使用 kubectl cp 将内容复制到任何需要的地方。例如,您可以使用类似于以下内容的 PodSpec
apiVersion: v1
kind: Pod
metadata:
  name: dataaccess
spec:
  containers:
  - name: alpine
    image: alpine:latest
    command: ['sleep', 'infinity']
    volumeMounts:
    - name: mypvc
      mountPath: /data
  volumes:
  - name: mypvc
    persistentVolumeClaim:
      claimName: mypvc

请注意 mypvc 应该是绑定到要从中复制数据的 PV 的 PersistentVolumeClaim 的名称。

一旦 pod 运行ning,您可以 运行 类似下面的内容从任何 kubectl 配置为连接到您的集群的机器复制数据:

kubectl cp dataaccess:/data data/
  1. 在 EC2 实例中安装 PV 的 EBS 卷并从那里复制数据。这个案例不太容易详细解释,因为它需要更多关于您要实现的目标的上下文。