在 Kubernetes 中的本地和 Docker 容器之间共享数据

Share data between Local and Docker container in Kubernetes

我使用

成功地在docker容器和主机之间共享数据
docker run -it -v /path/to/host/folder:/container/path image-name

现在我正在尝试每分钟通过 Kubernetes cronjob 运行 这个 docker 图像,我的 yaml 文件如下:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: automation
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: automation
            image: localhost:32000/image-name:registry  
          restartPolicy: OnFailure

但是在这里我如何在我的本地和 k8s 之间共享数据以便基本上从 docker 运行 命令复制 -v /path/to/host/folder:/container/path 功能? 我应该在我的 yaml 文件中添加什么?

请帮忙。

如果您只是玩 一个节点 并且需要将一个卷从这个节点映射到同一节点中的一个 pod 运行,那么您需要使用 hostPath volume.
总之,您的代码将如下所示:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: automation
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: automation
            image: localhost:32000/image-name:registry  
            volumeMounts:
            - mountPath: /container/path
              name: test-volume
          restartPolicy: OnFailure
          volumes:
          - name: test-volume
            hostPath:
              # directory location on host
              path: /path/to/host/folder
              # this field is optional
              type: Directory

警告,这仅在您只有 一个节点集群 时有效。

如果您有一个 multi-node 集群,那么您需要了解分布式存储解决方案以及如何将它们与 kubernetes 一起使用。

这是doc about volumes in K8S