Docker 如何更改k8s';s豆荚在不杀死原始豆荚的情况下进行限制?

Docker 如何更改k8s';s豆荚在不杀死原始豆荚的情况下进行限制?,docker,go,kubernetes,Docker,Go,Kubernetes,要求:pod的限制可能在开始时设置为较低,为了充分利用节点的资源,我们需要将限制设置为较高。然而,当节点的资源不足时,为了使节点仍然能够正常工作,我们需要设置较低的限制。最好不要杀死pod,因为它可能会影响集群 背景:我目前是k8s和docker的初学者,我的导师给了我这个要求。这个要求能正常填写吗?还是解决这类问题的更好方法?谢谢你的帮助! 我所做的一切:我试图通过编辑cgroup来完成,但我只能在容器中完成,所以可能容器应该在特权模式下使用 我希望有一个合理的计划来满足这一要求。 谢谢……我

要求:pod的限制可能在开始时设置为较低,为了充分利用节点的资源,我们需要将限制设置为较高。然而,当节点的资源不足时,为了使节点仍然能够正常工作,我们需要设置较低的限制。最好不要杀死pod,因为它可能会影响集群

背景:我目前是k8s和docker的初学者,我的导师给了我这个要求。这个要求能正常填写吗?还是解决这类问题的更好方法?谢谢你的帮助! 我所做的一切:我试图通过编辑cgroup来完成,但我只能在容器中完成,所以可能容器应该在特权模式下使用

我希望有一个合理的计划来满足这一要求。
谢谢……

我认为这是不可能的,从2015年开始,kubernetes github()上就有一个跟踪此类事件的老问题,并且它是开放的

另外,在使用kubernetes时,您不应该依赖于pod没有被重新创建。应用程序应该能够无状态到某个程度,如果它在进程中途死亡,它可以处理此故障,并在再次启动时从头开始启动

我理解试图最大限度地优化资源使用背后的想法,但您也应该担心可靠的流程


我想你应该看看Kubernetes的垂直吊舱自动缩放器,因为它根据吊舱的使用情况自动调整吊舱的资源。也许这是另一种选择:

您必须找到容器ID是在POD中运行的,并运行下面的命令以增加资源

docker update --cpu-shares NewValue -m NewValue DockerContainerID

提示是您希望在不杀死pod的情况下更改限制

正如库伯内特斯在上面的评论中所解释的那样,这不是库伯内特斯的工作方式。在Kubernetes中,没有方便的虚拟机监控程序提供的“热插拔CPU/内存”或“实时迁移”设施。Kubernetes将豆荚视为短暂的实例,并不关心它们的运行。无论您是否需要更改应用程序的资源限制、更改应用程序配置、安装应用程序更新或修复行为不端的应用程序,“杀死并重新创建”方法将应用于POD

不幸的是,此处建议的解决方案不适用于您:

  • 增加pod内正在运行的容器的限制(
    docker update
    命令)将导致Kubernetes违反pod限制并杀死pod
  • 垂直吊舱自动缩放器是Kubernetes项目的一部分,也依赖于“杀死并重建”方法

如果您真的需要保持容器运行并“动态”管理为其分配的资源限制,那么Kubernetes可能不是这种特殊情况下的合适解决方案。可能您应该考虑使用纯DOCKER或基于VM的解决方案。 重建豆荚是很正常的。通常做这种改变,你会改变部署,让它创建一个新的吊舱并摧毁旧的吊舱。你用错误的方式接近K8,伊姆霍。它的核心是运行时、网络层、存储以及最后但并非最不重要的计算的协调器。让K8完成它的工作,不要试图微调这样的东西。您应该将
请求
视为k8sese,表示“嘿,这个pod绝对需要这个来运行”,而
限制
应视为“如果我们达到这个限制,TSHTF和您不应该允许更多”“。如果您需要手动执行Ressource管理,则您的群集对于您的工作负载来说很可能太小。请记住,当一个节点发生故障时,其他节点需要能够运行故障节点的负载。在执行“docker update”后,是否有任何方法禁用Kubernetes的默认“杀死并重新创建”行为?”指挥?我知道这不是与库伯内特斯合作的正确方式,但我要求这是一个研究项目。在这个项目中,杀死和重建豆荚是一项非常及时的昂贵任务,因为我们需要做几次……不。“如果容器超过其内存限制,它可能会被终止。如果它可重新启动,kubelet将重新启动它,就像任何其他类型的运行时故障一样。如果容器超过其内存请求,则当节点内存不足时,它的Pod很可能会被逐出”。“逐出”表示“在此主机上杀死,然后在另一台主机上重新创建。”“.Kubernetes不知道设计中的其他技术。我在这里引用hmmm…也许对于我的特殊情况,我可以找到一种方法来“禁用”k8s kubelet,docker是否更新,执行我的任务(它是一个基准),再次启用kubelet。我不在乎它是否会在那之后杀死它…有什么建议吗?