如何在k8和微服务之间相互访问

时间:2019-01-03 09:02:33

标签: kubernetes spring-cloud

使用K8S部署,我们的项目基于springcloud。我想知道,在K8S中,因为多节点部署会通过注册表的默认主机名,所以网关部署在A中,配置部署在B中。它们以前无法通过eureka相互访问。我更改为eureka.instance.prefer-ip-address: true,但发现它们只能在同一主机上相互访问。他没有使用K8S的cluster-ip。我想知道如何在K8S的服务之间相互访问。

2 个答案:

答案 0 :(得分:3)

在Activiti Cloud的7-201712-EA版本中,我们提供了一个使用在kubernetes中运行netflix库的服务的示例-可以参考稳定的github tags和docker映像。我们通过为每个组件创建Kubernetes Services并将组件添加到register with eureka using the k8s service name来实现这一目标。

要确保组件为eureka声明了正确的服务名称,我们在组件中set the eureka.instance.hostname,可以将其设置为in the Deployment yaml by specifying an environment variable或使用默认环境变量EUREKA_INSTANCE_HOSTNAME。我们还通过为Pod中的Java应用程序和服务使用相同的端口来简化操作。同样,可以通过在Pod规范中设置端口并将SERVER_PORT环境变量传递给spring boot应用程序来设置为匹配。

答案 1 :(得分:1)

检查spring-cloud-kubernetes项目