在哪里可以看到在 Kubernetes Discovery 中注册的服务列表?

Where can I see list of services registered in Kubernetes Discovery?

如果使用 eureka(+ Spring 引导),您可以到达特殊端点,其中可以找到当前注册实例的列表。例如。:

Kubernetes 服务发现是否有这样的端点或者可能是其他机制来查看所有当前注册的实例? UPD:kubernetes api 是否有可能通过 kubectl 做到这一点?

没有。 Eureka 是一个服务发现和注册系统。 spring kubernetes 上服务发现的云实现仅从 kubernetes api 读取。您可能可以通过 kubectl 获取信息。

Kubernetes 有一个基于 HTTP 的 API,您可以通过多种方式与之交互(例如:kubectl),当然您也可以使用 curl
方法如下:Access Clusters Using the Kubernetes API

如果你对你的pods感到好奇,你可以这样做:

  • kubectl get podskubectl get pods -o json
  • curl http://localhost:8080/api/v1/pods

如果你的意思是services(以及他们注册的目标):

  • kubectl get serviceskubectl services pods -o json
  • curl http://localhost:8080/api/v1/services

一段时间后我设法解决了问题。

  1. 在您的微服务中添加端点。示例 here
  2. 向您的 kubernetes 集群添加角色:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: yours
  name: service-reader
rules:
  - apiGroups: [""] # "" indicates the core API group
    resources: ["services"]
    verbs: ["get", "watch", "list"]

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: service-reader-pod
subjects:
  - kind: ServiceAccount
    name: default
    namespace: yours
roleRef:
  kind: ClusterRole
  name: service-reader
  apiGroup: rbac.authorization.k8s.io