问题标签 [spring-cloud-kubernetes]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1348 浏览

spring-cloud - 使用 spring-cloud-kubernetes 配置映射依赖项存在的 spring 应用程序启动异常

我有一些 Spring 服务,它们同时具有 Eureka-client 和 spring-cloud-starter-kubernetes-fabric8-all 依赖项。默认情况下,Eureka 处于启用状态,Kubernetes 处于禁用状态。

当我启动应用程序时,我收到以下异常作为警告,即使 kubernetes 已被禁用。跑步 -docker run --rm dhananjay12/demo-service-one:latest

如果我将相同的属性放在 env 变量中,则不存在异常。跑步 -docker run --rm -e spring.cloud.kubernetes.config.enable-api=false dhananjay12/demo-service-one:latest

虽然应用程序确实启动并且其余的东西都可以工作,但有人可以建议,为什么首先会出现这个异常?

代码 - https://github.com/dhananjay12/spring-microservice-demo/blob/master/service-one/src/main/resources/application.yml Spring boot - 2.4.5, Spring cloud -2020.0.2

0 投票
0 回答
50 浏览

java - Spring Cloud ZUUL 不代理对新添加的 kubernetes 服务的调用

我们已经使用 Spring Cloud 堆栈构建了一组微服务,我在开发时使用 Eureka 服务作为服务发现,但在将其移动到 Kubenretes 时,我们有两个选择

  1. 继续使用 Eureka 作为发现服务
  2. 开始使用原生 Kubernetes 服务

因此,我们选择了#2,因为使用 Kubernetes 原生服务比使用另一层重定向更有意义。

我们使用 Spring Cloud Zuul 作为 API Gatway 启用@DiscoveryClient以获取部署在命名空间中的服务,以便 Zuul 可以代理对底层服务的调用,设置工作良好,直到我们向命名空间添加新服务,API 网关无法找出新的添加的服务因此无法代理调用它,但是,如果重新启动 API 网关,那么它会发现添加的服务,所以它似乎无法即时解析新添加的服务,是否有配置或 jar我的设置中缺少

这是我的 API 网关 pom.xml

我的 API Gateway 配置如下所示:-

0 投票
0 回答
29 浏览

spring-boot - Spring Cloud Kubernetes / Spring Boot 1.5 支持

我仍在运行 Spring Boot 1.5 应用程序(我知道,我知道)。我正在使用 Spring Cloud Edgware,因为这是使用 Spring Boot 1.5 构建的最新 Cloud 版本。我目前正在使用 Spring Cloud Zookeeper 进行配置和服务发现。我想切换到使用 Kubernetes 进行服务发现,因为我在 Kubernetes 集群中运行以进行部署。

我的问题是,我是否需要将所有应用程序升级到 Spring Boot 2 和更高版本的 Spring Cloud 才能使用 Spring Cloud Kubernetes?我看到 Spring Cloud Kuberenetes 1.0.0 可用于 Spring Cloud Greenwich。但它可以拉进去单独使用吗?

0 投票
1 回答
1621 浏览

java - Spring Cloud 负载均衡器和 Ribbon 有什么区别?

我们的团队正计划从

  1. Spring Cloud Netflix Ribbon 到 Spring Cloud LoadBalancer 并使用 spring-cloud-kubernetes 作为发现客户端。
  2. 使用 Spring Cloud Gateway 代替 Zuul
  3. 和 Resilience4j 而不是 Hystrix。

需要进行哪些更改,我们是否需要更改等效属性。你能帮我们从哪里开始吗?

0 投票
1 回答
129 浏览

spring-cloud-dataflow - Spring Cloud 数据流:错误 org.springframework.dao.InvalidDataAccessResourceUsageException

我正在尝试运行/配置 Spring Data Cloud Data Flow (SCDF) 来安排 Spring Batch Job 的任务。

我在连接到本地 postgresql(localhost:5432)的 minikube 中运行。minikube 在虚拟机中运行,我通过 --cidr 分配了一个 vnet,因此 minikube 可以连接到本地 postgres。

这是 postgresql 服务 yaml: https ://github.com/msuzuki23/SpringCloudDataFlowDemo/blob/main/postgres-service.yaml

这是 SCDF 配置 yaml: https ://github.com/msuzuki23/SpringCloudDataFlowDemo/blob/main/server-config.yaml

这是 SCDF 部署 yaml: https ://github.com/msuzuki23/SpringCloudDataFlowDemo/blob/main/server-deployment.yaml

这是 SCDF server-svc.yaml: https ://github.com/msuzuki23/SpringCloudDataFlowDemo/blob/main/server-svc.yaml

要在 minikube 中启动 SCDF 服务器,我执行以下 kubectl 命令:

我没有运行 Prometeus、Grafana、Kafka/Rabbitmq,因为我想测试并确保我可以从 SCDF 启动 Spring Batch Job。我没有运行船长部署(Spring Cloud DataFlow 服务器在本地运行,指向 Kubernetes 中的船长),如果只是运行任务,则没有必要。

这是我在尝试从 docker 私有仓库添加应用程序时遇到的错误:

添加应用程序错误

这是来自 pod 的完整错误堆栈: https ://github.com/msuzuki23/SpringCloudDataFlowDemo/blob/main/SCDF_Log_Error

