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

需要澄清发现客户端与本机 Kubernetes 发现的用法

梁丘威
2023-03-14

我很困惑,我的spring-cloud-kubernetes项目应该如何设置才能使用kubernetes的本地发现,并在kuberbetes服务面临多重挑战时使用discoveryclient

我可以通过使用发现客户端并按名称引用服务来工作。到目前为止一切都很好。但是,我需要选择一个服务实例(看起来像一个实际的pod ip端口),这显然是我不想做的,因为我想依赖本机服务发现。在使用kubernetes服务发现时,我不应该使用发现客户端吗?

我还可以使用超文本传输协议://{service-name}.{namesspace}. svc.{集群}.local:{service-port}连接到rest服务。据我所知,restTemplate还将使用DisdisveryClient并选择一个serviceInstance(特别是在使用@LoadBalance注释时)。但是,基于我上面描述的行为,这表明选择了一个服务实例,而不是命中实际的kubernetes服务。

我觉得我不明白在处理本机kubernetes发现时发现客户端的语义学是什么。我也不明白为什么我需要使用{service-name}在我的restTemplate中引用服务。{namesspace}. svc。{集群}.local:{service-port}而不仅仅是{service-name)(考虑到使用客户端负载平衡时似乎很多)?

感谢您的澄清。

共有1个答案

冯祺
2023-03-14

我一直遇到与您相同的问题。据我了解,如@spencergibb所述,将负载均衡器更改为服务模式应该允许您通过 pod IP 地址与服务 URL 连接,但它似乎不起作用,或者我用错了它。我在Spring Cloud的GitHub https://github.com/spring-cloud/spring-cloud-kubernetes/issues/783 上创建了一个问题。

 类似资料:
  • 我认为用A*算法应该是SAEFG,但答案是SBEFG。现在我的教授是一个无所事事的人。有人能解释为什么是SBEFG吗?

  • 如果可能的话请告诉我。另外,我想传达的是Keycloak和openid-connect协议是全新的。

  • 服务发现是基于微服务架构的关键原则之一。尝试配置每个客户端或某种形式的约定可能非常困难,可以非常脆弱。Netflix服务发现服务器和客户端是Eureka。可以将服务器配置和部署为高可用性,每个服务器将注册服务的状态复制到其他服务器。 如何包含Eureka客户端 要在您的项目中包含Eureka客户端,请使用组org.springframework.cloud和工件ID spring-cloud-st

  • 来自 https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#poison 当 Blob 触发器函数失败时... “失败”是什么意思?编译失败?引发未处理的异常? 如果有一些不起作用的示例代码,那就太好了。所有示例代码都显示了工作状态,因此无法演示 Azure 函数中的故障模式。

  • 我们有申报单 其中backlog被标识为传入连接的最大队列长度。如果连接指示在队列已满时到达,则会拒绝连接。 假设积压设置为10。 这是否意味着服务器套接字将接受不超过10个客户端? 然后: 只有当时,积压数才会下降。这是正确的吗? 有没有办法知道一个套接字当前正在处理多少个打开的连接(换句话说,它离放弃并开始拒绝新连接有多近)

  • 需求:创建一个多租户应用程序,该应用程序应该根据请求中的租户id将每个租户的数据插入到各自的PDB中。换句话说,每个租户或客户在CDB中都有自己的PDB,所有PDB都有相同的模式,然后根据请求中的租户Id选择一个数据源,并将数据插入到该PDB中。 Stack-Spring boot 2.3.0.发行版,Oracle 18c,连接池-Oracle共享通用连接池 UCP连接: Spring数据源配置类

  • cabin是由bitnami开源的手机管理Kubernetes集群的客户端,目前提供iOS和安卓版本,代码开源在GitHub上:https://bitnami.com/ 为了方便移动办公,可以使用Cabin这个kuberntes手机客户端,可以链接GKE和任何Kubernetes集群,可以使用以下三种认证方式: 证书 token kubeconfig文件 所有功能跟kubernetes dashb

  • 问题内容: 我正在编写一个Java应用程序,并且需要快速发现任何有线或无线本地网络上的所有其他正在运行的客户端,以便建立TCP连接。 最好的方法是什么?是否有可以做到这一点的库或代码片段? 问题答案: 我想您需要对子网中所有IP上的应用程序端口进行扫描。 到底有哪些可用IP?或者您的子网是什么? 由于网络被设计为对您的应用程序透明,因此恐怕无法确定这一点。 因此,我将使用蛮力:选择您的IP并更改最