重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
今天就跟大家聊聊有關如何學習Kubernetes 的Health Check,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
網站建設哪家好,找成都創新互聯!專注于網頁設計、網站建設、微信開發、成都小程序開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了東昌免費建站歡迎大家使用!
Health Check
強大的自愈能力是 Kubernetes 這類容器編排引擎的一個重要特性。自愈的默認實現方式是自動重啟發生故障的容器。除此之外,用戶還可以利用 Liveness 和 Readiness 探測機制設置更精細的健康檢查,進而實現如下需求:
零停機部署。
避免部署無效的鏡像。
更加安全的滾動升級。
下面通過實踐學習 Kubernetes 的 Health Check 功能。
我們首先學習 Kubernetes 默認的健康檢查機制:
每個容器啟動時都會執行一個進程,此進程由 Dockerfile 的 CMD 或 ENTRYPOINT 指定。如果進程退出時返回碼非零,則認為容器發生故障,Kubernetes 就會根據 restartPolicy
重啟容器。
下面我們模擬一個容器發生故障的場景,Pod 配置文件如下:
Pod 的 restartPolicy
設置為 OnFailure
,默認為 Always
。
sleep 10; exit 1
模擬容器啟動 10 秒后發生故障。
執行 kubectl apply
創建 Pod,命名為 healthcheck
。
過幾分鐘查看 Pod 的狀態:
可看到容器當前已經重啟了 3 次。
在上面的例子中,容器進程返回值非零,Kubernetes 則認為容器發生故障,需要重啟。但有不少情況是發生了故障,但進程并不會退出。比如訪問 Web 服務器時顯示 500 內部錯誤,可能是系統超載,也可能是資源死鎖,此時 httpd 進程并沒有異常退出,在這種情況下重啟容器可能是最直接最有效的解決方案。
看完上述內容,你們對如何學習Kubernetes 的Health Check有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注創新互聯行業資訊頻道,感謝大家的支持。