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