一.yaml文件格式
人員名單:
張三:
年齡: 18 #
職業: Linux運維工程師
愛好:
- 看書
- 學習
- 加班
李四:
年齡: 20
職業: Java開發工程師 # 這是職業
愛好:
- 開源技術
- 微服務
- 分布式存儲
大小寫敏感
使用縮進表示層級關系
縮進時不允許使用Tal鍵,只允許使用空格
縮進的空格數目不重要,只要相同層級的元素左側對齊即可
使用”#” 表示注釋,從這個字符一直到行尾,都會被解析器忽略
比json更適用於配置文件
二.pod狀態
第一階段:
Pending:
#正在創建Pod但是Pod中的容器還沒有全部被創建完成,處於此狀態的Pod應該檢查Pod依賴的存儲是否有權限掛載、鏡像是否可以下載、調度是否正常等。
Failed
#Pod中有容器啟動失敗而導致pod工作異常。
Unknown
#由於某種原因無法獲得pod的當前狀態,通常是由於與pod所在的node節點通信錯誤。
Succeeded
#Pod中的所有容器都被成功終止即pod里所有的containers均已terminated。
第二階段:
Unschedulable:
#Pod不能被調度,kube-scheduler沒有匹配到合適的node節點
PodScheduled
#pod正處於調度中,在kube-scheduler剛開始調度的時候,還沒有將pod分配到指定的pid,在篩選出合適的節點后就會更新etcd數據,將pod分配到指定的pod
Initialized
#所有pod中的初始化容器已經完成了
ImagePullBackOff:
#Pod所在的node節點下載鏡像失敗
Running
#Pod內部的容器已經被創建並且啟動。
Ready
#表示pod中的容器已經可以提供訪問服務
Error:#pod啟動過程中發生錯誤
NodeLost:#pod所在節點失聯
Unkown:#pod所在節點失聯或其它未知異常
Waiting:#pod等待啟動
Pending:#pod等待被調度
Terminating:#pod正在被銷毀
CrashLoopBackoff:#pod探針檢測失敗,但是kubelet正在將它重啟
InvalidImageName:#Node節點無法解析鏡像名稱導致鏡像無法下載
ImageInspactError:#無法驗證鏡像,鏡像不完整導致
ErrImageNeverPull:#策略禁止拉取鏡像,鏡像中心權限是私有等
ImagePullBackoff:#鏡像拉取失敗,但是正在重新拉取
RegistryUnavailable:#鏡像服務器不可用,網絡原因或harbor宕機
ErrImagePull:#鏡像拉取出錯,超時或下載被輕質終止
CreateContainerConfigError:#不能創建kubelet使用的容器配置
CreateContainerError:#創建容器失敗
PreStartContainer:#執行PreStart hook報錯,pod hook(鈎子)是由kubernetes管理的kubelet發起的,當容器中的進程啟動前或者容器中的進程終止之前運行,比如容器創建完成后里面的服務啟動之前可以檢查一下依賴的其它服務是否啟動,或者容器退出之前可以把容器中的服務先通過命令停止。
PostStartHookError:#執行PostStart hook報錯
RunContainerError:#pod運行失敗,容器中沒用初始化PID的1的守護進程等
ContainersNotInitialized:#pod沒有初始化完畢
ContainersNotReady:#pod沒有准備完畢
ContainerCreating:#pod正在創建中
PodInitializing:#pod正在初始化中
DockerDaemonNotReady:#node節點docker服務沒有啟動
NetworkPlugNotReady:#網絡插件還沒有完全啟動
三.pod探針
#探針的三種處理程序
ExecAction
#在容器內執行指定命令,如果命令退出時返回碼為0則認為診斷成功。
TCPSocketAction
#對指定端口上的容器的IP地址進行TCP檢查,如果端口打開,則診斷被認為是成功的。
HTTPGetAction
#對指定的端口和路徑上的容器的IP地址執行HTTPGet請求,如果響應的狀態碼大於等於200且小於 400,則診斷被認為是成功的。
#探針類型
livenessProbe
#存活探針,檢測容器容器是否正在運行,如果存活探測失敗,則kubelet會殺死容器,並且容器將受到其重啟策略的影響,如果容器不提供存活探針,則默認狀態為 Success,livenessProbe用戶控制是否重啟pod。
readinessProbe
#就緒探針,如果就緒探測失敗,端點控制器將從與Pod匹配的所有Service的端點中刪除該Pod的IP地址,初始延遲之前的就緒狀態默認為Failure,如果容器不提供就緒探針,則默認狀態為 Success,readinessProbe用於控制pod是否添加至service。