本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
將應用部署在SAE后,您可以使用健康檢查功能查看應用實例與業務運行是否正常,以便運行異常時定位問題。SAE支持在創建或部署中配置,本文介紹如何在SAE控制臺配置健康檢查。
背景信息
健康檢查原理
健康檢查是指由Liveness探針或者Readiness探針對應用實例與應用進行定時檢查,并將結果反饋給SAE控制臺的過程,幫助您了解集群環境下整個服務的運行狀態,以便定位問題。
SAE基于Kubernetes,提供了以下兩種健康檢查方式。
應用實例存活檢查(Liveness配置):針對單個應用實例進行健康檢查,檢測應用實例是否已經啟動。
檢查成功:表示應用實例健康,SAE不執行任何操作。
檢查失敗:表示應用實例不健康,SAE會重啟應用實例。
應用業務就緒檢查(Readiness配置):針對應用業務進行健康檢查,檢測處理客戶請求的應用是否已經就緒。
檢查成功:表示應用準備就緒,SAE會為應用分配業務流量進行處理。
檢查失敗:表示應用未準備就緒,SAE會上報應用異常,不為該應用分配業務流量。
成功和失敗說明
成功:健康檢查成功一次即認為檢查通過。
失敗:如果一次健康檢查失敗,SAE會按照您設置的檢查周期時間重新進行健康檢查。直到連續3次失敗后,SAE會進行Liveness失敗重啟應用實例、Readiness失敗摘除實例不分配流量等操作。
健康檢查參數
SAE健康檢查通過設置以下參數,檢查應用實例與應用的運行狀態。
延遲時間
健康檢查延遲檢測時間。單位為秒,默認為10。例如設置為5,表示從實例啟動5秒后開始檢測。假設應用啟動時長為60,建議將延遲時間設置為70。
超時時間
健康檢查超時等待時間。單位為秒,默認為1。例如設置為10,如果超時等待時間超過10秒,表示本次健康檢查失敗,上報超時異常。如果設置為0或不設置,默認超時等待時間為1秒。
檢查周期
健康檢查周期。單位為秒,默認為30。例如設置為5,表示每隔5秒檢查一次。
操作步驟
在創建應用過程中配置健康檢查
登錄SAE控制臺。
在左側導航欄,選擇 ,在頂部菜單欄選擇地域,然后單擊創建應用。
在應用基本信息配置向導,設置應用相關信息,并單擊下一步:應用部署配置。
在應用部署配置配置向導,選擇技術棧語言和應用部署方式,設置部署信息。
展開應用健康檢查設置區域,選擇檢查方式,并設置相關信息。
說明應用實例存活檢查和應用業務就緒檢查的參數相同。
在健康檢查設置中,應用實例存活檢查(Liveness配置)與應用業務就緒檢查(Readiness配置)二者都配置(推薦),也可二者選配其一。如果二者都配置,SAE會根據配置的檢查延遲時間依次執行健康檢查。
HTTP請求檢查:通過向實例發送HTTP請求檢查健康情況。通過HTTP訪問獲得的HTTP狀態碼位于[200,399]之間,則認為訪問成功,實例健康;否則認為失敗,實例不健康。
配置項
說明
路徑
訪問HTTP Server的路徑。
端口
訪問HTTP Server的端口。
高級設置
展開高級設置后,選擇判斷返回的字符串中是否包含設置的關鍵字。
協議
選擇HTTP或HTTPS。
延遲時間(秒)
設置健康檢查延遲檢測時間。單位為秒,默認為10。
超時時間(秒)
設置健康檢查超時等待時間。單位為秒。默認為1。
檢查周期(秒)
設置健康檢查周期。單位為秒,默認為30。
健康閾值(次)
探針在失敗后,被視為成功的最小連續成功數。Liveness必須設置為1。
不健康閾值(次)
判定總體失敗的連續失敗數。
TCP端口檢查(推薦):通過向實例發送一個TCP Socket來檢查實例的健康情況。如果可以建立連接,則認為實例健康;如果連接失敗,則認為不健康。
配置項
說明
TCP端口
設置TCP檢查訪問的端口。
延遲時間(秒)
設置健康檢查延遲檢測時間。單位為秒,默認為10。
超時時間(秒)
設置健康檢查超時等待時間。單位為秒,默認為1。
檢查周期(秒)
設置健康檢查周期。單位為秒,默認為30。
健康閾值(次)
探針在失敗后,被視為成功的最小連續成功數。Liveness必須設置為1。
不健康閾值(次)
判定總體失敗的連續失敗數。
執行命令檢查:通過在實例中執行探針檢測命令來檢查實例的健康情況。如果執行命令后返回的狀態碼為0,則認為執行成功,實例健康;如果不為0,則認為執行失敗,實例不健康。
配置項
說明
延遲時間(秒)
設置健康檢查延遲檢測時間。單位為秒,默認為10。
超時時間(秒)
設置健康檢查超時等待時間。單位為秒,默認為1。
檢查周期(秒)
設置健康檢查周期。單位為秒,默認為30。
健康閾值(次)
探針在失敗后,被視為成功的最小連續成功數。Liveness必須設置為1。
不健康閾值(次)
判定總體失敗的連續失敗數。
執行命令
設置應用實例或者進程內部執行的健康檢查命令。如果該命令返回碼為0,則表示應用健康。
執行命令的具體格式,請參見右側的示例區域或下文中的示例。健康檢查相關命令,請參見Kubernetes官網Configure Probes。
說明設置執行命令時,首行填寫命令,次行之后再填寫參數。多條參數時以換行分隔,請避免出現空行情況。
單擊下一步:確認規格。
在確認規格配置向導,查看您所創建應用的詳細信息以及配置費用情況,并單擊確認創建。
頁面會跳轉至創建完成配置向導,您可以單擊應用詳情頁進入基本信息頁面。
在部署應用過程中配置健康檢查
重新部署應用后,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
更新應用配置的路徑因實例數的不同而不同。本文以實例數大于等于1為例,介紹如何配置目標功能。當實例數等于0時的操作路徑,請參見更新應用。
登錄SAE控制臺。
在左側導航欄,選擇 ,在頂部菜單欄選擇地域,然后單擊具體應用名稱。
在基本信息頁面右上角,單擊部署應用。
展開應用健康檢查設置區域,選擇檢查方式,并設置相關信息。
說明應用實例存活檢查和應用業務就緒檢查的參數相同。
在健康檢查設置中,應用實例存活檢查(Liveness配置)與應用業務就緒檢查(Readiness配置)二者都配置(推薦),也可二者選配其一。如果二者都配置,SAE會根據配置的檢查延遲時間依次執行健康檢查。
HTTP請求檢查:通過向實例發送HTTP請求檢查健康情況。通過HTTP訪問獲得的HTTP狀態碼位于[200,399]之間,則認為訪問成功,實例健康;否則認為失敗,實例不健康。
配置項
說明
路徑
訪問HTTP Server的路徑。
端口
訪問HTTP Server的端口。
高級設置
展開高級設置后,選擇判斷返回的字符串中是否包含設置的關鍵字。
協議
選擇HTTP或HTTPS。
延遲時間(秒)
設置健康檢查延遲檢測時間。單位為秒,默認為10。
超時時間(秒)
設置健康檢查超時等待時間。單位為秒。默認為1。
檢查周期(秒)
設置健康檢查周期。單位為秒,默認為30。
健康閾值(次)
探針在失敗后,被視為成功的最小連續成功數。Liveness必須設置為1。
不健康閾值(次)
判定總體失敗的連續失敗數。
TCP端口檢查(推薦):通過向實例發送一個TCP Socket來檢查實例的健康情況。如果可以建立連接,則認為實例健康;如果連接失敗,則認為不健康。
配置項
說明
TCP端口
設置TCP檢查訪問的端口。
延遲時間(秒)
設置健康檢查延遲檢測時間。單位為秒,默認為10。
超時時間(秒)
設置健康檢查超時等待時間。單位為秒,默認為1。
檢查周期(秒)
設置健康檢查周期。單位為秒,默認為30。
健康閾值(次)
探針在失敗后,被視為成功的最小連續成功數。Liveness必須設置為1。
不健康閾值(次)
判定總體失敗的連續失敗數。
執行命令檢查:通過在實例中執行探針檢測命令來檢查實例的健康情況。如果執行命令后返回的狀態碼為0,則認為執行成功,實例健康;如果不為0,則認為執行失敗,實例不健康。
配置項
說明
延遲時間(秒)
設置健康檢查延遲檢測時間。單位為秒,默認為10。
超時時間(秒)
設置健康檢查超時等待時間。單位為秒,默認為1。
檢查周期(秒)
設置健康檢查周期。單位為秒,默認為30。
健康閾值(次)
探針在失敗后,被視為成功的最小連續成功數。Liveness必須設置為1。
不健康閾值(次)
判定總體失敗的連續失敗數。
執行命令
設置應用實例或者進程內部執行的健康檢查命令。如果該命令返回碼為0,則表示應用健康。
執行命令的具體格式,請參見右側的示例區域或下文中的示例。健康檢查相關命令,請參見Kubernetes官網Configure Probes。
說明設置執行命令時,首行填寫命令,次行之后再填寫參數。多條參數時以換行分隔,請避免出現空行情況。
配置完成后,單擊確認。
驗證結果
健康檢查配置成功后,您可以在目標應用的基本信息頁面,單擊實例部署信息頁簽,在默認分組區域查看實例的運行狀態,將鼠標移至狀態后的標志上,可查看健康檢查配置的詳細信息。
運行狀態 | 說明 |
| 表示實例未配置健康檢查。 說明
|
表示實例正在或等待進行健康檢查。 說明 應用啟動后,需要等待健康檢查所設置的延遲時間,才會開始健康檢查。 | |
| 表示健康檢查失敗,實例不健康。 說明 如果您需要查看檢查失敗原因,您可以單擊失敗,跳轉至應用事件頁面,查看健康檢查的詳細信息。 |
表示健康檢查通過,實例健康。 |