首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >K8S同时限制启动吊舱的数量

K8S同时限制启动吊舱的数量
EN

Server Fault用户
提问于 2022-05-26 07:10:35
回答 2查看 819关注 0票数 0

我对K8S有问题,我有大约30个微服务(java运行在spring上)。Microservices只需要大量的CPU来启动,因为这里有很多库。当我同时部署所有微服务时,它将在K8S节点上产生非常大的CPU负载,并且它们被标记为不可用。我需要以某种方式限制同时启动豆荚的数量,以避免节点上的cpu负载过高。有什么办法能做到吗?

EN

回答 2

Server Fault用户

回答已采纳

发布于 2022-06-01 15:00:37

您可以设置CPU 限制和要求

一旦设置了这些限制,即使限制很大,kubelet和容器运行时也一起工作,以强制执行CPU限制。同时,您还可以使用库伯奈特斯本身的储备资源,这样工作负载就不会使整个节点处于危险之中。

一旦定义了这些限制,Linux内核将负责强制执行这些限制,并确保公平地分配可用资源。如果集群中有DaemonSets,请确保它们也有资源和限制。您可以考虑以有保证的方式运行DaemonSets,这样他们的资源就会被围起来。见配置Pods的服务质量

综合考虑,这些措施应该保护您的节点不受工作负载的影响,同时仍然允许app在启动时进入可用的CPU。

如果您发现仍然存在问题,您可以采取另一个步骤:将每个启动延迟一个随机的数量。通过在主应用程序启动之前运行自定义init容器,您可以在不改变应用程序的情况下做到这一点。这种随机延迟有助于避免在每个JVM以相同的资源访问模式同时运行的情况下出现的大量问题。

票数 1
EN

Server Fault用户

发布于 2022-06-01 15:09:25

如果您确定要对在推出过程中运行的Pods数量进行评级,可以通过部署Argo推出扩展您的Kubernetes集群。

通过努力,您可以定义自己的部署机制来限制同时部署的数量,方法是设置短暂元数据,然后创建自己的机制(可以是验证接纳own钩子,也可以是调度插件),以限制创建或启动带有这些标签的吊舱的速度。

我不建议这样做:虽然库伯内特斯使它成为可能,但这是一项很大的工作。我的另一个答案是一个更简单的方法来取得类似的整体结果。

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

https://serverfault.com/questions/1101832

复制
相关文章

相似问题

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