我在哪里可以看到在 Kubernetes Discovery 中注册的服务列表?
Posted
技术标签:
【中文标题】我在哪里可以看到在 Kubernetes Discovery 中注册的服务列表?【英文标题】:Where can I see list of services registered in Kubernetes Discovery? 【发布时间】:2021-04-01 18:53:00 【问题描述】:在使用 eureka (+ Spring Boot) 的情况下,您可以到达可以找到当前注册实例列表的特殊端点。例如。:
Kubernetes 服务发现是否有这样的端点,或者可能是其他机制来查看所有当前注册的实例? UPD:kubernetes api有没有可能做到这一点,可能是通过kubectl?
【问题讨论】:
尝试kubectl get svc
命令
【参考方案1】:
没有。 Eureka 是一个服务发现和注册系统。 Kubernetes 上服务发现的 Spring Cloud 实现只从 Kubernetes api 中读取。您可能可以通过 kubectl 获取信息。
【讨论】:
【参考方案2】:Kubernetes 有一个基于 HTTP 的 API,您可以通过多种方式与之交互(例如:kubectl
),当然您也可以使用 curl
。
方法如下:Access Clusters Using the Kubernetes API
如果您对自己的 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
【讨论】:
不,不是 Pod,我是指在 Kuber 发现中注册的 Pod 中的应用程序 @Alex 我明白了,我编辑了我的答案,请检查它是否是你需要的。【参考方案3】:一段时间后我设法解决了问题。
-
在您的微服务中添加端点。示例here
向您的 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
【讨论】:
以上是关于我在哪里可以看到在 Kubernetes Discovery 中注册的服务列表?的主要内容,如果未能解决你的问题,请参考以下文章
我在哪里可以看到 MSysIMEXSpecs 中的“包括第一行作为标题”?
我在哪里可以看到 testflightapp.com 上的 TFLog 输出?
我在哪里可以看到 mfc 应用程序中的 printf 输出?