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

问题描述

在使用 eureka (+ Spring Boot) 的情况下,您可以到达可以找到当前注册实例列表的特殊端点。例如。:

Instances currently registered with Eureka

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

解决方法

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

,

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

如果您对 Pod 感到好奇,可以这样做:

  • 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...