0

Docker Swarm 和 Kubernetes 是管理多个节点上的应用程序的两个系统。如果一个节点正在耗尽或它的负载非常高,它们会启动一些程序来维持需求中描述的所需状态。

当然,当他们通过基础设施管理应用程序时,他们必须做出一些选择来修改状态。如何做出决策以确保决策不会损害系统?

我的意思是,不是在触发动作时(系统分析),而是我们如何证明做出的决定是解决问题的最佳决定? 有这方面的一些文件吗?我没有找到任何提到这个话题。

例如:我有一个资源几乎免费的节点。然后,在某个时刻,他们的资源变得不足,并保持不足一秒钟,然后免费返回。如果管理器因为资源不足的那一秒触发了迁移功能而将应用程序从该节点迁移到另一个节点,则可能会产生比解决的问题更多的问题,因为资源不足的问题已经过去,实际上不需要迁移。

4

2 回答 2

0

Kubernetes 不会验证他们的管理选择,它只是在您拥有资源的任何节点上的 pod 上生成。但是,如果您想管理它如何使用资源,您可以使用资源限制。

此外,如果在某些迁移期间您的应用程序在短时间内使用大量资源并且您不希望 Kubernetes 将此 pod 移动到可以开始使用pod 软关联的任何地方,则您的应用程序将尝试仅在nods 上生成此行为你想要,并且只有当它没有资源或可能性时,它才会在另一个节点中生成 pod。

于 2018-11-20T10:56:18.150 回答
0

Swarm 不会移动容器,因为资源是实时变化的。您可以通过资源预留和限制来控制它最初的调度方式,但如果其他东西占用了节点资源,它就不会移动一个健康的应用程序。

于 2018-11-20T18:50:07.977 回答