kubernetes新手。我可以使用kubectl scale --replicas = N并在不同的节点上启动pod吗?
答案 0 :(得分:2)
默认情况下,调度程序会尝试跨节点传播pod,因此您在同一节点上没有多个相同类型的Pod。因此,如果你的目标只是努力实现最佳努力,那么就没有什么特别需要了。
如果您想表达要求pod不能在已经有该类型的pod的节点上运行的要求,您可以使用pod anti-affinity,这是当前的Alpha功能。
如果您想确保所有节点(或与特定选择器匹配的所有节点)都有该窗格,您可以使用DaemonSet。
答案 1 :(得分:2)
扩展部署(或RC)告诉控制器管理器创建更多的pod,然后新的pod将进行调度。 K8S计划程序将尝试找到最合理的位置来安排您的pod。这并不能保证pod将在不同的节点上启动,但如果您拥有所需的资源,则可能会使其成为可能的情况。不幸的是,这也意味着如果所有pod都可以放在一个节点上,那么有些情况下调度程序可能实际上就是这样(即由于某种原因,所有其他节点都处于不可调度状态)。如果发生这种情况,当条件发生变化时,pod将不会重新安排。
为了确保pod不会在同一节点上共存,您有两个选择:
第一个有一个缺点 - 你可以从不每个节点有多个这种类型的pod,所以它就是。影响滚动部署并限制扩展容量(您永远不会有更多活动容器,然后是节点数)