【问题标题】:kubernetes on minikube can't output to fileminikube 上的 kubernetes 无法输出到文件
【发布时间】:2019-12-13 18:48:44
【问题描述】:

我在 Ubuntu 18 上使用 minikube 并运行 kubernetes 作业,该作业应该简单地挂载一个目录并使用此 yaml 文件将某些内容输出到文件

apiVersion: batch/v1
kind: Job
metadata:
  name: pi13
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl
        command: ["/bin/echo"]
        args: ["1 >> /data/text12.txt"]
        volumeMounts:
        - mountPath: /data
          name: data
      volumes:
        - name: data
          hostPath:
            path: /home/user/data
      restartPolicy: Never
  backoffLimit: 1

它运行良好并在仪表板中提供此输出

1 >> /data/shai12.txt

但是什么都没有写入文件(我尝试在运行完成后在主机上读取它但没有任何反应)

我在这里缺少什么?

【问题讨论】:

    标签: ubuntu kubernetes filesystems devops mount


    【解决方案1】:

    你的工作应该是这样的:

    apiVersion: batch/v1
    kind: Job
    metadata:
      name: pi13
    spec:
      template:
        spec:
          containers:
          - name: pi
            image: perl
            command: [ "sh", "-c"]
            args: ["echo 1 >> /data/text12.txt"]
            volumeMounts:
            - mountPath: /data
              name: data
          volumes:
            - name: data
              hostPath:
                path: /tmp/data
          restartPolicy: Never
      backoffLimit: 1
    

    在您的情况下,您将整个 1 >> /data/text12.txt 传递给 echo 命令,结果它会打印 1 >> /data/text12.txt 您可以在作业日志中检查的内容。

    hostPath 创建目录/data,所以这就是你找到它的原因。

    希望对你有帮助。

    【讨论】:

    • 我设法连接到 pod 并执行和检查,似乎我写入目录 /data 但这不会影响我输入的主机路径,怎么会?即使在挂载主机的 /tmp/data 时,它也不会生效,并且主机的文件系统中没有任何反应,而在 pod fs 中一切正常
    • 您是否有权写入 hostPath?
    • 我从同一个用户运行 minikube,我将权限更改为 777,所以似乎权限不是这里的问题
    • 我认为这是问题所在:github.com/kubernetes/minikube/issues/2
    猜你喜欢
    • 2020-09-01
    • 2019-02-16
    • 2018-04-13
    • 1970-01-01
    • 2019-03-12
    • 2023-01-05
    • 2022-10-06
    • 2018-04-20
    • 1970-01-01
    相关资源
    最近更新 更多