我是kubernetes的新cookie。我想知道kubernetes是否会在节点资源处于临界状态时自动将pod切换到另一个节点。
例如Pod A、Pod B、Pod C在Node A上运行,Pod D在Node B上运行,Pod占用Node A的资源会比较多,这种情况下Kubernetes是否会将Node A上运行的Pod迁移到Node B上。
我学习了node affinity和node selector,node selector用于在特定节点上运行pod。如果kubernetes提供这个功能,在资源使用率很高的情况下自动将pod迁移到另一个节点,那会很有帮助。
有谁知道我们如何在Kubernetes中实现这一点吗?
3条答案
按热度按时间lhcgjxsq1#
是的,如果资源使用率很高,Kubernetes可以自动将pod迁移到另一个节点。pod将被杀死,并在另一个节点上启动新的pod。您可能想了解Quality of Service Classes,以了解哪个pod将首先被杀死。
话虽如此,你可能想要阅读关于Automatic Horizontal Pod Autoscaling的内容。这可能会给你给予更多的控制权。
通过Horizontal Pod Autoscaling,Kubernetes可以根据观察到的CPU利用率(或者,在alpha支持下,根据应用程序提供的其他指标)自动扩展复制控制器,部署或副本集中的Pod数量。
r55awzrz2#
随着负载的增加,更有意义的做法是启动一个新的pod,而不是在不同的节点之间移动pod,以避免分散忙碌节点上pod内当前正在运行的进程。
vtwuwzda3#
您可以在部署中执行节点选择器并移动节点
https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/