k8s創(chuàng)建啟動、刪除pod的實(shí)現(xiàn)過程
Pod 是 Kubernetes 集群中能夠被創(chuàng)建和管理的最小部署單元,pod中可能部署一個或者多個容器,這些容器能夠共享網(wǎng)絡(luò)、存儲以及 CPU、內(nèi)存等資源
1.k8s創(chuàng)建pod的過程

1).kubectl將創(chuàng)建pod的yml文件提交到master節(jié)點(diǎn)中的api server后,api server將yml數(shù)據(jù)存入etcd(類似數(shù)據(jù)庫)
2).master節(jié)點(diǎn)中的schedule通過list watch監(jiān)聽到etcd中有創(chuàng)建pod的請求后,查看到請求創(chuàng)建的pod,schedule尋找空閑的node,并且將pod綁定導(dǎo)此node中,然后apiserver會將此結(jié)果寫入etcd
3).當(dāng)此node中的kubelet監(jiān)聽到有pod綁定過來,然后kubelet就開始通過docker創(chuàng)建啟動容器,docker把創(chuàng)建的結(jié)果反饋給kubelet,最后api server將創(chuàng)建結(jié)果寫入etcd
4).通過kubectl get pod,獲取pod,注意:pod一旦綁定到一個節(jié)點(diǎn),pod將永遠(yuǎn)不會重新綁定到另一個節(jié)點(diǎn)
2.k8s刪除pod的過程
1).用戶發(fā)出刪除pod命令,此時pod被視為死亡狀態(tài),將pod標(biāo)記為“Terminating”狀態(tài)(這時候pod會有一個寬限時間30秒)
2).kubelet監(jiān)控到pod對象為“Terminating”狀態(tài)的同時啟動pod關(guān)閉過程
3).endpoints控制器監(jiān)控到pod對象關(guān)閉,將pod與service匹配的endpoints列表中刪除,pod內(nèi)對象的容器收到TERM信號
4).當(dāng)一切準(zhǔn)備完畢后,kubelet請求api server 將此pod資源寬限期設(shè)置為0從而完成刪除操作
3.pod的狀態(tài)status
1)Pending掛起:pod沒有調(diào)度到節(jié)點(diǎn)上,可能還在下載鏡像,容器還未啟動
2).Running運(yùn)行中:pod已經(jīng)綁定到一個node上,pod中的容器已經(jīng)創(chuàng)建,有一個或者個容器已經(jīng)運(yùn)行
3).Succeeded成功:Pod中所有的容器都被成功終止,并且不會被重啟。
4).Failed失敗:Pod中的所有容器都已經(jīng)終止了,并且至少有一個容器是因?yàn)槭〗K止。也就是說,容器以非0狀態(tài)退出或者被系統(tǒng)終止
5).Unknown未知:因?yàn)槟承┰驘o法取得Pod狀態(tài),通常是因?yàn)榕cPod所在node失去通信造成失聯(lián)。
4.總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Kubernetes Dashboard 配置用戶名密碼方式登錄操作流程
為了K8s集群安全,默認(rèn)情況下Dashboard以Token的形式登錄的,那如果我們想以用戶名/密碼的方式登錄該怎么操作呢?其實(shí)只需要我們創(chuàng)建用戶并進(jìn)行 ClusterRoleBinding綁定即可,下面給大家分享Kubernetes Dashboard 配置用戶名密碼方式登錄操作流程,感興趣的朋友一起看看吧2024-06-06
Rainbond自動部署初始化Schema的數(shù)據(jù)庫步驟教程
這篇文章主要為大家介紹了Rainbond自動部署初始化Schema的數(shù)據(jù)庫過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
Rainbond對前端項(xiàng)目Vue及React的持續(xù)部署
這篇文章主要為大家介紹了Rainbond對前端項(xiàng)目Vue及React的持續(xù)部署,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04
K8s中的臨時容器Ephemeral?Containers使用
這篇文章主要介紹了K8s中的臨時容器Ephemeral?Containers使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-07-07
K8S內(nèi)部pod之間相互調(diào)用案例以及詳解
這篇文章主要給大家介紹了關(guān)于K8S內(nèi)部pod之間相互調(diào)用案例的相關(guān)資料,Pod是Kubernetes中最小的可部署單元,它是一個或多個容器的集合,它們共享網(wǎng)絡(luò)和存儲資源,并在同一節(jié)點(diǎn)上運(yùn)行,需要的朋友可以參考下2023-08-08