错误堆栈的亮点:

Postges休眠错误:

前几个错误来自 SCDF 试图连接到船长,因为它没有配置,这是预期的。

第二个错误是 Postgres JDBC Hibernate。我该如何解决?将 SCDF 设置为指向本地 postgres 时是否缺少配置?

此外,在我的 docker jar 中,我没有添加任何注释,例如 @EnableTask。

任何帮助表示赞赏,谢谢!马库斯。

0 投票
0 回答
140 浏览

java - 带有 HTTP2 码头客户端的 Spring Cloud kubernetes 负载均衡器升级问题

我们有一个带有 HTTP2 码头客户端的 Spring Boot 应用程序,我们使用 @LoadBalanced 注释了 springboot 版本 2.3.x 和 spring-cloud-kubernetes-loadbalancer 版本 1.1.6.RELEASE。在发送流量时,正确创建了 HTTP2 持久连接。在扩展服务器时,它会平等地分配连接以及这些连接上的流量。

工作依赖如下:

后来将 spring boot 版本升级到 2.4.x 并相应地迁移到 spring-cloud-starter-kubernetes-fabric8-loadbalancer 2.0.3 (因为根据 Release train Spring Boot compatible ,这是与 springboot 2.4.x 兼容的正确版本) ,我们没有看到与横向扩展服务器的 HTTP2 连接数量相等。

不工作的依赖项如下:

这里可能存在什么问题?

编辑:java 版本“15”2020-09-15 Java(TM) SE Runtime Environment (build 15+36-1562) Java HotSpot(TM) 64-Bit Server VM (build 15+36-1562,混合模式,共享)

码头客户端版本是

这两个对于工作和非工作情况都很常见

0 投票
0 回答
347 浏览

spring-boot - Spring Cloud Kubernetes Configuration Watcher,通知接收者不基于秘密名称

我最近在 spring-cloud-kubernetes 项目中听说过Spring Cloud Kubernetes Configuration Watcher 。据我了解,它允许公开执行器/刷新端点的 Spring Boot 应用程序收到对 ConfigMap 或 Secret 的更改的通知,并在运行时相应地更新 - 无需重新启动应用程序 - 这听起来很棒。但是文档提到:

Configuration Watcher 将获取 ConfigMap 或 Secret 的名称,并使用该名称向应用程序发送通知

我想知道,有没有办法将通知发送到名称与 Secret 不同的应用程序?例如,如果我有一个名为 auth-server-secret 的 Secret 由多个不同名称的微服务共享,我如何让 Spring Cloud Kubernetes Configuration Watcher 通知它们?如果可以基于标签或注释发送通知,那就太好了。那可能吗?还是我误解了机制?

任何建议将不胜感激

0 投票
0 回答
110 浏览

java - 在 spring-boot 中使用作为文件挂载的多个 kubernetes 机密

我正在使用 spring-cloud-starter-kubernetes-client-config 库在我的应用程序中使用 kubernetes 机密。我有一个从秘密映射属性的 Pojo:

在我的场景中,我将 2 个秘密安装为卷并像这样引导:

我的问题是如何区分这两个秘密并在应用程序中使用它们?最终,我希望有 2 个ServiceConfiguration类实例s1,一个用于s2. 使用自动装配时的当前设置,ServiceConfiguration它仅解析s2内容。

0 投票
1 回答
844 浏览

spring-cloud-kubernetes - 跨多个命名空间的 Spring Cloud Kubernetes 和 ConfigMaps

阅读Spring Cloud Kubernetes 文档后,似乎 Spring Cloud Kubernetes 支持跨多个命名空间从 ConfigMap 加载属性。以下是文档中的示例:

但是,根据Kubernetes 文档,“Pod 和 ConfigMap 必须在同一个命名空间中”。

那么,Spring Cloud Kubernetes 是否支持跨多个命名空间从 ConfigMaps 加载属性,如果支持,允许这样做的正确配置是什么?

我在与 Spring Boot pod 相同的命名空间中从 ConfigMaps 加载属性没有问题,但是当我尝试在不同的命名空间(在本例中为common)中加载源自 ConfigMap 的属性时,遇到以下异常:

总而言之,我试图确定在 Kubernetes 世界中,如何设置类似于 Spring Cloud Config 目前在我们的 Docker Swarm 环境中为我提供的设置,我们正在使用由 Spring Cloud Eureka、Spring Cloud Config 和春天云网关。例如,今天我拥有与我的 Git 存储库中的所有可用微服务application.yml和文件相关的通用属性。application-profile.yml我的想法是,这些属性将在 Kubernetes 中作为common命名空间中的 ConfigMap 提供,而我xyz-microservice.yml今天由 Spring Cloud Config 加载并与application.yml和属性结合的application-profile.yml属性将在其自己的命名空间中。

0 投票
1 回答
164 浏览

kubernetes - Spring Cloud Kubernetes 与 Kubernetes API 客户端

我想运行一个 restapi 服务器,一个 spring boot 应用程序,以启动同一个 kubernetes 集群内的其他 docker 容器。我找到了这两个包:Spring Cloud Kubernetes 和 Kubernetes API Client。我对两者之间的区别以及我应该使用哪一个感到困惑。