日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

使用探針對容器進行健康檢查

Liveness Probe和Readiness Probe是用于檢測容器狀態(tài)的機制,其中Liveness Probe用于檢測容器是否正常運行,Readiness Probe用于檢測容器是否已經(jīng)就緒。本文介紹如何配置Liveness Probe和Readiness Probe對容器進行健康檢查,以便ECI更好地監(jiān)控和管理容器的運行狀態(tài),確保服務(wù)的高可用性和穩(wěn)定性。

功能說明

ECI支持通過存活探針和業(yè)務(wù)探針來檢查容器的狀態(tài)和運行情況。

探針

說明

應(yīng)用場景

應(yīng)用存活探針( Liveness Probe)

用于檢查容器是否正常運行。

  • 如果檢查成功,則表示容器正常運行。

  • 如果檢查失敗,系統(tǒng)會根據(jù)配置的容器重啟策略進行相應(yīng)的處理。

  • 如果未配置該探針,則默認容器一直正常運行。

  • 當應(yīng)用程序處于運行狀態(tài)但無法進行進一步操作時,Liveness Probe將捕獲到deadlock,重啟對應(yīng)的容器,使得應(yīng)用程序在存在bug的情況下依然能夠運行。

  • 長時間運行的應(yīng)用程序最終可能會轉(zhuǎn)換到broken狀態(tài),此時除了重新啟動,無法恢復(fù)。Liveness Probe可以檢測并補救這種情況。

應(yīng)用業(yè)務(wù)探針(Readiness Probe)

用于檢查容器是否已經(jīng)準備就緒,可以為請求提供服務(wù)。

  • 如果檢查成功,則表示容器已經(jīng)準備就緒,可以接收業(yè)務(wù)請求。

  • 如果檢查失敗,則表示容器沒有準備就緒,系統(tǒng)將停止向該容器發(fā)送任何請求,直至重新檢查成功。

  • 如果未配置該探針,則默認容器已經(jīng)準備就緒。

如果應(yīng)用程序暫時無法對外部流量提供服務(wù),例如應(yīng)用程序需要在啟動期間加載大量數(shù)據(jù)或配置文件,此時,如果不想終止應(yīng)用程序,也不想向其發(fā)送請求,可以通過Readiness Probe來檢測和緩解這種情況。

配置說明(OpenAPI)

調(diào)用CreateContainerGroup接口創(chuàng)建ECI實例時,您可以通過容器中的LivenessProbe和ReadinessProbe參數(shù)來設(shè)置應(yīng)用存活探針和應(yīng)用業(yè)務(wù)探針。相關(guān)參數(shù)說明如下表所示。更多信息,請參見CreateContainerGroup

LivenessProbe相關(guān)參數(shù)

重要

設(shè)置LivenessProbe相關(guān)參數(shù)時,HttpGet、Exec和TcpSocket這三種檢查方式,只能選擇其中一種。

名稱

類型

示例值

描述

Container.N.LivenessProbe.HttpGet.Path

string

/healthyz

使用HTTP請求方式進行健康檢查時,HTTP Get請求檢測的路徑。

Container.N.LivenessProbe.HttpGet.Port

integer

8888

使用HTTP請求方式進行健康檢查時,HTTP Get請求檢測的端口號。

Container.N.LivenessProbe.HttpGet.Scheme

string

HTTP

使用HTTP請求方式進行健康檢查時,HTTP Get請求對應(yīng)的協(xié)議類型,取值范圍:

  • HTTP

  • HTTPS

Container.N.LivenessProbe.Exec.Command.N

array

cat /tmp/healthy

使用命令行方式進行健康檢查時,在容器內(nèi)執(zhí)行的命令。

Container.N.LivenessProbe.TcpSocket.Port

integer

8000

使用TCP Socket方式進行健康檢查時,TCP Socket檢測的端口。

Container.N.LivenessProbe.InitialDelaySeconds

integer

5

容器啟動多久后開始檢查。單位為秒。

Container.N.LivenessProbe.PeriodSeconds

integer

1

檢查執(zhí)行的周期,默認為10秒,最小為1秒。

Container.N.LivenessProbe.SuccessThreshold

integer

1

從上次檢查失敗后重新認定檢查成功的檢查次數(shù)閾值(必須是連續(xù)成功),默認為1。當前必須為1。

Container.N.LivenessProbe.FailureThreshold

integer

3

從上次檢查成功后認定檢查失敗的檢查次數(shù)閾值(必須是連續(xù)失敗),默認為3。

Container.N.LivenessProbe.TimeoutSeconds

integer

1

檢查超時的時間,默認為1秒,最小為1秒。

ReadinessProbe相關(guān)參數(shù)

重要

設(shè)置ReadinessProbe相關(guān)參數(shù)時,HttpGet、Exec和TcpSocket這三種檢查方式,只能選擇其中一種。

名稱

類型

示例值

描述

Container.N.ReadinessProbe.HttpGet.Path

string

/healthyz

使用HTTP請求方式進行健康檢查時,HTTP Get請求檢測的路徑。

Container.N.ReadinessProbe.HttpGet.Port

integer

8888

使用HTTP請求方式進行健康檢查時,HTTP Get請求檢測的端口號。

Container.N.ReadinessProbe.HttpGet.Scheme

string

HTTP

