首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Kubernetes中获取pod ID?

如何在Kubernetes中获取pod ID?
EN

Stack Overflow用户
提问于 2019-09-05 14:38:11
回答 2查看 17.2K关注 0票数 16

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

示例:

代码语言:javascript
运行
复制
{
      "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
          }
        }
     ]
}

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

那么,如何获取pod ID以便能够识别它呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-05 14:58:44

使用kubectl jsonpath

获取特定pod的UID:

代码语言:javascript
运行
复制
$ kubectl get pods -n <namespace> <pod-name> -o jsonpath='{.metadata.uid}'
代码语言:javascript
运行
复制
$ kubectl get pods -n kube-system kubedb-66f78 -o jsonpath='{.metadata.uid}'
275ecb36-5aa8-4c2a-9c47-d8bb681b9aff⏎

使用kubectl custom-columns

列出所有PodName及其命名空间的UID:

代码语言:javascript
运行
复制
$ kubectl get pods -n <namespace> -o custom-columns=PodName:.metadata.name,PodUID:.metadata.uid
代码语言:javascript
运行
复制
$ kubectl get pods -n kube-system -o custom-columns=PodName:.metadata.name,PodUID:.metadata.uid
PodName                                      PodUID
coredns-6955765f44-8kp9t                     0ae5c03d-5fb3-4eb9-9de8-2bd4b51606ba
coredns-6955765f44-ccqgg                     6aaa09a1-241a-4013-b706-fe80ae371206
etcd-kind-control-plane                      c7304563-95a8-4428-881e-422ce3e073e7
kindnet-jgb95                                f906a249-ab9d-4180-9afa-4075e2058ac7
kube-apiserver-kind-control-plane            971165e8-6c2e-4f99-8368-7802c1e55e60
kube-controller-manager-kind-control-plane   a0dce3a7-a734-485d-bfee-8ac3de6bb486
kube-proxy-27wgd                             d900c0b2-dc21-46b5-a97e-f30e830aa9be
kube-scheduler-kind-control-plane            9c6f2399-4986-4259-9cd7-875eff1d7198

使用Unix/Linux命令grep

您可以结合使用grepkubectl get pods

代码语言:javascript
运行
复制
$ kubectl get pods -n <namespace> <pod-name> -o yaml | grep uid
uid: bcfbdfb5-ce0f-11e9-b83e-080027d4916d
票数 28
EN

Stack Overflow用户

发布于 2019-09-05 16:41:06

或者,您可以尝试执行以下操作:

代码语言:javascript
运行
复制
$ kubectl get pod -n <namespace> <pod_name> -o jsonpath='{.metadata.uid}'
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57799684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档