您可以使用docker
检查:
docker inspect <container-id> --format='{{index .Config.Labels "io.kubernetes.pod.name"}
docker inspect <container-id> --format='{{index .Config.Labels "io.kubernetes.pod.namespace"}}'
以下命令将列出节点上运行的所有 pod 及其命名空间。您可以使用 docker 的数据目录来维护 pod 信息。
find /var/lib/docker -name config.v2.json -exec perl -lnpe 's/.*pod\.name"*\s*:\s*"*([^"]+).*pod\.namespace"*\s*:\s*"*([^"]+).*/pod-name=$1 pod-namespace=$2/g' {} + |awk '!a[$0]++'|column -t
示例:
find /var/lib/docker -name config.v2.json -exec perl -lnpe 's/.*pod\.name"*\s*:\s*"*([^"]+).*pod\.namespace"*\s*:\s*"*([^"]+).*/pod-name=$1 pod-namespace=$2/g' {} + |awk '!a[$0]++'|column -t
pod-name=huha pod-namespace=foo
pod-name=zoobar1 pod-namespace=default
pod-name=kube-proxy-l2hsb pod-namespace=kube-system
pod-name=weave-net-rbbwf pod-namespace=kube-system
pod-name=zoobar2 pod-namespace=default
IMO,解析可以用 来完成jq
,我在regex
这里展示了使用 docker data dir 获取这些值的可能性。
注意:对于crio
类似的 json 放在 overlay 目录下。请参阅下面的 OP 评论。