我如何 运行 "ls" 然后将输出打印到控制台?

How do I run "ls" and then print the output to the console?

我正在通过 运行ning busybox 测试持久卷和 kubernetes pod 之间的连接,但是我得到“无法打开”“没有这样的文件或目录”。为了做进一步的测试,我试过运行宁

echo ls /mntpoint/filename

这显然不是正确的命令。我尝试了其他一些迭代 - 太多无法在此处列出。

我想 运行 ls 挂载点并打印到控制台。我该怎么做?

编辑

我的代码最接近 Rohit 的建议(如下),因此我进行了以下编辑,但代码仍然无法运行。请帮忙。

持久卷

apiVersion: v1
kind: PersistentVolume
metadata:
  name: data
  labels:
    type: local
spec:
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 1Gi
  hostPath:
    path: "/mnt/data"
  storageClassName: test

持久卷声明

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi
  storageClassName: test

连播

apiVersion: v1
kind: Pod
metadata:
  name: persistent-volume
spec:
  containers:
    - name: busybox
      command: ['tail', '-f', '/dev/null']
      image: busybox
      volumeMounts:
        - name: data
          mountPath: "/data"
  volumes:
    - name: data
      persistentVolumeClaim:
        claimName: data

编辑 2

所以,在休息一天后,我回到了我的(仍然是 运行ning)吊舱,并且命令 (ls) 起作用了。它在任何目录(例如“ls /”或“ls /data”)上都按预期工作。

我目前的解释是我在 运行 执行命令之前没有等待足够长的时间——尽管这似乎无法解释,因为我一直在使用“kubectl describe pod”进行监控。我也有 运行 多次相同的测试,“apply”和“exec”命令之间的延迟很短,今天的行为一直是一致的。

我打算继续玩这个,不过我觉得目前的问题已经解决了。比你!

我们无法在不创建声明的情况下直接访问 POD 上的卷装载。您在这里缺少一些步骤。

  1. 创建持久卷。我认为你已经做到了这一点。
  2. 创建持久卷声明。这会将您的声明绑定到您的数量。
  3. 将您的持久交易量声明附在英镑上。

完成这些步骤后,您可以访问 pod 中您的卷中的文件。

通过 link 了解详细信息和步骤。

处理卷和 Kubernetes 资源时需要遵循的步骤:

  1. 创建持久卷。
  2. 创建持久卷声明并确保状态为绑定
  3. 一旦 PV 和 PVC 绑定,尝试通过 PVC 使用来自 pod/deployment 的 PV。
  4. 检查 pod/deployment 的日志。您可能会看到命令执行的条目。

参考:https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

希望这对您有所帮助,请尝试详细说明并粘贴 above-mentioned 个步骤的日志。