使用K8S部署,我们的项目基于springcloud。我想知道在K8S中,因为多节点部署传递注册表的默认主机名,所以网关部署在A中,配置部署在B中。它们以前不能通过eureka相互访问。我更改为eureka.instance.prefer-ip-address: true,但我发现它们只能在同一主机上相互访问。他没有使用K8S的群集ip。我想知道如何在K8S中的服务之间相互访问。
发布于 2019-01-05 19:07:59
在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 spec中的端口并将SERVER_PORT环境变量传递给spring引导应用程序,可以将其设置为匹配。
发布于 2019-01-06 02:11:14
检查spring-cloud-kubernetes项目
https://stackoverflow.com/questions/54019101
复制相似问题