如何访问k8s集群部署的微服务内部服务接口
微服务,一般只能访问最上层的服务入口。
如果服务模块有对外开放,可以直接在 postman/浏览器 访问。
有些内部的服务模块,为了安全考虑,不允许访问。
如果没有对外开放,有时又确实需要调用内部服务接口,可以尝试使用以下方法访问。
通过k8s pod的localhost访问
进入pod,点击 pod的 shell命令,通过 curl 调用接口。
localhost 代表这个 pod 的本地ip。注意:端口别搞错了。
比如,通过这个命令访问 /user/test 接口
curl --location --request GET 'localhost:端口/user/test'
通过服务名去访问
k8s集群 ,pod,同一个命名空间,可以直接用 服务名去访问。
因为 K8s 内部有 DNS 解析,会将服务名解析为对应的ip。
比如 服务名是 user ,也可以直接用服务名加端口访问:
curl --location --request GET 'http://user:端口/user/test'
通过注册中心的地址去访问
如果有使用注册中心,调用注册中心的ip地址,也能直接调用到内部服务的接口。
微服务在注册到注册中心时,会将服务名、ip、端口都提供给注册中心。
调用注册中心的ip地址,就能访问到微服务的内部服务的接口。
curl --location --request GET 'http://注册中心ip地址/user/test'