【发布时间】:2017-04-15 18:37:33
【问题描述】:
我有一个使用 netflix 工具构建的(spring boot/spring cloud)应用程序(微服务“MS”架构),我想将其部署在 kubernetes 集群(一个 master 和 2 个 minions)上,以从其编排中获得优势事实。
顺便说一句,我在集群上创建了一个 kube-dns 服务,并尝试使用 3 个 pod 挂载一个 eureka 服务(名为 eurekaservice)。 另一方面,我使用下一个 eureka 配置运行微服务:
client:
serviceUrl:
defaultZone: http://eurekaservice:8761/eureka/
好消息是集群上的每个 eureka pod 都会收到有关新挂载的 MS 实例的通知。坏消息是,当 MS 出现故障时,只有一个 eureka pod 收到通知,其他的则没有。 另一件事是,当我看到安装的 MS 日志文件时,它会显示下一个错误:
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]: 2016-12-01 06:01:54.469 ERROR 1 --- [nio-8761-exec-1] c.n.eureka.resources.StatusResource: Could not determine if the replica is available
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]:
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]: java.lang.NullPointerException: null
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]: at com.netflix.eureka.resources.StatusResource.isReplicaAvailable(StatusResource.java:90)
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]: at com.netflix.eureka.resources.StatusResource.getStatusInfo(StatusResource.java:70)
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]: at org.springframework.cloud.netflix.eureka.server.EurekaController.status(EurekaController.java:63)
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]: at sun.reflect.GeneratedMethodAccessor92.invoke(Unknown Source)
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
Dec 01 09:01:54 ctc-cicd3 docker-current[1465]: at java.lang.reflect.Method.invoke(Method.java:606)
Dec 01 09:02:16 ctc-cicd3 docker-current[1465]: 2016-12-01 06:02:16.918 WARN 1 --- [nio-8761-exec-8] com.netflix.eureka.InstanceRegistry : DS: Registry: lease doesn't exist, registering resource: MS - gateway-bbn50:MS:8090
Dec 01 09:02:16 ctc-cicd3 docker-current[1465]: 2016-12-01 06:02:16.919 WARN 1 --- [nio-8761-exec-8] c.n.eureka.resources.InstanceResource : Not Found (Renew): MS - gateway-bbn50:MS:8090
Dec 01 09:02:16 ctc-cicd3 docker-current[1465]: 2016-12-01 06:02:16.927 INFO 1 --- [nio-8761-exec-5] com.netflix.eureka.InstanceRegistry : Registered instance id 12.16.64.2 with status UP
Dec 01 09:02:17 ctc-cicd3 docker-current[1465]: 2016-12-01 06:02:17.061 INFO 1 --- [io-8761-exec-10] com.netflix.eureka.InstanceRegistry : Registered instance id 12.16.64.2 with status UP
Dec 01 09:02:46 ctc-cicd3 docker-current[1465]: 2016-12-01 06:02:46.932 WARN 1 --- [nio-8761-exec-9] com.netflix.eureka.InstanceRegistry : DS: Registry: lease doesn't exist, registering resource: MS - gateway-bbn50:MS:8090
我认为导致问题的原因是副本无法看到彼此。
我该如何解决这个问题!!
【问题讨论】:
标签: spring-boot kubernetes spring-cloud netflix-eureka service-discovery