如何从 kubernetes 的前端调用 spring api
How to call spring api from frontend in kubernetes
我正在尝试创建一个 Kubernetes 应用程序,我在其中为后端(spring 启动微服务)和前端 pod 创建了一个 pod 和服务
负载均衡器服务。
我想知道如何从 Kubernetes 中的前端 pod 调用后端 API?
以下是 运行 服务:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
angular LoadBalancer 10.100.15.215 a17f17fd2e25011e886100a0e002191e-1613530232.us-east-1.elb.amazonaws.com 4200:30126/TCP 12s app=angular
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 35m <none>
login ClusterIP 10.100.99.52 <none> 5555/TCP 13m app=login,tier=backend
我正在从前端调用以下 API,它显示名称未解析错误:
http://login/login
我也尝试过使用集群 IP 调用 API 但失败了。
您的后端服务似乎在 运行 端口 5555
上,因此您必须这样调用您的后端服务:
http://login:5555/login
假设您的前端 pods 在同一个 Kubernetes namespace 上。如果它们在不同的命名空间上,您可以这样调用:
http://login.<namespace>.svc.cluster.local:5555/login
也如所述here。
请注意,这仅在集群内有效,如果您从集群外的 Web 浏览器访问 Angular 前端,这将不起作用,因为 Web 浏览器不知道在哪里您的后端在集群中。因此,您要么必须使用另一种 LoadBalancer 类型的服务来公开您的后端,要么您可以考虑将 Kubernetes Ingress 与入口控制器一起使用。
您的angular应用程序是否直接访问登录服务?如果是这种情况,您将无法通过是正常的,因为登录服务正在使用 ClusterIP。这意味着,IP 仅在集群内。您可以像为 "angular" 应用程序一样使用 LoadBalancer 类型。
我正在尝试创建一个 Kubernetes 应用程序,我在其中为后端(spring 启动微服务)和前端 pod 创建了一个 pod 和服务 负载均衡器服务。
我想知道如何从 Kubernetes 中的前端 pod 调用后端 API?
以下是 运行 服务:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
angular LoadBalancer 10.100.15.215 a17f17fd2e25011e886100a0e002191e-1613530232.us-east-1.elb.amazonaws.com 4200:30126/TCP 12s app=angular
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 35m <none>
login ClusterIP 10.100.99.52 <none> 5555/TCP 13m app=login,tier=backend
我正在从前端调用以下 API,它显示名称未解析错误:
http://login/login
我也尝试过使用集群 IP 调用 API 但失败了。
您的后端服务似乎在 运行 端口 5555
上,因此您必须这样调用您的后端服务:
http://login:5555/login
假设您的前端 pods 在同一个 Kubernetes namespace 上。如果它们在不同的命名空间上,您可以这样调用:
http://login.<namespace>.svc.cluster.local:5555/login
也如所述here。
请注意,这仅在集群内有效,如果您从集群外的 Web 浏览器访问 Angular 前端,这将不起作用,因为 Web 浏览器不知道在哪里您的后端在集群中。因此,您要么必须使用另一种 LoadBalancer 类型的服务来公开您的后端,要么您可以考虑将 Kubernetes Ingress 与入口控制器一起使用。
您的angular应用程序是否直接访问登录服务?如果是这种情况,您将无法通过是正常的,因为登录服务正在使用 ClusterIP。这意味着,IP 仅在集群内。您可以像为 "angular" 应用程序一样使用 LoadBalancer 类型。