Kubernetes ConfigMap卷不';无法在容器中创建文件
k8s 1.2已部署 我做错什么了吗?这是否适用于其他人,还是我的k8s部署中出现了问题 按照ConfigMaps指南中的示例,应在下面创建/etc/config/special.how,但不是:Kubernetes ConfigMap卷不';无法在容器中创建文件,kubernetes,Kubernetes,k8s 1.2已部署 我做错什么了吗?这是否适用于其他人,还是我的k8s部署中出现了问题 按照ConfigMaps指南中的示例,应在下面创建/etc/config/special.how,但不是: [root@totoro brs-kubernetes]# kubectl create -f example.yaml configmap "special-config" created pod "dapi-test-pod" created [root@totoro brs-kubernete
[root@totoro brs-kubernetes]# kubectl create -f example.yaml
configmap "special-config" created
pod "dapi-test-pod" created
[root@totoro brs-kubernetes]# kubectl exec -it dapi-test-pod -- sh
/ # cd /etc/config/
/etc/config # ls
/etc/config # ls -alh
total 4
drwxrwxrwt 2 root root 40 Mar 23 18:47 .
drwxr-xr-x 7 root root 4.0K Mar 23 18:47 ..
/etc/config #
例如:yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: special-config
namespace: default
data:
special.how: very
special.type: charm
---
apiVersion: v1
kind: Pod
metadata:
name: dapi-test-pod
spec:
containers:
- name: test-container
image: gcr.io/google_containers/busybox
command: ["sleep", "100"]
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
name: special-config
items:
- key: special.how
path: how.file
restartPolicy: Never
一致性测试失败总结如下(由jayunit100要求运行)。全速奔跑
findmnt的输出:
[schou@totoro single-node]$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/mapper/fedora-root
│ ext4 rw,relatime,data=ordere
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,
│ ├─/sys/kernel/security securityfs securit rw,nosuid,nodev,noexec,
│ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/net_cls,net_prio cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,
│ │ └─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,
│ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,
│ ├─/sys/firmware/efi/efivars efivarfs efivarf rw,nosuid,nodev,noexec,
│ ├─/sys/kernel/debug debugfs debugfs rw,relatime
│ ├─/sys/kernel/config configfs configf rw,relatime
│ └─/sys/fs/fuse/connections fusectl fusectl rw,relatime
├─/proc proc proc rw,nosuid,nodev,noexec,
│ ├─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=32,pgrp=
│ └─/proc/fs/nfsd nfsd nfsd rw,relatime
├─/dev devtmpfs devtmpf rw,nosuid,size=8175208k
│ ├─/dev/shm tmpfs tmpfs rw,nosuid,nodev
│ ├─/dev/pts devpts devpts rw,nosuid,noexec,relati
│ ├─/dev/mqueue mqueue mqueue rw,relatime
│ └─/dev/hugepages hugetlbfs hugetlb rw,relatime
├─/run tmpfs tmpfs rw,nosuid,nodev,mode=75
│ ├─/run/user/42 tmpfs tmpfs rw,nosuid,nodev,relatim
│ │ └─/run/user/42/gvfs gvfsd-fuse fuse.gv rw,nosuid,nodev,relatim
│ └─/run/user/1000 tmpfs tmpfs rw,nosuid,nodev,relatim
│ └─/run/user/1000/gvfs gvfsd-fuse fuse.gv rw,nosuid,nodev,relatim
├─/tmp tmpfs tmpfs rw
├─/boot /dev/sda2 ext4 rw,relatime,data=ordere
│ └─/boot/efi /dev/sda1 vfat rw,relatime,fmask=0077,
├─/var/lib/nfs/rpc_pipefs sunrpc rpc_pip rw,relatime
├─/var/lib/kubelet/pods/fd20f710-fb82-11e5-ab9f-0862662cf845/volumes/kubernetes.io~secret/default-token-qggyv
│ tmpfs tmpfs rw,relatime
├─/var/lib/kubelet/pods/2f652e15-fb83-11e5-ab9f-0862662cf845/volumes/kubernetes.io~configmap/config-volume
│ tmpfs tmpfs rw,relatime
└─/var/lib/kubelet/pods/2f652e15-fb83-11e5-ab9f-0862662cf845/volumes/kubernetes.io~secret/default-token-6bzfe
tmpfs tmpfs rw,relatime
[schou@totoro single-node]$
感谢@Paul Morie帮助我诊断和修复此问题(来自github): 答对了,/var/lib/kubelet的挂载传播模式是私有的。尝试将kubelet目录的挂载标志更改为
-v/var/lib/kubelet:/var/lib/kubelet:rw,shared
我还必须在docker systemd文件中将
MountFlags=slave
更改为MountFlags=shared
。感谢@Paul Morie帮助我诊断和修复此问题(来自github):
答对了,/var/lib/kubelet的挂载传播模式是私有的。尝试将kubelet目录的挂载标志更改为-v/var/lib/kubelet:/var/lib/kubelet:rw,shared
我还必须将docker systemd文件中的
MountFlags=slave
更改为MountFlags=shared
。到底什么是“不工作”呢?您能发布任何日志或错误消息吗?在原始问题中。没有错误消息,只是/etc/config中没有任何内容。很抱歉,注意到我的问题很糟糕。。。试着编辑它来说OK,但它真的开始了吗?运行15秒,然后安静关闭?运行正常,但不接受连接?唱“黛西黛西”然后想杀了你?有很多事情“不起作用”可能意味着。Pod和ConfigMap创建没有问题。通过卷“config Volume”将ConfigMap“special config”装载到容器中并不会创建ConfigMaps用户指南中所述的“/etc/config/special.how”文件。如果您的配置看起来正常,kubectl会怎么说?你能把你的kubelet日志发到某个地方吗(/var/log/kubelet?)“不工作”到底是什么意思?您能发布任何日志或错误消息吗?在原始问题中。没有错误消息,只是/etc/config中没有任何内容。很抱歉,注意到我的问题很糟糕。。。试着编辑它来说OK,但它真的开始了吗?运行15秒,然后安静关闭?运行正常,但不接受连接?唱“黛西黛西”然后想杀了你?有很多事情“不起作用”可能意味着。Pod和ConfigMap创建没有问题。通过卷“config Volume”将ConfigMap“special config”装载到容器中并不会创建ConfigMaps用户指南中所述的“/etc/config/special.how”文件。如果您的配置看起来正常,kubectl会怎么说?你能把你的kubelet日志发布到某个地方吗(/var/log/kubelet?)你知道我如何用docker机器更改挂载标志吗?关于如何在docker机器上更改挂载标志
,没有任何内容吗?你能包括你用来让它工作的完整命令吗?只需添加一个shared
给了我Path/var/lib/kubelet,但它不是一个共享挂载..
并将/
更改为shared
给了我Path/挂载在/但它不是Docker机器上的共享挂载..
,链接的Github问题包含一条注释,添加了要使用的命令:docker machine ssh$(docker machine active)sudo mount--make shared/
。在运行Kubelet容器之前运行此命令。您知道如何使用docker machine更改装载标志吗?关于如何在docker machine上更改MountFlags
没有任何内容?您是否可以包含用于使此工作正常的完整命令?只需添加一个shared
给了我Path/var/lib/kubelet,但它不是一个共享挂载..
并将/
更改为shared
给了我Path/挂载在/但它不是Docker机器上的共享挂载..
,链接的Github问题包含一条注释,添加了要使用的命令:docker machine ssh$(docker machine active)sudo mount--make shared/
。在运行Kubelet容器之前运行此命令。
[schou@totoro single-node]$ findmnt
TARGET SOURCE FSTYPE OPTIONS
/ /dev/mapper/fedora-root
│ ext4 rw,relatime,data=ordere
├─/sys sysfs sysfs rw,nosuid,nodev,noexec,
│ ├─/sys/kernel/security securityfs securit rw,nosuid,nodev,noexec,
│ ├─/sys/fs/cgroup tmpfs tmpfs ro,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/systemd cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/cpuset cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/net_cls,net_prio cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/memory cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/hugetlb cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/cpu,cpuacct cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/perf_event cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/pids cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/blkio cgroup cgroup rw,nosuid,nodev,noexec,
│ │ ├─/sys/fs/cgroup/freezer cgroup cgroup rw,nosuid,nodev,noexec,
│ │ └─/sys/fs/cgroup/devices cgroup cgroup rw,nosuid,nodev,noexec,
│ ├─/sys/fs/pstore pstore pstore rw,nosuid,nodev,noexec,
│ ├─/sys/firmware/efi/efivars efivarfs efivarf rw,nosuid,nodev,noexec,
│ ├─/sys/kernel/debug debugfs debugfs rw,relatime
│ ├─/sys/kernel/config configfs configf rw,relatime
│ └─/sys/fs/fuse/connections fusectl fusectl rw,relatime
├─/proc proc proc rw,nosuid,nodev,noexec,
│ ├─/proc/sys/fs/binfmt_misc systemd-1 autofs rw,relatime,fd=32,pgrp=
│ └─/proc/fs/nfsd nfsd nfsd rw,relatime
├─/dev devtmpfs devtmpf rw,nosuid,size=8175208k
│ ├─/dev/shm tmpfs tmpfs rw,nosuid,nodev
│ ├─/dev/pts devpts devpts rw,nosuid,noexec,relati
│ ├─/dev/mqueue mqueue mqueue rw,relatime
│ └─/dev/hugepages hugetlbfs hugetlb rw,relatime
├─/run tmpfs tmpfs rw,nosuid,nodev,mode=75
│ ├─/run/user/42 tmpfs tmpfs rw,nosuid,nodev,relatim
│ │ └─/run/user/42/gvfs gvfsd-fuse fuse.gv rw,nosuid,nodev,relatim
│ └─/run/user/1000 tmpfs tmpfs rw,nosuid,nodev,relatim
│ └─/run/user/1000/gvfs gvfsd-fuse fuse.gv rw,nosuid,nodev,relatim
├─/tmp tmpfs tmpfs rw
├─/boot /dev/sda2 ext4 rw,relatime,data=ordere
│ └─/boot/efi /dev/sda1 vfat rw,relatime,fmask=0077,
├─/var/lib/nfs/rpc_pipefs sunrpc rpc_pip rw,relatime
├─/var/lib/kubelet/pods/fd20f710-fb82-11e5-ab9f-0862662cf845/volumes/kubernetes.io~secret/default-token-qggyv
│ tmpfs tmpfs rw,relatime
├─/var/lib/kubelet/pods/2f652e15-fb83-11e5-ab9f-0862662cf845/volumes/kubernetes.io~configmap/config-volume
│ tmpfs tmpfs rw,relatime
└─/var/lib/kubelet/pods/2f652e15-fb83-11e5-ab9f-0862662cf845/volumes/kubernetes.io~secret/default-token-6bzfe
tmpfs tmpfs rw,relatime
[schou@totoro single-node]$