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

Spring boot应用程序中的水平Pod自动标量

梁宪
2023-03-14

我有一个Spring boot应用程序,并为此创建了一个部署yaml文件。现在我已经为它分配了资源:

resources:
            requests:
              memory: "200Mi"
              cpu: "250m"
            limits:
              memory: "655Mi"
              cpu: "500m"

并且我已将我的自动标量创建为:

kubectl autoscale deployment demo-app --cpu-percent=50 --min=1 --max=10

现在我的问题是,当我的应用程序启动时,pod的CPU利用率几乎达到100%(启动期间仅5-10分钟,然后恢复正常),因此我的自动标量创建了一个新pod。

但我想要的是它应该在pod启动后等待一段特定的时间(准备状态探测完成),然后只有在需要时才会创建新的pod

共有2个答案

昝涛
2023-03-14

有一个全局标志--水平吊舱自动标尺cpu初始化周期,这意味着吊舱启动后可能跳过cpu采样的周期。默认值为5分钟。您需要在kube控制器管理器中将其设置为更高的值

许阿苏
2023-03-14

有一个标志--水平吊舱自动标尺cpu初始化周期还可以引入准备就绪延迟:--水平吊箱自动标尺初始准备就绪延迟,您可以使用公制循环时间, 来计算总延迟。 同步周期<>

这些标志可以帮助您设置值,从而避免在应用初始化期间出现自动缩放问题。

在这里阅读

 类似资料:
  • 尝试将自动缩放部署到我的集群,但目标显示为“未知”,我尝试了不同的指标服务器,但无济于事。我关注了[这个githhub问题](https“//github.com/kubernetes/minikube/issues4456/)甚至认为我使用的是Kubeadm而不是迷你库贝,它并没有改变问题。 我也关注了这个堆栈帖子,但也没有成功。 我正在运行Ubuntu 20.0.4 LTS。 使用 kuber

  • 使用spring-boot时,一切工作都很好。尽管如此,在spring-boot中已删除了注释和。我试图将代码重构为新版本,但我做不到。对于以下测试,我的应用程序在测试之前没有启动,http://localhost:8080返回404: 如何重构测试以使其在Spring-Boot1.5中工作?

  • 假设我们有以下部署: 我们还创建了一个该对象根据CPU平均利用率自动增加/减少Pod的数量。我知道 HPA 会根据资源请求计算 Pod 的数量,但是如果我希望容器能够在水平扩展之前请求更多资源,该怎么办? 我有两个问题: 1) 当定义HPA时,K8是否使用资源限制? 2) 我是否可以告诉 HPA 根据资源限制而不是请求进行扩展?或者作为实现此类控件的一种手段,是否可以将值设置为大于 100%?

  • 然后我的豆荚都可以通过这个网关的虚拟服务到达,它工作得很好,因为它们上面有Istio-Car集装箱,然后我可以从外面到达它们。 因此,我在开发环境中配置了这个应用程序,以便从ENV值中获取凭据: 我知道这不安全,但我只想确定它是认证的。就像我从圆木里看到的那样,它是。 当我的代码操作存储时,需要一个这种类型的对象,我通过这样做得到一个对象: 看起来,当我从Pod进行调用时,预计会有一些额外的Htt

  • 这是我使用SpringBoot的第一天,我试图理解体系结构,因此我开始构建一个hello world应用程序: 在我的pom.xml中,在maven-shade-plugin下,我将mainClass声明如下: 文件目标是src/main/java/com/demo/helloworld.java,该文件中的代码是: 我错过了什么?

  • 我需要在Spring-boot应用程序中使用默认的ObjectMapper作为单个实例。我是否可以简单地在应用程序内部@autowire ObjectMapper(在Spring-boot应用程序中默认创建的实例)而不创建@bean(因为我不想更改ObjectMapper的任何功能) https://docs.spring.io/spring-boot/docs/current/reference