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

【Outlier Detection】離群驅逐檢測

通過目標規則配置離群檢測,可以使服務網格在給定的一段時間長度內觀察服務響應發生錯誤的次數。如果服務的某個端點的錯誤次數超過給定閾值,則將此服務端點標記為不健康,并將此端點移出服務的可用端點列表(即驅逐此端點)。后續請求將不再發往此端點,持續一段時間。本文介紹如何配置離群驅逐檢測。

前提條件

已完成準備工作,并部署httpbin服務和sleep服務。具體操作,請參見準備工作

功能介紹

服務網格的離群驅逐檢測簡要過程如下:

  1. 當有請求發往服務時,服務網格會記錄一段時間內服務每個端點響應的錯誤數量(響應碼為5xx的HTTP響應被視為錯誤),這段時間的長度由驅逐檢查間隔interval)規定。

  2. 當錯誤數量超過一定的閾值時,將觸發離群驅逐,將此服務端點標記為不健康,并將此端點移出服務的可用端點列表,這個閾值由主機驅逐前連續錯誤數consecutiveErrors)規定。

    說明

    如果驅逐此端點后,可用的服務端點占總服務端點占比將低于一個給定占比,則不會驅逐此服務端點,這個占比由被驅逐主機的最大占比(maxEjectionPercent)規定。

  3. 服務端點被驅逐后,將在一個給定的基礎時長內不會再收到請求,這段時間結束后驅逐結束,服務端點將重新回到可用的服務端點列表。若此服務端點第二次因連續返回5xx錯誤被驅逐,則第二次被驅逐的時間將是2倍的基礎時長(第三次被驅逐時間為3次基礎時長,以此類推)。這個基礎時長由主機被驅逐的最短時長baseEjectionTime)規定。

操作步驟

  1. 為httpbin服務配置目標規則,實現對httpbin服務的離群驅逐檢測。

    1. 登錄ASM控制臺,在左側導航欄,選擇服務網格 > 網格管理

    2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇流量管理中心 > 目標規則

    3. 目標規則頁面,單擊創建,進行如下配置,單擊預覽,確認YAML內容無誤后,單擊確認,然后單擊創建image.png

      預覽的YAML如下。

      apiVersion: networking.istio.io/v1beta1
      kind: DestinationRule
      metadata:
        name: httpbin
        namespace: default
        labels: {}
      spec:
        host: httpbin.default.svc.cluster.local
        trafficPolicy:
          outlierDetection:
            consecutiveErrors: 1
            interval: 1s
            baseEjectionTime: 15s
            maxEjectionPercent: 100
      
  2. 驗證離群驅逐是否生效。

    1. 在ACK集群對應的KubeConfig環境下,執行以下命令。

      kubectl -n legacy exec -it deploy/sleep -- curl httpbin.legacy:8000/status/502 -I

      預期輸出:

      HTTP/1.1 502 Bad Gateway
      server: envoy
      date: xxx, xx xxx 202x xx:xx:xx GMT
      content-type: text/html; charset=utf-8
      access-control-allow-origin: *
      access-control-allow-credentials: true
      content-length: 0
      x-envoy-upstream-service-time: 4

      由于配置了在1s內產生一次錯誤響應即判斷服務端點被驅逐,且被驅逐主機的最大占比為100%,此時httpbin服務唯一的端點已經被驅逐,再次訪問服務將不可用。

    2. 在15s內再次執行以下命令。

      kubectl -n legacy exec -it deploy/sleep -- curl httpbin.legacy:8000/status/502 -I

      預期輸出:

      HTTP/1.1 503 Service Unavailable
      content-length: 19
      content-type: text/plain
      date: xxx, xx xxx 202x xx:xx:xx GMT
      server: envoy

      預期輸出表明訪問httpbin服務的/status/502路徑,服務不再返回502錯誤碼,而是返回503 Service Unavailable,表明httpbin服務所有的端點都已被驅逐,離群驅逐生效。