現(xiàn)象:
測試環(huán)境十性,某 運維人員在做例行變更(增加zabbix監(jiān)控主機資源),并增加根目錄空間蹈集,重啟某一臺node節(jié)點后烁试,所有node節(jié)點出現(xiàn)重啟,并且一直重啟拢肆,無法正常服務
環(huán)境:
k8s集群運行于vSphere 虛擬化平臺上,版本centos7.4
結論:
在部署的k8s集群的時候减响,之前由于根目錄空間不足,將docker默認使用的/var/lib/docker 目錄link到/app/docker-data/docker目錄下面郭怪,不知道是否是bug支示,已經(jīng)運行一年多的集群,居然突然出現(xiàn)node節(jié)點重啟鄙才。后面重裝所有master颂鸿,node節(jié)點的docker,并且沿用/var/lib/docker(目錄非link)攒庵,問題解決
定位過程:
1.前期基本定位
- 該問題很難定位嘴纺,因為虛擬機一直在重啟,開始主要在定位操作系統(tǒng)的重啟原因浓冒,但是根本沒有定位出問題栽渴,只能看到:
`
ausearch -i -m system_boot,system_shutdown | tail -4
type=SYSTEM_BOOT msg=audit(06/29/2020 19:10:02.821:7) : pid=832 uid=root auid=unset ses=unset msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success'
type=SYSTEM_BOOT msg=audit(06/29/2020 20:14:27.786:7) : pid=830 uid=root auid=unset ses=unset msg=' comm=systemd-update-utmp exe=/usr/lib/systemd/systemd-update-utmp hostname=? addr=? terminal=? res=success'
`
沒有任何價值。
- 聯(lián)想到由于做了zabbix的監(jiān)控稳懒,故停止監(jiān)控闲擦,停止后,node節(jié)點依然重啟
- 通過vSphere斷掉虛擬機網(wǎng)卡,發(fā)現(xiàn)節(jié)點不在重啟墅冷,懷疑是網(wǎng)絡問題
- 停止caclio插件纯路,node節(jié)點依然重啟,并停止node節(jié)點上的caclio容器寞忿,停止后驰唬,node節(jié)點依然重啟;再次啟動caclio插件后罐脊,我艸定嗓,問題出來了,master節(jié)點也掛了萍桌,整個k8s測試集群全部在重啟,暈死凌简。上炎。。
2.第二個階段
- 整個集群全部掛了雏搂,那只能找其中一臺來定位藕施,首要任務是恢復master,node節(jié)點先等等凸郑。
- 虛擬機啟動后裳食,先停止兩個服務:
systemctl stop docker
systemctl stop kubelet
停止以后,虛擬機沒有再次出現(xiàn)重啟的問題 - 啟動docker芙沥,并停止docker里面的所有容器诲祸,虛擬機沒有繼續(xù)重啟
- 啟動master節(jié)點上的keepalived,發(fā)現(xiàn)keepalived一旦啟動而昨,虛擬機立刻重啟救氯,難道和keepalived有關系
- 在node節(jié)點啟動下keepalived ,同樣會重啟歌憨,在其他裝有容器的虛擬機上着憨,啟動keepalived ,并沒法發(fā)生重啟务嫡,相同鏡像版本的keepalived甲抖,什么鬼?心铃?
- 難道不是keepalived的問題准谚,而是docker的問題;重復上面的步驟:即停止容器和kubelet于个。并停止docker里面的所有容器氛魁,啟動其他容器服務,本次在master節(jié)點操作,運行的服務是haproxy,結果虛擬機秀存。難道是docker問題捶码,docker用的版本是:Docker version 18.06.1-ce, build e68fc7a,也是一個成熟的版本或链,不該有問題才是惫恼;
- 看了好久的docker日志,也沒有看出什么問題來澳盐,啟動docker都正常祈纯,就是不能啟用服務
- 偶然想到,之前docker的文件放在/var/lib/docker ,且是link到叼耙,改回源目錄/var/lib/docker腕窥,重啟docker以后,再次嘗試筛婉,依然不行簇爆;重裝docker,并使用默認的目錄/var/lib/docker,然后再次驗證發(fā)現(xiàn)問題不在出現(xiàn)
- 恢復集群爽撒,重裝下docker入蛆,并且擴下根目錄,問題搞定硕勿,但是為何導致主機重啟哨毁,還未發(fā)現(xiàn)原因。新裝虛擬機源武,并重裝docker扼褪,也做成link,無法重現(xiàn)软能。迎捺。。查排。
- 且運行了一年有余都沒問題凳枝,再次先做記錄,后面先規(guī)避此類問題先跋核,有空的時候去dockerhub上看看是否有類似bug岖瑰。