Kubernetes 发现服务选择的 pods

Kubernetes discover pods selected by a service

我想通过 API 从 kubernetes 集群读取信息:我使用 fabric8 java 客户端。

我想知道,服务选择了哪些 pods,但我在对象中找不到任何链接信息,除了名称,它不是唯一的。

另一个方向就足够了 (service -> pods) or (pod <- service).

如果有人能帮助我解决 kubectl/yaml,我可能会自己想办法解决 API。

每个服务都有一个对应的Endpoints对象。这在主要文档中并不是特别突出,但它是包含服务实际指向的所有内容的列表的对象。

一个面向 shell 的食谱,将为您提供数据:

kubectl get endpoints my-service-name -o json \
  | jq '.subsets[].addresses[].targetRef'

它的输出包括服务针对的每个 Pod 的名称和命名空间。包含的 EndpointAddress 对象还包括 pod 私有 IP 地址和节点名称 运行 pod.