我为Jenkins部署了一个statefulset,其中包含1个副本。几天前,Jenkins pod运行所在的节点进入了"未就绪"状态。节点进入"未就绪"状态后,Jenkins pod进入"正在终止"状态,并在此停留很长时间,直到节点返回"就绪"状态。
理想情况下,我的Jenkins pod应该已重新调度到一个健康的节点,以防我的当前节点不健康。因此,我的Jenkins应用程序在节点处于"未就绪"状态时停机。
在这种情况下,是否可以采取任何措施来防止statefulset Pod中出现此类宕机
Kubectl版本:
客户端版本:版本信息{主要版本:"1",次要版本:"19",GitVersion:"v1.19.13",GitCommit:"53c7b65d4531a749cd3a7004c5212d23daa044a9",GitTreeState:"干净",构建日期:"2021 - 07 - 15T20:58:11Z",GoVersion:"go1.15.14",编译器:"gc",平台:"linux/amd64 "}服务器版本:版本信息{主要版本:"1",次要版本:"19",GitVersion:"v1.19.13",GitCommit:"53c7b65d4531a749cd3a7004c5212d23daa044a9",GitTreeState:"干净",构建日期:"2021 - 07 - 15T20:53:19Z",目标版本:"go1.15.14",编译器:"gc",平台:"linux/amd64 "}
1条答案
按热度按时间8gsdolmq1#
您的问题可能是因为群集没有足够的资源,或者Pod调度程序因节点上没有足够的标签而无法做出决策。您可能需要查看Kubernetes调度程序的日志,以确切了解在这种情况下发生了什么。要更好地分配工作量,如果群集上的资源不足,您可能需要考虑扩展群集的大小或添加其他节点。此外,您可能希望确保群集的所有节点都有准确的标签,以便Pod调度程序知道哪个节点最适合运行Jenkins Pod。
可以在Jenkins statefulset的部署清单中设置节点关联性规则,以防止节点进入“未就绪”状态导致停机。因此,将仅为匹配特定标签(如“就绪=真”)的节点调度Pod。此外,您可以使用其他标签来指示关联性规则中群集节点的运行状况。只要节点以这种方式进入“未就绪”状态,pod就会被重新调度到运行正常的节点。最后但并非最不重要的一点是,您可能要考虑为statefulset使用pod中断预算。这将降低pod在运行不正常时被逐出节点的可能性。
连接支撑blog-1和blog-2以供参考。