自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

記一次 Kubernetes 排錯(cuò)實(shí)戰(zhàn)

云計(jì)算
數(shù)據(jù)的不一致性(inconsistent)指對(duì)象的大小不正確、恢復(fù)結(jié)束后某副本出現(xiàn)了對(duì)象丟失的情況。數(shù)據(jù)的不一致性會(huì)導(dǎo)致清理失敗(scrub error)。

[[434523]]

背景

收到測(cè)試環(huán)境集群告警,登陸Kubernetes集群進(jìn)行排查。

故障定位

查看Pod

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

查看詳細(xì)信息,查看node2節(jié)點(diǎn)沒(méi)有存儲(chǔ)空間,cgroup泄露。

查看存儲(chǔ)

登陸n(yōu)ode2查看服務(wù)器存儲(chǔ)信息,目前空間還很充足。

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

操作

Ceph修復(fù)

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

數(shù)據(jù)的不一致性(inconsistent)指對(duì)象的大小不正確、恢復(fù)結(jié)束后某副本出現(xiàn)了對(duì)象丟失的情況。數(shù)據(jù)的不一致性會(huì)導(dǎo)致清理失敗(scrub error)。

Ceph在存儲(chǔ)的過(guò)程中,由于特殊原因,可能遇到對(duì)象信息大小和物理磁盤(pán)上實(shí)際大小數(shù)據(jù)不一致的情況,這也會(huì)導(dǎo)致清理失敗。

數(shù)據(jù)的不一致性(inconsistent)指對(duì)象的大小不正確、恢復(fù)結(jié)束后某副本出現(xiàn)了對(duì)象丟失的情況。數(shù)據(jù)的不一致性會(huì)導(dǎo)致清理失敗(scrub error)。

Ceph在存儲(chǔ)的過(guò)程中,由于特殊原因,可能遇到對(duì)象信息大小和物理磁盤(pán)上實(shí)際大小數(shù)據(jù)不一致的情況,這也會(huì)導(dǎo)致清理失敗。

由圖可知,pg編號(hào)1.7c 存在問(wèn)題,進(jìn)行修復(fù)。

pg修復(fù):

  1. ceph pg repair 1.7c 

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

進(jìn)行Pod修復(fù)

對(duì)異常Pod進(jìn)行刪除,由于有控制器,會(huì)重新拉起最新的Pod。

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

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

  • Kubelet宿主機(jī)的Linux內(nèi)核過(guò)低 - Linux version 3.10.0-862.el7.x86_64
  • 可以通過(guò)禁用kmem解決

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

故障再次定位

最后,因?yàn)樵趩?dòng)容器的時(shí)候runc的邏輯會(huì)默認(rèn)打開(kāi)容器的kmem accounting,導(dǎo)致3.10內(nèi)核可能的泄漏問(wèn)題。

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

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

對(duì)node2節(jié)點(diǎn)進(jìn)行維護(hù)

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

  1. kubectl cordon node02 

驅(qū)逐node2節(jié)點(diǎn)上的Pod

  1. kubectl drain node02 --delete-local-data --ignore-daemonsets --force 
  • --delete-local-data 刪除本地?cái)?shù)據(jù),即使emptyDir也將刪除;
  • --ignore-daemonsets 忽略DeamonSet,否則DeamonSet被刪除后,仍會(huì)自動(dòng)重建;
  • --force 不加force參數(shù)只會(huì)刪除該Node節(jié)點(diǎn)上的ReplicationController,ReplicaSet,DaemonSet,StatefulSet or Job,加上后所有Pod都將刪除。

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

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

對(duì)node02進(jìn)行重啟

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

對(duì)node02進(jìn)行恢復(fù):

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

  1. kubectl uncordon node02 

反思

后期可以對(duì)部署Kubernetes集群內(nèi)核進(jìn)行升級(jí)。

集群內(nèi)可能Pod的異常,由于底層存儲(chǔ)或者其他原因?qū)е?,需要具體定位到問(wèn)題進(jìn)行針對(duì)性修復(fù)。 

原文鏈接:https://juejin.cn/post/6969571897659015205

 

責(zé)任編輯:武曉燕 來(lái)源: 幽鬼
相關(guān)推薦

2021-11-27 18:50:55

Kubernetes邊緣計(jì)算

2021-05-26 11:06:06

Kubernetes網(wǎng)絡(luò)故障集群節(jié)點(diǎn)

2021-03-29 12:35:04

Kubernetes環(huán)境TCP

2021-08-20 11:35:04

服務(wù)運(yùn)維 故障

2021-02-25 10:00:19

企業(yè)安全互聯(lián)網(wǎng)云平臺(tái)安全

2022-02-17 11:19:33

Kubernetes服務(wù)器運(yùn)維

2022-01-07 11:48:59

RabbitMQGolang 項(xiàng)目

2014-08-11 09:31:52

2023-04-06 07:53:56

Redis連接問(wèn)題K8s

2017-07-07 16:07:41

2013-04-01 10:27:37

程序員失業(yè)

2011-02-22 09:29:23

jQueryJavaScript

2017-12-19 14:00:16

數(shù)據(jù)庫(kù)MySQL死鎖排查

2019-03-15 16:20:45

MySQL死鎖排查命令

2019-08-26 09:50:09

2021-12-20 10:15:16

zip密碼命令網(wǎng)絡(luò)安全

2023-06-07 07:31:04

PC端app脫殼技巧

2023-10-10 12:05:45

2013-01-17 10:31:13

JavaScriptWeb開(kāi)發(fā)firebug

2018-07-11 10:24:33

數(shù)據(jù)恢復(fù)數(shù)據(jù)刪除
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)