首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >k8s内部的Spring网关-路由没有负载平衡

k8s内部的Spring网关-路由没有负载平衡
EN

Stack Overflow用户
提问于 2022-01-19 13:00:05
回答 2查看 705关注 0票数 0

我在k8s集群中使用spring云网关2021.0.0。我还有一个k8s服务,有两个豆荚。我的问题是,春季网关总是将流量路由到同一个吊舱。如果我移开那个吊舱,那么弹簧网关就会开始使用另一个。如何将spring网关配置为使用与k8s服务关联的所有吊舱?我知道k8s服务工作得很好,因为如果一个进入网关容器并对服务做卷曲,请求有时会发送到一个容器,有时会发送到另一个,但是正如我所说的,使用spring网关请求总是发送到同一个容器。

我的春季网关配置

代码语言:javascript
复制
spring:
  cloud:
    gateway:
      routes:
        - id: product
          uri: http://product-service
          predicates:
            - Path=/api/product/**

如果我更改uri并将lb替换为http,我将得到503

代码语言:javascript
复制
spring.cloud.gateway.requests tags: [tag(httpMethod=GET),tag(httpStatusCode=503),tag(outcome=SERVER_ERROR),tag(routeId=product),tag(routeUri=lb://product-service),tag(status=SERVICE_UNAVAILABLE)]

提前感谢

更新

我在这里发现了问题-- https://learnk8s.io/kubernetes-long-lived-connections --我刚刚将httpClient keepAlive属性设置为false,现在它正在按预期工作。

EN

回答 2

Stack Overflow用户

发布于 2022-01-21 17:06:48

您需要通过在网关应用程序中添加kubernetes和kubernetes-lb启动依赖关系来启用客户端负载平衡。还需要用户将路由配置为lb://service-name,而不是使用http端点。它将以循环的方式进行负载平衡。

代码语言:javascript
复制
         <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-kubernetes-loadbalancer</artifactId>
            <version>${spring-cloud-starter-kubernetes.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-kubernetes</artifactId>
            <version>${spring-cloud-starter-kubernetes.version}</version>
        </dependency>
票数 0
EN

Stack Overflow用户

发布于 2022-11-03 21:13:09

如果有人还在问这个问题的话。我设法通过向pom.xml添加以下依赖项来解决这个问题

代码语言:javascript
复制
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-kubernetes-client-loadbalancer</artifactId>
</dependency>

此外,还应该将以下属性添加到application.properties中,该属性支持基于Kubernetes服务名称的负载平衡。

代码语言:javascript
复制
spring.cloud.kubernetes.loadbalancer.mode=SERVICE

此外,路由的URI应该使用lb方案来定义,而不是使用httphttps

参考:Spring文档

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70771033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档