使用HTTP請求方式進行健康檢查時,HTTP Get請求對應(yīng)的協(xié)議類型,取值范圍:

  • HTTP

  • HTTPS

Container.N.ReadinessProbe.Exec.Command.N

array

cat /tmp/healthy

使用命令行方式進行健康檢查時,在容器內(nèi)執(zhí)行的命令。

Container.N.ReadinessProbe.TcpSocket.Port

integer

8000

使用TCP Socket方式進行健康檢查時,TCP Socket檢測的端口。

Container.N.ReadinessProbe.InitialDelaySeconds

integer

5

容器啟動多久后開始檢查。單位為秒。

Container.N.ReadinessProbe.PeriodSeconds

integer

1

檢查執(zhí)行的周期,默認為10秒,最小為1秒。

Container.N.ReadinessProbe.SuccessThreshold

integer

1

從上次檢查失敗后重新認定檢查成功的檢查次數(shù)閾值(必須是連續(xù)成功),默認為1。當前必須為1。

Container.N.ReadinessProbe.FailureThreshold

integer

3

從上次檢查成功后認定檢查失敗的檢查次數(shù)閾值(必須是連續(xù)失敗),默認為3。

Container.N.ReadinessProbe.TimeoutSeconds

integer

1

檢查超時的時間,默認為1秒,最小為1秒。

配置說明(控制臺)

通過彈性容器實例控制臺創(chuàng)建ECI實例時,您可以在容器配置區(qū)域選擇容器,展開該容器的高級配置,然后打開監(jiān)控檢查開關(guān),并配置探針。示例如下:

說明

使用控制臺配置時,僅支持命令行和HTTP請求兩種檢查方式,不支持TCP Socket方式。

健康檢查1

參數(shù)

描述

時間設(shè)置

  • 延遲時間:容器啟動多久后開始檢查。

  • 超時時間:檢查的超時等待時間,如果超時,則視為檢查失敗。

檢查方式

根據(jù)需要選擇檢查方式。

  • 命令行腳本:探針在容器內(nèi)執(zhí)行命令,并檢查命令退出的狀態(tài)碼,如果狀態(tài)碼為0,則表示檢查成功。

  • HTTP請求方式:探針向容器發(fā)送HTTP請求,如果返回狀態(tài)碼符合以下要求:200≤狀態(tài)碼<400,則表示檢查成功。

命令行腳本

當檢查方式為命令行腳本時,需要配置在容器內(nèi)執(zhí)行的命令行腳本。

HTTP請求方式

當檢查方式為HTTP請求方式時,需要配置HTTP Get請求包含的路徑、端口和協(xié)議。

配置示例

創(chuàng)建一臺設(shè)置了Liveness Probe和Readiness Probe的ECI實例,然后模擬服務(wù)異常,以查看探針的配置效果。

  1. 調(diào)用CreateContainerGroup接口創(chuàng)建一臺ECI實例。

    以下示例采用TCP Socket方式進行健康檢查:

    ContainerGroupName=test-probe
    # 使用Nginx鏡像,同時自動創(chuàng)建和綁定一個EIP
    Container.1.Name=container-1
    Container.1.Image=nginx
    AutoCreateEip=true
    # 配置應(yīng)用存活探針,在容器運行5秒后,每3秒檢測一次80端口,成功閾值為1次,失敗閾值為3次,超時時間為10秒
    Container.1.LivenessProbe.TcpSocket.Port=80
    Container.1.ReadinessProbe.InitialDelaySeconds=5
    Container.1.LivenessProbe.PeriodSeconds=3
    Container.1.LivenessProbe.SuccessThreshold=1
    Container.1.LivenessProbe.FailureThreshold=3
    Container.N.LivenessProbe.TimeoutSeconds=10
    # 配置應(yīng)用業(yè)務(wù)探針,在容器運行5秒后,每3秒檢測一次80端口,成功閾值為1次,失敗閾值為3次,超時時間為10秒
    Container.1.ReadinessProbe.TcpSocket.Port=80
    Container.1.ReadinessProbe.InitialDelaySeconds=5
    Container.1.ReadinessProbe.PeriodSeconds=3
    Container.1.ReadinessProbe.SuccessThreshold=1
    Container.1.ReadinessProbe.FailureThreshold=3
    Container.1.ReadinessProbe.TimeoutSeconds=10
  2. 彈性容器實例控制臺查看ECI實例事件。

    ECI實例創(chuàng)建成功后,單擊實例ID可打開實例詳情頁面。在事件頁簽下查看實例事件,可以看到容器正常啟動。

    健康檢查2

  3. 連接容器。具體操作,請參見連接ECI實例

  4. 修改Nginx監(jiān)聽端口,模擬服務(wù)異常。

    1. 修改Nginx監(jiān)聽端口。

      說明

      本示例使用的Nginx鏡像環(huán)境中沒有安裝vim,執(zhí)行vi命令前需執(zhí)行apt-get updateapt-get install vim安裝vim。

      vi /etc/nginx/conf.d/default.conf

      將監(jiān)聽端口從80改為8080,示例如下:

      健康檢查2.png

    2. 重啟Nginx。

      nginx -s reload
  5. 查看探針的生效情況。

    重啟Nginx幾秒后,容器會自動進行重啟。此時查看實例事件,可以看到在Liveness Probe和Readiness Probe檢查失敗后,容器進行了重啟。

    健康檢查4