根据pod名称找到容器uuid
kubectl get pod <PODNAME> -n <NAMESPACES> -o template --template='{{range .status.containerStatuses}}{{.containerID}}{{end}}'
根据容器UUID 找到具体pid
docker inspect -f {{.State.Pid}} $pod
进入容器空间
nsenter -n -t ${pid}
如下图所示:
kubectl get pod
命令加上 -o go-template=...
选项来获取之前终止容器的状态
kubectl get pod -o go-template='{{range.status.containerStatuses}}{{"Container Name: "}}{{.name}}{{"rnLastState: "}}{{.lastState}}{{end}}' <pod NAME> -n<命名空间>
执行结果如下:
但是在实际测试过程中,如故意配置错探针,导致pod不断重启的情况下,使用上述命名查看重启原因没有得到明显的提示。
kubernetes中默认为pod创建的volume目录是在宿主机的什么路径
kubelet为volume创建的目录是在宿主机的如下路径
/var/lib/kubelet/pods/<Pod 的 ID>/volumes/kubernetes.io~<Volume 类型 >/<Volume 名字 >
<Pod ID>查看方式为:kubectl get pod <Pod Name> -n<NAMESPACE> -o yaml
查看metadata.uid
docker overlay2 目录名查找、容器名和容器ID及限制大小
先进入overlay2的目录
docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Id}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}
docker inspect --format '{{.Id}}' b81ac295259f
查找到容器Id
限制overlay2 磁盘目录 大小
/etc/docker/daemon.json配置文件如下,这里将每个容器可以使用的磁盘空间设置为1G
{
"data-root": "/data/docker",
"storage-driver": "overlay2",
"storage-opts": [
"overlay2.override_kernel_check=true",
"overlay2.size=1G"
]
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。