Kubernetes-如何下载PersistentVolume的内容

Ond*_*žka 7 file-moving kubernetes persistent-volumes

我有一个Pod通过舵在K8s集群中创建的测试执行程序,该程序要求动态创建一个在PersistentVolume哪里存储测试结果的地方。

现在,我想获取此卷的内容。看起来很自然。我希望有一些kubectl download pv <id>。但是我不能用谷歌搜索任何东西。

我如何获得a的内容PersistentVolume

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

或者,总的来说,我正在寻找一种转移目录的方法,甚至可以将其保存在存档中。但是应该容器完成不再运行。

whi*_*s11 12

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

1)创建一个附有PV的容器,并kubectl cp在需要的地方用于复制内容。例如,您可以使用PodSpec类似的以下内容:

apiVersion: v1
kind: Pod
metadata:
  name: dataaccess
spec:
  containers:
  - name: alpine
    image: alpine:latest
    command:
    - sleep
    - 999999
    volumeMounts:
    - name: mypvc
      mountPath: /data
  volumes:
  - name: mypvc
    persistentVolumeClaim:
      claimName: mypvc
Run Code Online (Sandbox Code Playgroud)

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

Pod运行之后,您可以运行以下命令从任何配置了kubectl的计算机上复制数据:

kubectl cp dataaccess:/data data/
Run Code Online (Sandbox Code Playgroud)

2)将PV的EBS卷安装在EC2实例中,然后从那里复制数据。这种情况下,要进行详细说明不太容易,因为它需要更多有关您要实现的目标的上下文。

  • 添加了我的第一个提案的示例。 (2认同)