如果使用 eureka (+ Spring Boot),您可以到达特殊端点,在其中可以找到当前注册实例的列表。例如。:
Kubernetes 服务发现是否有这样的端点,或者可能是其他机制来查看所有当前注册的实例? UPD:kubernetes api 是否有可能通过 kubectl 来做到这一点?
不。 Eureka 是一个服务发现和注册系统。 spring cloud 在 kubernetes 上实现服务发现仅从 kubernetes api 读取。您可能可以通过 kubectl 获取信息。
Kubernetes 有一个基于 HTTP 的 API,您可以通过多种方式与之交互(例如:
kubectl
),当然您也可以使用 curl
。如果您对 pod 感到好奇,您可以这样做:
kubectl get pods
或 kubectl get pods -o json
curl http://localhost:8080/api/v1/pods
如果您的意思是
services
(及其注册目标):
kubectl get services
或 kubectl services pods -o json
curl http://localhost:8080/api/v1/services
过了一段时间我就成功解决了问题。
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