1. 狀態(tài)說明
在整個pod的生命周期分四個階段, 每個階段都是對pod的簡單的總結(jié), 下面是pod可能處于的階段
- Pending: pod被k8s系統(tǒng)接受,但由于某種原因而未完全運(yùn)行,如正在下載鏡像文件
- Running: pod已運(yùn)行于某一節(jié)點(diǎn)上(container里的進(jìn)程處于啟動或重啟狀態(tài)時也屬于這一階段)
- Succeeded: pod里所有的containers均已terminated
- Failed: pod里至少有一個container未正常terminated
- Unknown: 由于未知原因無法獲取pod狀態(tài),比如node無法連接
每一個階段都有更詳細(xì)的conditions信息, 它代表了當(dāng)前pod是否處于某一個condition(PodScheduled,Ready,Initialized,Unschedulable),"true" 表示處于,"false"表示不處于
- PodInitialized PodConditionType = "Initialized"
- PodReady PodConditionType = "Ready"
- PodScheduled PodConditionType = "PodScheduled"
- PodReasonUnschedulable PodConditionType = "Unschedulable"
注意 當(dāng)階段為Running, condition中Ready狀態(tài)為True時, 即表示pod中的容器可以提供服務(wù)了
2. 在pod創(chuàng)建過程中, 通常會伴隨著各種事件的產(chǎn)生, 可以使用curl監(jiān)控pod狀態(tài)得到, k8s事件的種類總共只有4種
- Added EventType = "ADDED"
- Modified EventType = "MODIFIED"
- Deleted EventType = "DELETED"
- Error EventType = "ERROR"
下圖為pod產(chǎn)生到運(yùn)行正常時的狀態(tài)變化

image
可以看到第2行的type由ADDED變?yōu)镸ODIFIED, 78行的狀態(tài)由Pending變?yōu)镽unning, 88行的狀態(tài)由False變?yōu)門rue
其它的變化有第2行、12行
下圖為pod從正常運(yùn)行到被刪除的狀態(tài)變化

image
可以看到在第一個文件到最后一個文件的變化, 第2行的type由MODIFIED變?yōu)镈ELETED, 90行的狀態(tài)由True變?yōu)镕alse
3. 監(jiān)控pod的狀態(tài)變化方法
直接在上url后追加所需要查詢的內(nèi)容,方法使用GET 事例,返回json