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

库伯内特斯服务发现中的Spring云网关配置问题

阮星火
2023-03-14

我正在尝试将spring云网关与kubernetes服务发现结合使用。下面是我正在使用的设置

建筑格拉德尔

plugins {
    id 'org.springframework.boot' version '2.2.0.BUILD-SNAPSHOT'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
    maven { url 'https://repo.spring.io/milestone' }
    maven { url 'https://repo.spring.io/snapshot' }
}

ext {
    set('springCloudVersion', "Hoxton.BUILD-SNAPSHOT")
    set('springCloudKubernetesVersion', "1.0.3.RELEASE")
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-actuator'
    implementation 'org.springframework.cloud:spring-cloud-starter-gateway'
    implementation 'org.springframework.cloud:spring-cloud-starter-kubernetes'
    implementation 'org.springframework.cloud:spring-cloud-starter-kubernetes-ribbon'
    testImplementation('org.springframework.boot:spring-boot-starter-test') {
        exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    }
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
        mavenBom "org.springframework.cloud:spring-cloud-kubernetes-dependencies:${springCloudKubernetesVersion}"
    }
}

test {
    useJUnitPlatform()
}

application.yml

spring:
  application.name: gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true
    kubernetes:
      reload:
        enabled: true
server:
  port: 8080
logging:
  level:
    org.springframework.cloud.gateway: TRACE
    org.springframework.cloud.loadbalancer: TRACE
management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      enabled: true
    info:
      enabled: true

演示应用程序。Java语言

package com.example.gateway;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.cloud.client.discovery.DiscoveryClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import java.util.List;

@SpringBootApplication
@EnableDiscoveryClient
@RestController
public class DemoApplication {

    @Autowired
    private DiscoveryClient discoveryClient;
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @GetMapping("/services")
    public List<String> services() {
      return this.discoveryClient.getServices();
    }
}

Spring云网关无法将请求重定向到其他服务。正在打印的日志是

2019-10-13 18:29:38.303TRACE 1---[or-超文本传输协议-epolp-2]o. s. c. g. f. Weght计算器WebFilter: Weghts attr:{}2019-10-13 18:29:38.305TRACE 1---[or-超文本传输协议-epolp-2]o. s. c. g. h. RoutePredicateHandlerMaps: No Route定义[Exchange: GET超文本传输协议://guate-url/service-name/hello]

尽管当我调用http时://

共有1个答案

司徒斌
2023-03-14

所以,看起来Spring Cloud Hoxton中存在一个问题。M3释放,因为它与霍克斯顿配合良好。平方米。

我为同样的问题打开了一个问题。

 类似资料:
  • 我正在学习Spring Bootkubernetes并尝试为我的服务设置Spring Cloud网关。我相信使用Spring Cloud网关,我们不再需要使用功能区来进行负载平衡。所以如果我不使用功能区,那么路由的配置也会改变。我查看了网站以寻求建议,我发现如下:- 在这种情况下,uri具有服务可用的端口的硬编码值。这是推荐的方法吗? 然后还有另一种配置的味道,看起来像这样,不确定url表达式想做

  • 我有一个朋友允许我访问他的kube集群(托管在IBM云上)。 我可以通过IBM云控制台登录 但是,当我试图通过kubectl访问它们时:kubectl get节点 结果显示一条错误消息: 服务器错误(禁止):节点被禁止:用户https://iam.ng.bluemix.net/kubernetes#无法在群集范围内列出节点。 为什么控制台和CLI之间的访问(RBAC)会有所不同?

  • 最近,我用Nginx Ingres控制器在k8s集群中构建了几个微服务,它们工作正常。 在处理微服务之间的通信时,我尝试了gRPC并成功了。然后我发现当微服务A- 后来,我对istio产生了兴趣。我已成功将其部署到群集。但是,我观察到它总是创建自己的负载均衡器,这与现有的Nginx入口控制器不匹配。 此外,我尝试了prometheus和grafana以及k9s。这些工具让我对pod的cpu和内存使

  • 我是Kubernetes平台的新手,尝试启用部署在Kubernetes平台上的tomcat web app的HTTPS安全连接。我对舱单感到困惑。与部署、服务和入口控制器相关的yml。 那么,我是否也必须在部署(在端口:-containerPort:8080)服务(如端口:-端口:80 targetPort:8080协议:TCP名称:http)和入口(在后端:serviceName:tomcat

  • 我是Kubernetes的新手,他们的概念我不太清楚:云提供商。 我已经使用RKE(Rancher引擎)安装了我的库伯内特斯集群。 我的集群设置在rancher2的顶部。 我的节点是托管OVH服务器的虚拟机。 我设法让运行中的应用程序具有L7入口和ClusterIP服务,但每次我尝试使用L4负载平衡器时,负载平衡器都处于挂起状态。根据https://github.com/rancher/ranch

  • 我只是在本地mac上使用mini kube设置kubernetes。 创建了一个类型为NodePort的服务,并且能够使用url