问题:
在升级期间,需要从节点驱逐的 pod 可能需要比节点耗尽超时更长的时间,并产生以下错误:
(UpgradeFailed) Drain of NODE_NAME did not complete pods [STS_NAME:POD_NAME]: Pod
POD_NAME still in state Running on node NODE_NAME, pod termination grace period 15h0m0s was
greater than remaining per node drain timeout. See http://aka.ms/aks/debugdrainfailures
Code: UpgradeFailed
此后集群处于故障状态。
由于 pod 的宽限期不在我的控制范围内,我想将节点耗尽超时增加到 31 小时,因为单个节点上可以有 2 个长宽限期 pod。不过,我还没有找到有关节点耗尽超时的任何信息。 我什至不知道它是 K8s 还是 AKS 的一部分。
如何增加每个节点的耗尽超时,以便我的长宽限期 Pod 不会中断我的节点升级操作?
编辑: 在 kubectl cli 参考 中,drain 命令采用超时参数。由于我自己不调用排水管,所以我不知道这对我有什么帮助。这让我相信,如果有的话,这需要在 AKS 方面进行处理。
不是实际问题的答案,而是可能的解决方法:
缺点:
这是一个糟糕的解决方法,但却是一个解决方法。
Drain 超时可以在 aks 的 august api 中配置。文件仍在等待中。