摘要:昨天遇到了一個端口轉發導致失效的問題,今天記錄下當時的排查思路。問題原因是刪除容器后沒有把轉發規則刪除。這次排查,用到了幾個工具,都是之前的積累,所以排查顯得順暢多了。
昨天遇到了一個端口轉發導致VIP失效的問題,今天記錄下當時的排查思路。
因為要做升級,所以我刪除了dokcer老容器,并啟動新容器。之后訪問VIP, 也就是LVS中的VIP,發現原先可以訪問的站點不能訪問了。
以上是故障表現,下面是具體排查過程
docker logs containerId 檢查docker 中的應用是成功啟動的,排除應用無法啟動的問題
curl localhost:80 因為容器是以-p 80:80的方式啟動的,所以接下來我嘗試在物理機上訪問自己的80端口,發現可以成功訪問應用,排除了forward沒設置的問題
接下來,我祭出了瑞士軍刀nc -l 80, 然后在外部以VIP的方式訪問,發現無法訪問。 這時候懷疑是 iptables 的問題
先做下備份,service iptables save, 然后關掉service iptables stop
再起nc -l 80, 發現很快nc進程就結束了,trace nc -l 80 找出來源包IP,發現是LVS的心跳包。至此VIP恢復訪問
接下來就是要找iptables里誰在搞鬼了。iptables -L, 因為懷疑是docker在搞鬼,所以把展示出和docker有關的都刪了,但是問題沒有解決
上面我犯了一個錯誤,那就是以為iptables -L展示的是所有的規則,但其實只展示了filter, 和轉發有關的nat需要iptables -t nat -L來展示
把iptables -t nat -L中和docker有關的刪掉。問題解決。問題原因是docker刪除容器后沒有把轉發規則刪除。
又重現了下這個問題,應該是docker的問題,刪除實例沒有把轉發規則和proxy干掉。
這次排查,用到了幾個工具,都是之前的積累,所以排查顯得順暢多了。主要時間花在了對iptables的不熟悉。
更多文章 http://kamushin.github.io/
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26658.html
摘要:當然,如果你的核心數夠多,到個線程的并行度不滿足的話,也可以自定義一個線程池來執行,不過這樣的話,要注意自己維護這個線程池的初始化,釋放等等操作了。 事情起源于一個bug排查,一個AsyncTask的子類,執行的時候發現onPreExecute方法執行了,doInBackground卻遲遲沒有被調用。懂AsyncTask一些表面原理的都知道,onPreExecute方法是在主線程執行,...
摘要:此時我想到了福爾摩斯說過的一句話當你排除掉各種不可能出現的情況之后,剩下的情況無論多么難以置信,都是真相。福爾摩斯冷靜下來想一想,這個線程,有可能靜悄悄地退出了嗎,沒留下半點異常日志從理論上來說,不可能。配置建議最后,附上一份配置建議。 1、事發 我們有個視頻處理程序,基于 SpringBoot,會啟動幾個線程來跑。要退出程序時,會發送一個信號給程序,每個線程收到信號后會平滑退出,等全...
閱讀 1298·2021-11-16 11:44
閱讀 3766·2021-10-09 10:01
閱讀 1751·2021-09-24 10:31
閱讀 3845·2021-09-04 16:41
閱讀 2517·2021-08-09 13:45
閱讀 1217·2019-08-30 14:08
閱讀 1780·2019-08-29 18:32
閱讀 1644·2019-08-26 12:12