【问题标题】:Share data between Local and Docker container in Kubernetes在 Kubernetes 中的 Local 和 Docker 容器之间共享数据
【发布时间】:2020-11-23 14:35:46
【问题描述】:

我成功地在 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 run 命令中的-v /path/to/host/folder:/container/path 功能? 我应该在我的 yaml 文件中添加什么?

请帮忙。

【问题讨论】:

    标签: docker kubernetes kubernetes-cronjob microk8s


    【解决方案1】:

    如果您只是在玩一个节点,并且需要将卷从该节点映射到在同一节点上运行的 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
    
    

    警告,只有当您只有一个单节点集群时,这才有效。

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

    这里是doc about volumes in K8S

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2018-12-05
      • 2017-06-04
      • 2021-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多