Kubernetes释放请求的cpu
我们在谷歌云平台上有一个分布在多个pod上的Java应用程序。我们还设置内存请求,为pod提供节点上可用的内存的某一部分,用于堆和非堆空间 该应用程序在启动pod时CPU资源非常密集,但在pod准备就绪后不使用CPU(仅使用0.5%)。如果我们使用容器资源“请求”,pod不会在启动完成后释放这些资源 Kubernetes是否允许指定pod允许在启动期间使用(几乎)所有可用的cpu电源,并在启动之后释放这些资源?由于滚动更新,我们可以防止两个吊舱同时启动Kubernetes释放请求的cpu,kubernetes,google-cloud-platform,request,cpu,limit,Kubernetes,Google Cloud Platform,Request,Cpu,Limit,我们在谷歌云平台上有一个分布在多个pod上的Java应用程序。我们还设置内存请求,为pod提供节点上可用的内存的某一部分,用于堆和非堆空间 该应用程序在启动pod时CPU资源非常密集,但在pod准备就绪后不使用CPU(仅使用0.5%)。如果我们使用容器资源“请求”,pod不会在启动完成后释放这些资源 Kubernetes是否允许指定pod允许在启动期间使用(几乎)所有可用的cpu电源,并在启动之后释放这些资源?由于滚动更新,我们可以防止两个吊舱同时启动 感谢您的帮助。如果您没有限制地指定请求,则
感谢您的帮助。如果您没有限制地指定请求,则该值将用于将pod调度到满足请求的可用CPU带宽的适当节点。内核调度器将假定请求与实际资源消耗相匹配,但不会防止过度使用。这将从其他容器中“偷走”。 如果您同时指定了一个限制,那么如果容器试图超过该值,它将被限制。您可以将两者结合起来,以允许cpu的大量使用,超过通常的请求,但不从节点分配所有资源,从而降低其他进程的速度 “Kubernetes是否允许指定允许使用pod (几乎)启动和释放过程中可用的所有cpu电源 之后的资源?” 这里的关键词是“可用”。答案是“是”,可以通过使用(服务质量)类来实现。将CPU请求配置为容器启动后所需的值,并且:
- 配置高于CPU请求的CPU限制,或
- 不配置CPU限制—命名空间的默认CPU限制将在以下情况下应用,或者容器“…可以使用它正在运行的节点上的所有可用CPU资源”
如果运行Kubernetes v1.12+并有权配置kubelet,可能会引起兴趣。在节点中调度pod的一个因素是资源可用性,Kubernetes调度器根据每个pod的请求值计算已用资源。如果未在请求参数中分配任何值,则此部署请求的值将为零。请求参数不能确保pod将使用如此多的cpu或ram。您可以从“kubectl top pods/nodes”获取当前资源使用情况。 请求参数将为pod缓冲资源。其中,作为限制,对pod的资源使用设置上限。 你可以在这里获得更多信息。 这将使您大致了解请求和限制