今天在k8s集群里看到了一个报错,在集群内存在一个容器docker in docker
,发生了故障没有启动成功,查看日志显示 gateone-dind
容器报错docker.sock
应该是个文件,而在物理机的/apps/dind/run内确是个文件夹。
在gateone-dind.yml
写的需要将run文件夹挂载到容器内的/var/run
,同时也把docker.sock挂载进入了pod容器内,所以会报错提示文件类型错误,只需要将宿主机/apps/dind/run
内的docker.sock
删除或者移走再重新创建pod,dind就可以成功启动。
日志记录:
/ # kubectl logs -f gateone-dind-59d8fffb4f-gdxq8 -n falcon
Could not load host key: /etc/ssh/ssh_host_dsa_key
time="2021-03-02T09:47:36.109495225+08:00" level=warning msg="could not change group /var/run/docker.sock to docker: group docker not found"
Failed to load listeners: can't create unix socket /var/run/docker.sock: is a directory
gateone-dind.yaml文件:
...
volumeMounts:
- name: var-run
mountPath: /var/run
...
volumes:
- name: var-run
hostPath:
path: /apps/dind/run
type: DirectoryOrCreate
...