默认情况下,节点池会并行更新。这可能会导致两个问题:
配额问题
系统会为每个节点池创建一个超额配置节点,这样,如果并行更新 N 个节点池,系统便会创建 N 个超额配置节点。如果可用来创建这些超额配置节点的额外容量有限,便可能会导致资源耗尽问题。
PDB 死锁问题
一次排空多个节点可能会导致 PDB 死锁问题。
要并行更新 N 个节点池,必须有 N 个额外的 IP 地址可用于超额配置节点。如果工作器节点从 DHCP 服务器获取其 IP 地址,则您的 DHCP 服务器必须能够提供 N 个额外的 IP 地址。如果您的工作器节点使用静态 IP 地址,除了工作器节点所需的 IP 地址之外,您的 IP 地址块文件还必须包含额外的 N 个 IP 地址。
如果没有足够的额外 IP 地址可用于并行更新所有 N 个节点,我们会并行更新尽可能多的池。当 IP 地址可用时,我们会更新其余节点池。
本文档介绍了如何指定节点池更新政策,以配置在节点池更新期间可并发更新的节点数上限,这有助于避免上述两个问题。0 表示保留当前的并行行为,即保留默认值。1 表示依序更新节点池。
请注意,虽然依序更新可以避免上述两个问题,但可能导致节点池更新过程比并行更新花费的时间更长。
配置节点池更新政策
在用户集群种子配置 user-cluster.yaml 中,您可以进行如下设置以依序更新节点池:
nodePoolUpdatePolicy: maximumConcurrentNodePoolUpdate: 1
可以将 maximumConcurrentNodePoolUpdate
设置为任意整数值,以配置要同时更新的节点池数。
节点池更新政策适用于节点池更新和升级,但不适用于创建。此外,如果任何节点池更新/创建遇到问题并卡住,当前行为是我们将阻止相应操作,不会继续更新下一个节点池。