我正在使用kubernetes。我想在容器中挂载本地(主机)卷。
但是它不挂载目录中的子目录。
这是我的工作。yaml文件。apiVersion: v1
kind: Pod
metadata:
name: ts-engine
spec:
containers:
- image: ts_engine:latest
name: ts-engine
imagePullPolicy: Never
command: ["/bin/bash", "-c","cd workspace && ls && echo '1234'&& cd .. && ls"]
volumeMounts:
- mountPath: /workspace
name: workspace
volumes:
- name: workspace
hostPath:
path: /workspace
type: Directory
这个pod的日志是这样的:
1234
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
workspace
显示了"工作区"目录为空,但实际上在"工作空间"中有一些目录。
对于这种情况有什么办法吗?
您的"ls"命令显示您实际上并没有在目录"workspace"中工作。您位于顶层(/),列出的是目录而不是其内容。换句话说,cd命令没有按照您的想法执行。
要真正能够回答这个问题,我们需要了解更多关于你的设置,但这是我最好的猜测:
- 您可能正在运行Minikube或其他本地kubernetes集群。
- 这将运行它自己的虚拟机,默认情况下,该虚拟机无法访问本地机器上的目录
- 正如@David Maze所指出的,hostPath:从本地节点挂载目录,所以这只有在您在本地开发中运行kubernetes时才真正有用
- 您的Kubernetes集群可能在一个隔离的虚拟机中,因此挂载失败