我如何 运行 "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 上的卷装载。您在这里缺少一些步骤。
- 创建持久卷。我认为你已经做到了这一点。
- 创建持久卷声明。这会将您的声明绑定到您的数量。
- 将您的持久交易量声明附在英镑上。
完成这些步骤后,您可以访问 pod 中您的卷中的文件。
通过 link 了解详细信息和步骤。
处理卷和 Kubernetes 资源时需要遵循的步骤:
- 创建持久卷。
- 创建持久卷声明并确保状态为绑定。
- 一旦 PV 和 PVC 绑定,尝试通过 PVC 使用来自 pod/deployment 的 PV。
- 检查 pod/deployment 的日志。您可能会看到命令执行的条目。
参考:https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/
希望这对您有所帮助,请尝试详细说明并粘贴 above-mentioned 个步骤的日志。
我正在通过 运行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 上的卷装载。您在这里缺少一些步骤。
- 创建持久卷。我认为你已经做到了这一点。
- 创建持久卷声明。这会将您的声明绑定到您的数量。
- 将您的持久交易量声明附在英镑上。
完成这些步骤后,您可以访问 pod 中您的卷中的文件。
通过 link 了解详细信息和步骤。
处理卷和 Kubernetes 资源时需要遵循的步骤:
- 创建持久卷。
- 创建持久卷声明并确保状态为绑定。
- 一旦 PV 和 PVC 绑定,尝试通过 PVC 使用来自 pod/deployment 的 PV。
- 检查 pod/deployment 的日志。您可能会看到命令执行的条目。
参考:https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/
希望这对您有所帮助,请尝试详细说明并粘贴 above-mentioned 个步骤的日志。