【问题标题】:How to access downloaded files in Kubernetes container如何访问 Kubernetes 容器中下载的文件
【发布时间】:2021-11-07 12:37:29
【问题描述】:

我在 Kubernetes 容器中运行我的脚本并下载了一个 zip 文件。

  1. 当我从 Windows 机器触发测试并且测试通过自动化在 Kubernetes 容器内运行时,我想验证如何访问 zip 文件中的内容。

  2. 如何映射 Kubernetes 下载文件夹,以便即使在测试用例执行完成后,我也可以将其作为本地计算机上的 windows 文件夹访问。

【问题讨论】:

    标签: java selenium kubernetes containers


    【解决方案1】:

    您需要将持久卷附加到 pod。

    概念 https://kubernetes.io/docs/concepts/storage/persistent-volumes/

    如果您使用的是 docker 桌面,此链接提供选项。 Kubernetes persistent volume on Docker Desktop (Windows)

    【讨论】:

      【解决方案2】:

      我想验证当我访问 zip 文件中的内容时如何访问 正在从 Windows 机器触发测试并且测试正在运行 通过自动化在 Kubernetes 容器内。

      如果您可以编写将 zip 文件上传到存储的 API,您也可以这样做。就像 S3 AWS 或任何其他从那里存储和访问文件一样,如果 zip 文件很大,这可能会花费一些额外的费用。

      还有其他选项可以将数据保存在 Disk Persitenet 卷中,如果您正在运行托管服务 GKE、EKS,您将无法直接访问本地 PC 上的数据。

      如果您在 Windows PC 上本地运行,您可以将文件夹挂载到 POD 并访问创建的 zip 到本地系统。

      如何映射 Kubernetes 下载文件夹以便我可以 即使在 测试用例执行完成。

      您可以在 pod 规范中使用 hostpath 卷类型来从主机节点的文件系统挂载文件或目录。

      POD 示例:

      apiVersion: v1
      kind: Pod
      metadata:
        name: hostpath-volume-pod
      spec:
        containers:
        - name: my-hostpath-volume-pod
          image: <Image name>
          volumeMounts:
          - name: foo
            mountPath: "C:\\etc\\foo"
            readOnly: true
        volumes:
        - name: foo
          hostPath:
           path: "C:\\etc\\foo"
      

      【讨论】:

      • 容器正在Kubernetes集群中运行。如何传递本地文件夹(示例文档)的路径并让容器知道我要挂载此文件夹,并且我希望从容器中下载的所有文件都放在本地计算机的 Documents 文件夹中?
      • 您的 Kubernetes 集群在哪里运行?在云端还是本地?
      • 您无法下载,但您可以将本地文件夹的内容共享和访问到容器中,以便本地文件可以访问到容器中,反之亦然。
      • 集群在云端运行
      • 除非您在本地运行 K8s,否则无法挂载您的本地文件夹。您必须编写 api 才能在 S3 中上传文件,否则使用主机路径 SSH 进入节点并访问 K8s 节点上的文件夹
      猜你喜欢
      • 2017-02-21
      • 1970-01-01
      • 2019-01-15
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多