kubernetes - Kubernetes) 创建 pod 时未挂载的子目录
问题描述
我正在使用 Kubernetes。我想在容器中安装本地(主机)卷。
但它不会挂载目录内的子目录。
这是我的 job.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 集群可能位于隔离的虚拟机中,因此挂载失败
推荐阅读
- python - 为什么数据框列上的 numpy.sum 返回 inf?
- python - 重塑数据框,按组旋转和扩展列
- kubernetes - 如何在 Kubernetes 中自动扩展 Locust
- network-programming - 如何以简单的方式将我的公共 IP(通过 netcat 获得)发送到服务器?
- python - 如何通过标点符号拆分熊猫列中的长字符串
- android - Android - 如何将视图添加到布局程序中
- kubernetes - Istio 复杂 K8sObjectOverlay.PathValue
- c++ - 函数重载时的 SFINAE 和隐式强制转换
- python - PyAgrum 返回一个因果公式没有意义/python
- laravel - 如何使用一个 Laravel 控制器和多个 Guard 而不是复制控制器