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

一次意想不到的pod內(nèi)存驅(qū)逐問(wèn)題

運(yùn)維
處理項(xiàng)目上K8S集群pod驅(qū)逐問(wèn)題也算不少了,不過(guò)此次產(chǎn)生pod驅(qū)逐的原因卻是意想不到,最后復(fù)盤(pán)原因很簡(jiǎn)單,定位故障時(shí)候卻是忽略了,不過(guò)也算豐富了處理故障的案例。

案發(fā)現(xiàn)場(chǎng)

客戶(hù)現(xiàn)場(chǎng)反饋門(mén)戶(hù)網(wǎng)站無(wú)法打開(kāi),有很多pod狀態(tài)為Evicted

kubectl get pods -A | grep 0/1
 web-nginx-865674789f-c7bv4  0/1   Evicted       0   25h   <none>  192.168.3.10  <none>
 web-nginx-865674789f-ggb27  0/1   Evicted       0   25h   <none>  192.168.3.10  <none>
 web-nginx-865674789f-fwp94  0/1   Evicted       0   25h   <none>  192.168.3.10  <none>
 web-nginx-865674789f-djj46  0/1   Evicted       0   25m   <none>  192.168.3.10  <none>
 web-nginx-865674789f-dmhmp  0/1   OOmMKilled    0   25h   <none>  192.168.3.10  <none>
 web-nginx-865674789f-1v6x4  0/1   Evicted       0   25h   <none>  192.168.3.10  <none>
 web-nginx-865674789f-ct66c  0/1   Evicted       0   25h   <none>  192.168.3.10  <none>
 web-nginx-865674789f-jk7ca  0/1   Evicted       0   25h   <none>  192.168.3.10  <none>

根據(jù)以往經(jīng)驗(yàn),驅(qū)逐問(wèn)題讓現(xiàn)場(chǎng)的實(shí)施同學(xué)查看監(jiān)控,一般是磁盤(pán)或者內(nèi)存會(huì)導(dǎo)致pod驅(qū)逐??蛻?hù)的磁盤(pán)一直很充足,所以排除

如果內(nèi)存占用達(dá)到90%之上,就拿著監(jiān)控找客戶(hù)擴(kuò)容內(nèi)存就好了

監(jiān)控?cái)?shù)據(jù)如下

圖片

圖片

節(jié)點(diǎn)內(nèi)存為98G,故障時(shí)刻內(nèi)存占用雖有上升,但是也在70%之下,看來(lái)此次問(wèn)題并不如開(kāi)始猜測(cè)的一樣

那么kubectl describe pods web-nginx-xxx查看日志(或者查看集群events事件,操作系統(tǒng)messages日志也)

圖片

從日志上可以看出來(lái)是內(nèi)存不足導(dǎo)致了驅(qū)逐,問(wèn)題在于我們沒(méi)有從監(jiān)控上找到內(nèi)存不足的證據(jù)。

破案

看來(lái)此次的問(wèn)題和之前經(jīng)驗(yàn)并不相同 驅(qū)逐說(shuō)明

我們來(lái)思考pod驅(qū)逐的原因。K8S通過(guò)kubelet來(lái)配置pod的驅(qū)逐參數(shù),我們檢查下驅(qū)逐閾值

evictionHard:
  imagefs.available: "2Gi"
  memory.available: "200Mi"  #剩余200m才驅(qū)逐
  nodefs.available: "1Gi"
  nodefs.inodesFree: "5%"
evictionPressureTransitionPeriod: 5m0s  #設(shè)置kubelet離開(kāi)驅(qū)逐壓力狀況之前必須要等待的時(shí)長(zhǎng)。
.....
kubeReserved:  #給K8S組件運(yùn)行預(yù)留的資源
  cpu: 400m
  memory: 800Mi
  ephemeral-storage: 300Mi
kubeReservedCgroup: /kube.slice
systemReserved: #非kubernetes組件預(yù)留資源
  memory: 3Gi
  cpu: 500m
  ephemeral-storage: 2Gi

從上面的配置來(lái)看,K8S可用內(nèi)存=總內(nèi)存-(3G+800m+200m)

通過(guò)kubectl describe node 192.168.3.10查看節(jié)點(diǎn)分配的總內(nèi)存

Capacity:
  cpu:                16
  ephemeral-storage:  1047015936Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             65806460Ki
  pods:               253
Allocatable:
  cpu:                15400m
  ephemeral-storage:  1043358208Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             63242364Ki  #可分配60G內(nèi)存
  pods:               253

Allocatable下的內(nèi)存表示可分配的資源

圖片

60G和98G差了接近40G的資源,那么離真相已經(jīng)很近了

和現(xiàn)場(chǎng)同學(xué)確認(rèn),問(wèn)題出現(xiàn)前由于內(nèi)存占用很高,做過(guò)一次在線(xiàn)擴(kuò)容。

故障復(fù)盤(pán):故障原因?yàn)榍捌趦?nèi)存資源不足后,虛擬機(jī)采用在線(xiàn)擴(kuò)容內(nèi)存的方式,服務(wù)器沒(méi)有重啟,并且K8S的kubelet服務(wù)也沒(méi)有重啟,獲取到的內(nèi)存配置仍然是60G,所以當(dāng)主機(jī)內(nèi)存達(dá)到60G的時(shí)候出現(xiàn)pod由于內(nèi)存不足產(chǎn)生驅(qū)逐。

至于監(jiān)控,node-exporter可以動(dòng)態(tài)獲取主機(jī)物理資源,所以過(guò)于依賴(lài)監(jiān)控卻忽略了檢查kubelet。

另外一個(gè)原因是之前擴(kuò)容內(nèi)存都是重啟服務(wù)器,忽略了這種異常場(chǎng)景

圖片

最后客戶(hù)重啟kubelet服務(wù)后,獲取到了新的配額,問(wèn)題解決!

責(zé)任編輯:龐桂玉 來(lái)源: 運(yùn)維之美
相關(guān)推薦

2022-08-02 15:04:36

JavaScript

2015-08-05 17:16:03

OpenStackUnitedstack

2017-06-01 16:20:08

MySQL復(fù)制延遲數(shù)據(jù)庫(kù)

2012-05-31 10:00:00

2022-10-11 14:39:18

泄露數(shù)據(jù)數(shù)據(jù)安全

2018-01-30 10:47:50

數(shù)據(jù)分析醫(yī)療保險(xiǎn)數(shù)據(jù)科學(xué)

2012-04-26 14:34:22

HTML5

2020-08-25 13:22:07

數(shù)據(jù)可視化

2015-10-20 17:55:58

2016-04-06 11:29:10

京東云基礎(chǔ)云數(shù)據(jù)云

2017-01-20 13:37:40

大數(shù)據(jù)人工智能技術(shù)

2016-09-25 15:00:48

2014-08-07 10:19:43

Android系統(tǒng)應(yīng)用領(lǐng)域

2011-08-02 09:31:52

SQL語(yǔ)句字符串

2017-05-19 10:55:19

DRaaS提供商災(zāi)難恢復(fù)

2018-10-12 13:53:22

2018-02-25 12:23:36

AI技術(shù)視頻網(wǎng)站

2011-04-12 09:12:06

程序員

2010-04-09 15:12:49

中文SSID無(wú)線(xiàn)網(wǎng)絡(luò)設(shè)

2024-05-30 12:20:27

點(diǎn)贊
收藏

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