在Kubernetes Pod中访问Spring Boot Controller端点

时间:2019-01-15 18:36:06

标签: spring-boot docker kubernetes kubectl kubernetes-ingress

我在kubernetes pod中部署了一个spring boot应用程序。但是通常我会以代理端口转发的方式访问任何应用-

http://192.64.125.29:8001/api/v1/namespaces/kube-system/services/https:hello-app:/proxy/

但是我的spring boot应用程序正在以下URL中运行-

http://192.64.125.29:8001/api/v1/namespaces/kube-system/services/https:myspringbootapp:/proxy/

但是我不知道如何调用控制器端点/ visitid

1 个答案:

答案 0 :(得分:1)

如果您只是想进行快速检查,则可以port-forward to the pod-做kubectl get pods来找到Pod名称,然后找到kubectl port-forward <pod-name> 8080:8080或您使用的端口(如果不是8080)。您可以在浏览器中或通过localhost上的curl命中端点。例如,如果弹簧启动执行器正在运行,则可以转到http://localhost:8080/actuator/health

如果您尝试通过服务访问Pod,则可以port-forward to the Service,但您可能希望在外部公开该服务。您需要选择how to expose it externally并进行设置。然后,您将拥有一个可以使用的外部URL,而无需通过kube内部API进行访问。

to construct a URL to hit the Service when proxying with kubectl proxy也可能。例如,您可以使用带有api/v1/namespaces/<namespace>/services/<http:><service_name>:<port_name>/proxy/actuator/health的http(不是https)在spring boot应用程序上执行器。 <port_name>将在服务规格中,您将在kubectl describe service的输出中找到它。