【摘要】在容器平台中,我们除了会涉及操作系统层面的知识,还会涉及容器存储、容器网络、容器日志管理及监控告警、CI/CD(持续集成/持续交付)等相关领域的技术。每个领域都有可能是问题的产生点,只有在分析定位出具体点时,我们才好依据该技术相关工具或者阅读源码来解决它。
定位问题,是在分析问题后,我们可以结合各种日志、监控告警等平台提供的功能来排除干扰项,找到问题的诱发根因。
问题背景:容器平台上线一年多后,总有很少部分租户称他们的某个业务部署在Kubernetes容器平台后经常会重启,也很少部分租户称某个业务在运行一段时间时会产生大量的`CLOSE-WAIT`,还有租户反馈说某个业务跑着就会hang住。刚开始我们都会让业务开发者先自己找问题,因为这些租户反映的只是偶偶发生,大多数租户没有反映类似问题,我们会理所当然的认为是租户业务自身问题,而非平台问题。当然大多数情况下,还是租户业务本身程序没有写好,或者健康检查配置不当等引起。
前文“分析”部分,可在本栏中查找阅读。
本文继续结合案例讲解如何定位容器云平台重大问题。
1 排除干扰项
分析完了问题,一般会根据经验先从比较简单的可能产生的影响因素开始排除干扰选项,这样我们大概就会有一个比较接近问题根因的方向。
比如上面三个问题中的其中一个 "容器内出现大量处于CLOSE_WAIT状态的TCP链接":