您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何理解Kubernetes 探針,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
配置 readiness、liveness 和 startup 探針可以處理不健康的 Pod,小編介紹了三種類型的探針、最佳實踐和有關工具,以檢測可能存在的配置問題。
分布式系統和微服務體系結構的挑戰之一是自動檢測不正常的應用程序,并將請求(request)重新路由到其他可用系統,恢復損壞的組件。健康檢查是應對該挑戰的一種可靠方法。使用 Kubernetes,可以通過探針配置運行狀況檢查,以確定每個 Pod 的狀態。
同樣的,這也是 Kubernetes 探針用來定義容器何時準備接受流量,以及何時重新啟動容器的方式。從 Kubernetes v1.16 開始,已經支持三種類型的探針。在文中將介紹這三種類型的探針、最佳實踐和有關工具,以檢測可能存在的配置問題。
Kubernetes 探針
Kubernetes 版本小于 v1.15 時支持 readiness 和 liveness 探針,在 v1.16 中添加了 startup 探針作為 Alpha 功能,并在 v1.18 中升級為 Beta。
initialDelaySeconds
:啟動 liveness、readiness 探針前要等待的秒數。periodSeconds
:檢查探針的頻率。timeoutSeconds
:將探針標記為超時(未通過運行狀況檢查)之前的秒數。successThreshold
:探針需要通過的最小連續成功檢查數量。failureThreshold
:將探針標記為失敗之前的重試次數。對于 liveness 探針,這將導致 Pod 重新啟動。對于 readiness 探針,將標記 Pod 為未就緒(unready)。initialDelaySeconds
來確定 readiness 探測在準備就緒前要等待多長時間。
假設有一個偶爾需要下載大量數據的應用程序,由于 initialDelaySeconds
是一個靜態數字,因此該應用程序即使不需要那么長的初始化等待時間,我們也必須設置最保守的等待時間。通過 startup 探針,我們可以配置 failureThreshold
和 periodSeconds
來解決該問題,例如設置 failureThreshold
為 15,periodSeconds
為 5,這意味著應用程序在失敗之前會有 10x5=75s 的啟動時間。
配置探針
現在我們了解了不同類型的探針,下面是配置每種探針的三種不同方式。
/healthz
endpoint 的 Express server)。HTTP 探針包含其他額外參數:
host
:要連接的主機名(默認值:pod 的 IP)。scheme
:HTTP(默認)或 HTTPS。path
:HTTP/S 服務器上的路徑 。httpHeaders
:自定義標頭(如果需要標頭用于身份驗證、CORS 設置等) 。port
:訪問服務器的端口名稱或端口號。最佳實踐
雖然說探針的確切參數和使用方法取決于應用程序,但也有一些常用的最佳實踐:
/healthz
),但能將 failureThreshold
設置得比其他探針更高,以擁有更長的啟動時間,相對于 liveness 和 readiness 而言,設置的失敗時間會更合理。簡而言之,定義明確的探針通常會帶來更好的彈性和可用性。確保觀察啟動時間和系統行為,在應用程序更改時調整探針設置。
工具
最后,鑒于 Kubernetes 探針的重要性,我們可以使用 Kubernetes 資源分析工具來檢測缺失的探針。這些工具可以在現有集群上運行,也可以置入 CI/CD 流程中,可以在沒有正確配置資源的情況下自動拒絕工作負載。
關于如何理解Kubernetes 探針就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。