k8s?pod始終處于pending狀態(tài)的解決方案
項(xiàng)目場(chǎng)景
新搭建的k8s投入使用,為新項(xiàng)目提供節(jié)點(diǎn)資源。
問(wèn)題描述
k8s服務(wù)部署后,由于項(xiàng)目需要,進(jìn)行了一次服務(wù)重啟,結(jié)果發(fā)現(xiàn)kubernetes-dashboard無(wú)法訪問(wèn),kubectl get pod -A 查看所有pod發(fā)現(xiàn),均處于pending狀態(tài)。
原因分析
懷疑是node節(jié)點(diǎn)出了問(wèn)題,所以導(dǎo)致pod無(wú)法啟動(dòng)。
解決方案
第一步:查看所有pod節(jié)點(diǎn)狀態(tài),發(fā)現(xiàn)全部是pending
kubectl get pod -A

第二步:查看namespace里面一個(gè)pod的詳細(xì)信息,查看具體是什么原因?qū)е碌膒ending
kubectl -n kubernetes-dashboard describe pod dashboard-metrics-scraper-c45b7869d-vv9kw #kubectl -n namespace的名字 describe pod pod的名字
結(jié)尾處看到報(bào)錯(cuò)信息,兩個(gè)節(jié)點(diǎn)有污點(diǎn),pod無(wú)法容忍。

第三步:查看污點(diǎn)信息
kubectl describe nodes |grep Taints

第四步:刪除污點(diǎn)內(nèi)容。污點(diǎn)名字后面跟 - 號(hào),就可以刪除了
kubectl taint nodes node1 project=devcenter-build:NoExecute- kubectl taint nodes node2 project=devcenter-build:NoExecute-

第五步:再次查看污點(diǎn)信息,查看pod狀態(tài)
kubectl describe nodes |grep Taints kubectl get pod -A


問(wèn)題結(jié)束后,看了一些相關(guān)文章。
總結(jié)發(fā)現(xiàn),pending狀態(tài)導(dǎo)致的原因主要分為三類(lèi):
- 第一類(lèi): 調(diào)度問(wèn)題,無(wú)法在任何節(jié)點(diǎn)上調(diào)度 Pod。其中包括,污點(diǎn)、node節(jié)點(diǎn)內(nèi)存或cpu資源不足、都會(huì)引起調(diào)度失敗。
- 第二類(lèi): 鏡像問(wèn)題,無(wú)法拉取到鏡像。包括,鏡像名稱(chēng)、標(biāo)簽、鏡像倉(cāng)庫(kù)輸入錯(cuò)誤,鏡像倉(cāng)庫(kù)需要身份驗(yàn)證等,都導(dǎo)致拉取失敗。
- 第三類(lèi):依賴(lài)性問(wèn)題,Pod 需要一個(gè)卷、Secret 或 ConfigMap 才能運(yùn)行。(沒(méi)遇到過(guò),但是據(jù)說(shuō)發(fā)生這個(gè)問(wèn)題的可能性較?。?/li>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
云原生技術(shù)kubernetes(K8S)簡(jiǎn)介
這篇文章主要介紹了云原生技術(shù)kubernetes的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)使用K8S,感興趣的朋友可以了解下2021-03-03
k8s部署并測(cè)試ingress-nginx的詳細(xì)過(guò)程
這篇文章主要介紹了k8s部署并測(cè)試ingress-nginx的詳細(xì)過(guò)程,本文通過(guò)一個(gè)demo示例給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧2025-04-04
K8s實(shí)戰(zhàn)教程之容器和?Pods資源分配問(wèn)題
這篇文章主要介紹了K8s實(shí)戰(zhàn)教程之容器和?Pods資源分配,本篇文章通過(guò)配置集群中運(yùn)行的容器的?CPU?請(qǐng)求和限制,你可以有效利用集群上可用的?CPU?資源,通過(guò)將?Pod?CPU?請(qǐng)求保持在較低水平,可以使?Pod?更有機(jī)會(huì)被調(diào)度,需要的朋友可以參考下2022-07-07
K8s中Pod處于Pending狀態(tài)的八種原因分析
文章詳細(xì)介紹了Pod處于Pending狀態(tài)的八種常見(jiàn)原因,并提供了相應(yīng)的排查和解決方法,這些原因包括資源不足、調(diào)度約束、存儲(chǔ)依賴(lài)、鏡像問(wèn)題、配額限制、網(wǎng)絡(luò)暗礁、系統(tǒng)級(jí)異常以及冷門(mén)陷阱,每種原因都附帶了具體的診斷方法和解決建議,感興趣的朋友一起看看吧2025-02-02

