当前位置: 首页 > 知识库问答 >
问题:

尤里卡和库贝内特斯

帅彦
2023-03-14

我正在使用Spring Boot/Netflix OSS和Kubernetes组合一个概念验证来帮助识别gotchas。这也是为了证明普罗米修斯和Graphana等相关技术。

server:
  port: 8889

eureka:
  instance:
    hostname: configserver
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://discovery:8761/eureka/

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/xyz/microservice-config
kubectl run configserver --image=xyz/config-microservice --replicas=1 --port=8889

此服务以configServer-3481062421-tmv4d的名称结束运行。然后,我在配置服务器日志中看到异常,因为它试图找到eureka实例,但无法找到。

我在本地使用docker-compose和链接进行了相同的设置,它可以轻松启动各种容器。

discovery:
  image: xyz/discovery-microservice
  ports:
   - "8761:8761"
configserver:
  image: xyz/config-microservice
  ports:
   - "8888:8888"
  links:
   - discovery

我如何设置像Eureka.client.ServiceURI这样的东西,这样我的微服务就可以在不知道K8集群中固定IP地址的情况下定位它们的对等体?

共有1个答案

董胡媚
2023-03-14

我如何设置像Eureka.client.serviceuri这样的东西?

您必须在eureka Pods/Deployments之上有一个Kubernetes服务,然后它将为您提供一个可参考的IP地址和端口号。然后使用该可引用地址查找Eureka服务,而不是“8761”。

每个k8s服务不应该有一个以上的Pod/Eureka副本(记住,Pod是短暂的,您需要一个可引用的IP地址/域名用于Eureka service registry)。为了实现高可用性(HA),将更多的k8s服务升级为每个服务中的一个pod。

    null

您可以使用Stefan Ocke指出的StatefulSets,而不是每个服务都有一个pod。

与部署类似,StatefulSet管理基于相同容器规范的Pod。与部署不同,StatefulSet为每个Pod维护一个粘性标识。这些Pod是根据相同的规范创建的,但不能互换:每个Pod都有一个持久的标识符,它在任何重调度过程中都要维护这个标识符。

 类似资料:
  • 我正在尝试使用Spring和Spring Boot学习微服务,并学习部署到云平台。我计划创建一个Angular 2前端应用程序,它与我部署的微服务进行通信。现在,我正在浏览Spring cloud services Eureka、Zuul、Recural breakers等。 null

  • 我正在尝试运行集成minikube与Jenkins。我得到以下异常: 配置如下Kubernetes url所示:192.168.99.101:8443 Kubernetes 1 希望你的协助。

  • 我正在尝试向尤里卡服务器注册我的微服务。但它显示浏览器中没有可用的实例。我在控制台中没有收到任何错误。请帮助我解决这个问题。 我已经通过在谷歌上搜索尝试了多个选项。不过,我无法解决此问题。 微服务应用程序.属性 客户端主类 Eureka服务器application.properties 尤里卡服务器主类。

  • 我创建了一个具有“Spring-Cloud-Starter-Netflix-Eureka-Server”依赖项的新Spring Boot项目。还添加了“@enableeurekaserver”注释并启动了spring boot应用程序。 我看到下面的日志消息 上面,我指定了Eureka服务器的位置。但是,为什么客户端无法注册呢? 谢谢!

  • 嗨,当一个新的实例/服务使用Spring cloud API注册到eureka时,我试图调用一个自定义方法。是否有任何处理程序/拦截程序可用于执行此操作?在完成注册后,它应该调用自定义方法,这里我试图将一个事件发布到队列中。

  • 我试图通过Spring.io上的教程链接来设置Spring Cloud Eureka。本教程使用的是Spring Boot 1.5.9.RELEASE。但是http://mvnrepository.com/.上没有Spring Cloud Starter Eureka的版本,所以我尝试了1.4.0和2.0.0.M2。我得到了 我做错了什么? 我使用Gradle作为构建工具。