如何在Kubernetes中获取吊舱ID?

anu*_*lan 4 monitoring kubernetes google-kubernetes-engine stackdriver

我正在使用Stackdriver Monitoring API来获取与容器相关的指标。从API返回的JSON对象具有以下容器详细信息。

例:

{
      "metric": {
        "type": "container.googleapis.com/container/cpu/utilization"
      },
      "resource": {
        "type": "gke_container",
        "labels": {
          "zone": "us-central1-a",
          "pod_id": "1138528c-c36e-11e9-a1a7-42010a800198",
          "project_id": "auto-scaling-springboot",
          "cluster_name": "load-test",
          "container_name": "",
          "namespace_id": "f0965889-c36d-11e9-9e00-42010a800198",
          "instance_id": "3962380509873542383"
        }
      },
      "metricKind": "GAUGE",
      "valueType": "DOUBLE",
      "points": [
        {
          "interval": {
            "startTime": "2019-09-04T04:00:00Z",
            "endTime": "2019-09-04T04:00:00Z"
          },
          "value": {
            "doubleValue": 0.050707947222229495
          }
        }
     ]
}
Run Code Online (Sandbox Code Playgroud)

当执行时kubectl describe pod [pod name],我没有得到容器独有的这些信息。因此,我无法识别与容器相对应的结果。

因此,如何获取吊舱ID,以便能够识别它?

Kam*_*san 7

您可以使用kubectl get pods命令获取pod的uid。

$ kubectl get pods -n namespace-name pod-name -o yaml | grep uid
uid: bcfbdfb5-ce0f-11e9-b83e-080027d4916d
Run Code Online (Sandbox Code Playgroud)

  • 为什么要在这里错过`jq`:`kubectl get po <pod> -n <namespace> -o json | jq '.metadata.uid'` (2认同)

Shu*_*rma 5

(可选)您可以尝试以下操作:

$ kubectl get pod -n <namespace> <pod_name> -o jsonpath='{.metadata.uid}'
Run Code Online (Sandbox Code Playgroud)