【问题标题】:How to map the guids under /var/lib/kubelet/pods to the actual pods如何将 /var/lib/kubelet/pods 下的 guid 映射到实际的 pod
【发布时间】:2021-12-20 14:37:52
【问题描述】:

我试图调试一些挂载问题,挂载日志将我引导到/var/lib/kubelet/pods 下的路径,即

/var/lib/kubelet/pods/f6affad1-941d-4df1-a0b7-38e3f2ab99d5/volumes/kubernetes.io~nfs/my-pv-e0dbe341a6fe475c9029fb372e

如何将pods 下的根目录的 guid 映射到实际运行的 pod 或容器?

(上例中为f6affad1-941d-4df1-a0b7-38e3f2ab99d5

我看不出与kubectlcrictl 返回的值有任何关联。

【问题讨论】:

    标签: kubernetes kubectl kubernetes-pod


    【解决方案1】:

    他们是 Pod 的.metadata.uid;可以通过使用您最喜欢的机制来将它们映射回来,以查询所有 pod 并在其 .metadata.uid 上进行过滤,如果您有太多 Pod 以使 -A 不可行,则可以选择限制在该节点上调度的那些 pod

    for d in /var/lib/kubelet/pods/*; do
      p_u=$(basename "$d")
      kubectl get po -A -o json | \
        jq --arg pod_uuid "$p_u" -r '.items[] 
          | select(.metadata.uid == $pod_uuid) 
          | "uuid \($pod_uuid) is \(.metadata.name)"'
    done
    

    我确定有一个 -o jsonpath=-o gotemplate= 表单可以消除对 jq 的需要,但是在文本区域中输入会做更多的工作

    关于您的 crictl 问题,我现在无法访问我的 containerd 集群,但是基于 docker 的人用 io.kubernetes.pod.uid 标记本地容器,所以我猜 containerd 做了类似的事情:

                "Labels": {
                    "annotation.io.kubernetes.container.hash": "e44bee94",
                    "annotation.io.kubernetes.container.restartCount": "4",
                    "annotation.io.kubernetes.container.terminationMessagePath": "/dev/termination-log",
                    "annotation.io.kubernetes.container.terminationMessagePolicy": "File",
                    "annotation.io.kubernetes.pod.terminationGracePeriod": "30",
                    "io.kubernetes.container.logpath": "/var/log/pods/kube-system_storage-provisioner_b4aa3b1c-62c1-4661-a302-4c06b305b7c0/storage-provisioner/4.log",
                    "io.kubernetes.container.name": "storage-provisioner",
                    "io.kubernetes.docker.type": "container",
                    "io.kubernetes.pod.name": "storage-provisioner",
                    "io.kubernetes.pod.namespace": "kube-system",
                    "io.kubernetes.pod.uid": "b4aa3b1c-62c1-4661-a302-4c06b305b7c0",
                    "io.kubernetes.sandbox.id": "3950ec60121fd13116230cad388a4c6c4e417c660b7da475436f9ad5c9cf6738"
                }
    

    【讨论】:

      猜你喜欢
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 2019-04-16
      • 2018-11-05
      • 1970-01-01
      • 2019-01-14
      • 1970-01-01
      • 2013-07-08
      相关资源
      最近更新 更多