kubernetes - 挂载路径错误:不是目录:未知
问题描述
我正在 kubernetes 集群(版本 1.21.2)上使用 ceph-csi pv 和 pvc 进行测试。尝试为 dnsmasq pod 分配一个小 pv,以便能够在不重新启动 pod 的情况下更改 dnsmasq.conf。
apiVersion: v1
metadata:
name: dnsmasq-pvc
namespace: vt
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Mi
storageClassName: ceph-rbd-sc
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: dnsmasq
namespace: vt
labels:
app: dnsmasq
spec:
serviceName: "dnsmasq"
replicas: 1
selector:
matchLabels:
app: dnsmasq
template:
metadata:
labels:
app: dnsmasq
spec:
hostname: dnsmasq
containers:
- name: dnsmasq
image: jpillora/dnsmasq
ports:
- containerPort: 8080
imagePullPolicy: IfNotPresent
env:
- name: HTTP_USER
value: "user"
- name: HTTP_PASS
value: "password"
volumeMounts:
- mountPath: /etc/dnsmasq.conf
name: dnsmasq-pvc
subPath: dnsmasq.conf
volumes:
- name: dnsmasq-pvc
persistentVolumeClaim:
claimName: dnsmasq-pvc
dnsPolicy: "None"
dnsConfig:
nameservers:
- 8.8.8.8
应用 yaml 文件后,我收到以下错误:
Error: failed to create containerd task: OCI runtime create failed: container_linux.go:380: starting container process caused: process_linux.go:545: container init caused: rootfs_linux.go:76: mounting "/var/lib/kubelet/pods/48d9fac5-1603-416c-83b1-d57de22e1c81/volume-subpaths/pvc-d197a21c-107c-47a9-b334-fa4f97375b57/dnsmasq/0" to rootfs at "/etc/dnsmasq.conf" caused: mount through procfd: not a directory: unknown
我该如何解决这个问题?
解决方案
- 正如@jonas 提到的将volumeMount.mountPath 值修改为目录
apiVersion: v1
metadata:
name: dnsmasq-pvc
namespace: vt
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Mi
storageClassName: ceph-rbd-sc
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: dnsmasq
namespace: vt
labels:
app: dnsmasq
spec:
serviceName: "dnsmasq"
replicas: 1
selector:
matchLabels:
app: dnsmasq
template:
metadata:
labels:
app: dnsmasq
spec:
hostname: dnsmasq
containers:
- name: dnsmasq
image: jpillora/dnsmasq
ports:
- containerPort: 8080
imagePullPolicy: IfNotPresent
env:
- name: HTTP_USER
value: "user"
- name: HTTP_PASS
value: "password"
volumeMounts:
- mountPath: /etc/
name: dnsmasq-pvc
subPath: dnsmasq.conf
volumes:
- name: dnsmasq-pvc
persistentVolumeClaim:
claimName: dnsmasq-pvc
dnsPolicy: "None"
dnsConfig:
nameservers:
- 8.8.8.8
推荐阅读
- html - iPhone 上的 HTML5 视频元素有边框
- php - 挑选嵌套 json 中的单个值
- c++ - C++ 未定义命名空间
- java - JNI,使用两个需要另一个的.so文件时出错
- swift - 线程 1:EXC_BAD_ACCESS(代码=2,地址=0x7ffee7cceff8)
- dialogflow-es - 对话流中每个意图的最大训练短语数是多少?
- c# - 我在循环中编写的内容以在 datagridview 上显示类似的项目代码并在数据库 sql 服务器上插入不同的项目代码
- swift - 转换 SWIFT 4.2 自动更新时出错
- java - Apache Spark - Java -JSCH - 算法协商失败
- git - 将字符串转换为日期并在 shell 脚本中执行日期比较