根据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}

如下图所示:
image.png

kubectl get pod 命令加上 -o go-template=... 选项来获取之前终止容器的状态

kubectl get pod -o go-template='{{range.status.containerStatuses}}{{"Container Name: "}}{{.name}}{{"rnLastState: "}}{{.lastState}}{{end}}'  <pod NAME>  -n<命名空间>

执行结果如下:
image.png

但是在实际测试过程中,如故意配置错探针,导致pod不断重启的情况下,使用上述命名查看重启原因没有得到明显的提示。
image.png

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

image

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"
]

}


我的头很硬
10 声望1 粉丝

乘风破浪,后会无期