一次K8s排錯實戰(zhàn)

      網(wǎng)友投稿 631 2022-05-29

      一 背景

      收到測試環(huán)境集群告警,登陸K8s集群進行排查。

      二 故障定位

      2.1 查看pod

      查看kube-system node2節(jié)點calico pod異常

      查看詳細信息,查看node2節(jié)點沒有存儲空間,cgroup泄露

      2.2 查看存儲

      登陸node2查看服務(wù)器存儲信息,目前空間還很充足

      集群使用到的分布式存儲為ceph,因此查看ceph集群狀態(tài)

      三 操作

      3.1 ceph修復(fù)

      目前查看到ceph集群異常,可能導(dǎo)致node2節(jié)點cgroup泄露異常,進行手動修復(fù)ceph集群。

      數(shù)據(jù)的不一致性(inconsistent)指對象的大小不正確、恢復(fù)結(jié)束后某副本出現(xiàn)了對象丟失的情況。數(shù)據(jù)的不一致性會導(dǎo)致清理失?。╯crub error)。 CEPH在存儲的過程中,由于特殊原因,可能遇到對象信息大小和物理磁盤上實際大小數(shù)據(jù)不一致的情況,這也會導(dǎo)致清理失敗。

      由圖可知,pg編號1.7c 存在問題,進行修復(fù)。

      pg修復(fù)

      ceph pg repair 1.7c

      進行修復(fù)后,稍等一會,再次進行查看,ceph集群已經(jīng)修復(fù)

      3.2 進行pod修復(fù)

      對異常pod進行刪除,由于有控制器,會重新拉起最新的pod

      查看pod還是和之前一樣,分析可能由于ceph異常,導(dǎo)致node2節(jié)點cgroup泄露,網(wǎng)上檢索重新編譯

      Google一番后發(fā)現(xiàn)與https://github.com/rootsongjc/kubernetes-handbook/issues/313 這個同學(xué)的問題基本一致。

      存在的可能有,

      Kubelet 宿主機的 Linux 內(nèi)核過低 - Linux version 3.10.0-862.el7.x86_64

      可以通過禁用kmem解決

      查看系統(tǒng)內(nèi)核卻是低版本

      3.3 故障再次定位

      最后,因為在啟動容器的時候runc的邏輯會默認打開容器的kmem accounting,導(dǎo)致3.10內(nèi)核可能的泄漏問題

      在此需要對no space left的服務(wù)器進行 reboot重啟,即可解決問題,出現(xiàn)問題的可能為段時間內(nèi)刪除大量的pod所致。

      初步思路,可以在今后的集群管理匯總,對服務(wù)器進行維修,通過刪除節(jié)點,并對節(jié)點進行reboot處理

      3.4 對node2節(jié)點進行維護

      3.4.1 標記node2為不可調(diào)度

      kubectl cordon node02

      3.4.2 驅(qū)逐node2節(jié)點上的pod

      kubectl drain node02 --delete-local-data --ignore-daemonsets --force

      –delete-local-data 刪除本地數(shù)據(jù),即使emptyDir也將刪除;

      –ignore-daemonsets 忽略DeamonSet,否則DeamonSet被刪除后,仍會自動重建;

      –force 不加force參數(shù)只會刪除該node節(jié)點上的ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job,加上后所有pod都將刪除;

      目前查看基本node2的pod均已剔除完畢

      此時與默認遷移不同的是,pod會先重建再終止,此時的服務(wù)中斷時間=重建時間+服務(wù)啟動時間+readiness探針檢測正常時間,必須等到1/1 Running服務(wù)才會正常。因此在單副本時遷移時,服務(wù)終端是不可避免的。

      3.4.3 對node02進行重啟

      重啟后node02已經(jīng)修復(fù)完成。

      對node02進行恢復(fù)

      恢復(fù)node02可以正常調(diào)度

      kubectl uncordon node02

      四 反思

      后期可以對部署k8s 集群內(nèi)核進行升級。

      集群內(nèi)可能pod的異常,由于底層存儲或者其他原因?qū)е拢枰唧w定位到問題進行針對性修復(fù)。

      記一次K8s排錯實戰(zhàn)

      參考鏈接

      https://blog.csdn.net/yanggd1987/article/details/108139436

      其他

      自己將手記發(fā)在:https://github.com/overnote/awesome-kubernetes-notes 歡迎一鍵三連。

      Kubernetes

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:網(wǎng)站開發(fā)進階(四十四)input type=“submit“ 和“button“的區(qū)別
      下一篇:程序員因重復(fù)記錄日志撐爆ELK被辭退!
      相關(guān)文章
      亚洲成色www久久网站夜月| 亚洲AV无一区二区三区久久| 国产成人va亚洲电影| 日韩亚洲欧洲在线com91tv| 亚洲无码精品浪潮| 亚洲精品第五页中文字幕| 亚洲 综合 国产 欧洲 丝袜| 亚洲色图古典武侠| 久久精品蜜芽亚洲国产AV| 亚洲成av人在片观看| 在线亚洲精品视频| 国产亚洲精品2021自在线| 亚洲JIZZJIZZ中国少妇中文| 国产亚洲蜜芽精品久久| 亚洲 小说区 图片区 都市| 亚洲高清免费视频| 亚洲一级特黄无码片| 中文字幕在亚洲第一在线| 亚洲AV无码一区二区三区人| 亚洲日韩欧洲无码av夜夜摸| 亚洲欧美日本韩国| 久久综合亚洲色HEZYO社区| 亚洲精品乱码久久久久久自慰| 亚洲第一页日韩专区| 亚洲一区日韩高清中文字幕亚洲 | 国产亚洲精品岁国产微拍精品| 在线观看亚洲av每日更新| 看亚洲a级一级毛片| 亚洲中文字幕无码av在线| 亚洲av无码专区在线| 亚洲午夜成人精品无码色欲| 亚洲熟妇无码爱v在线观看| 精品久久久久久亚洲| 亚洲图片在线观看| 亚洲人成在线免费观看| 亚洲欧洲精品成人久久曰| 国产精品亚洲色图| 中文字幕不卡亚洲 | 精品国产亚洲一区二区在线观看| 亚洲人成色777777在线观看| 婷婷亚洲久悠悠色悠在线播放|