如何从外部发现部署在kubernetes上的服务?

如何从外部发现部署在kubernetes上的服务?,kubernetes,spring-cloud,netflix-eureka,Kubernetes,Spring Cloud,Netflix Eureka,用户微服务部署在kubernetes上 订单微服务未部署在kubernetes上,但已在Eureka注册 我的问题: 如何通过Eureka发现和访问用户微服务??首先让我们看看问题本身: 如果将覆盖网络用作Kubernetes CNI,问题是它会创建一个从外部无法访问的隔离网络(例如法兰绒)。如果您有这样一个网络,一个解决方案是将eureka服务器移动到kubernetes中,以便eureka可以访问kubernetes中的服务和kubernetes之外的服务 另一个解决方案是告诉eureka在

用户微服务
部署在kubernetes上

订单微服务未部署在kubernetes上,但已在Eureka注册

我的问题:


如何通过Eureka发现和访问
用户微服务??

首先让我们看看问题本身: 如果将覆盖网络用作Kubernetes CNI,问题是它会创建一个从外部无法访问的隔离网络(例如法兰绒)。如果您有这样一个网络,一个解决方案是将eureka服务器移动到kubernetes中,以便eureka可以访问kubernetes中的服务和kubernetes之外的服务

另一个解决方案是告诉eureka在哪里可以找到服务,而不是自动发现,但为此,您还需要使用NodePort、HostPort或LoadBalancer类型的服务或入口使该服务在外部可用,我不确定这是否可能,但下面文档中的11.2可能值得一看


第三种解决方案是使用不使用覆盖网络的CNI,这种覆盖网络默认情况下将使服务外部可路由。

谢谢,但是OrderService如何通过Eureka找到UserService的外部ip?您通过Eureka调用服务,因此OrderService不需要知道外部ip,调用类似于:http://{eurekaServer}/{servicename}服务解析由eureka完成。该服务使用kubernetes pod IP地址和端口注册,而不是服务IP地址,因此我无法通过eureka调用该服务。是否尝试按建议设置eureka.client.serviceUrl.defaultZone?是的。服务已在eureka中注册,但无法访问。