溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何在Scale Up中使用 Health Check

發(fā)布時(shí)間:2021-11-19 11:01:04 來源:億速云 閱讀:172 作者:柒染 欄目:云計(jì)算

如何在Scale Up中使用 Health Check,很多新手對此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

在 Scale Up 中使用 Health Check

對于多副本應(yīng)用,當(dāng)執(zhí)行 Scale Up 操作時(shí),新副本會(huì)作為 backend 被添加到 Service 的負(fù)責(zé)均衡中,與已有副本一起處理客戶的請求??紤]到應(yīng)用啟動(dòng)通常都需要一個(gè)準(zhǔn)備階段,比如加載緩存數(shù)據(jù),連接數(shù)據(jù)庫等,從容器啟動(dòng)到正真能夠提供服務(wù)是需要一段時(shí)間的。我們可以通過 Readiness 探測判斷容器是否就緒,避免將請求發(fā)送到還沒有 ready 的 backend。

下面是示例應(yīng)用的配置文件。

如何在Scale Up中使用 Health Check

重點(diǎn)關(guān)注 readinessProbe 部分。這里我們使用了不同于 exec 的另一種探測方法 -- httpGet。Kubernetes 對于該方法探測成功的判斷條件是 http 請求的返回代碼在 200-400 之間。

schema 指定協(xié)議,支持 HTTP(默認(rèn)值)和 HTTPS。
path 指定訪問路徑。
port 指定端口。

上面配置的作用是:

  1. 容器啟動(dòng) 10 秒之后開始探測。

  2. 如果 http://[container_ip]:8080/healthy 返回代碼不是 200-400,表示容器沒有就緒,不接收 Service web-svc 的請求。

  3. 每隔 5 秒再探測一次。

  4. 直到返回代碼為 200-400,表明容器已經(jīng)就緒,然后將其加入到 web-svc 的負(fù)責(zé)均衡中,開始處理客戶請求。

  5. 探測會(huì)繼續(xù)以 5 秒的間隔執(zhí)行,如果連續(xù)發(fā)生 3 次失敗,容器又會(huì)從負(fù)載均衡中移除,直到下次探測成功重新加入。

對于 http://[container_ip]:8080/healthy,應(yīng)用則可以實(shí)現(xiàn)自己的判斷邏輯,比如檢查所依賴的數(shù)據(jù)庫是否就緒,示例代碼如下:

如何在Scale Up中使用 Health Check

① 定義 /healthy 的處理函數(shù)。

② 連接數(shù)據(jù)庫并執(zhí)行測試 SQL。

③ 測試成功,正常返回,代碼 200。

④ 測試失敗,返回錯(cuò)誤代碼 503。

⑤ 在 8080 端口監(jiān)聽。

對于生產(chǎn)環(huán)境中重要的應(yīng)用都建議配置 Health Check,保證處理客戶請求的容器都是準(zhǔn)備就緒的 Service backend。

以上是 Health Check 在 Scale Up 中的應(yīng)用。

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI