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

使用優雅下線功能避免流量損失

ASM網關在縮容或滾動重啟時,會刪除網關Pod而導致少量流量損失。啟用優雅下線功能后,即使刪除網關Pod,現有連接在一定時間內仍能正常傳輸,流量將不會有損失。本文介紹如何使用優雅下線功能。

前提條件

步驟一:啟用優雅下線功能

您可以根據實際情況,在新建網關時或為已有網關啟用優雅下線功能。

新建網關時啟用優雅下線功能

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

  2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇ASM網關 > 入口網關

  3. 入口網關頁面,單擊創建

  4. 創建頁面,選擇部署集群,設置負載均衡CLB類型公網訪問,在新建負載均衡CLB下選擇負載均衡規格,設置網關副本數10,其他配置項保持默認。

    關于配置項的說明,請參見創建入口網關

  5. 單擊高級選項,選中優雅下線,配置連接超時時間(秒),然后單擊創建

    配置項

    說明

    優雅下線

    選中后,當CLB停用時,將不會對網關業務產生影響。

    連接超時時間(秒)

    CLB移除網關Pod后,會等待配置的連接超時時間,然后再斷開與Pod的連接。配置該參數,可以給網關Pod提供一個緩沖時間,來處理現有的連接。網關Pod默認優雅下線時間為30s,CLB側配置的超時時間通常不應該超過30s。

為已有網關啟用優雅下線功能

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

  2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇ASM網關 > 入口網關

  3. 入口網關頁面,單擊目標網關的名稱。

  4. 網關詳情頁面,單擊高級選項,單擊優雅下線右側的修改圖標,選中優雅下線,配置連接超時時間(秒),然后單擊確認

步驟二:部署示例應用

  1. 獲取集群KubeConfig并通過kubectl工具連接集群

  2. 使用以下內容,創建httpbin.yaml

    展開查看httpbin.yaml

    
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: httpbin
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: httpbin
      labels:
        app: httpbin
        service: httpbin
    spec:
      ports:
      - name: http
        port: 8000
        targetPort: 80
      selector:
        app: httpbin
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: httpbin
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: httpbin
          version: v1
      template:
        metadata:
          labels:
            app: httpbin
            version: v1
        spec:
          serviceAccountName: httpbin
          containers:
          - image: docker.io/kennethreitz/httpbin
            imagePullPolicy: IfNotPresent
            name: httpbin
            ports:
            - containerPort: 80
  3. 執行以下命令,部署httpbin應用。

    kubectl apply -f httpbin.yaml -n default

步驟三:創建虛擬服務和網關規則

  1. 創建虛擬服務。

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

    2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇流量管理中心 > 虛擬服務,然后單擊使用YAML創建

    3. 創建頁面,選擇命名空間和任意場景模版,配置以下YAML,然后單擊創建

      apiVersion: networking.istio.io/v1beta1
      kind: VirtualService
      metadata:
        name: httpbin
        namespace: default
      spec:
        gateways:
          - httpbin-gateway
        hosts:
          - '*'
        http:
          - route:
              - destination:
                  host: httpbin
                  port:
                    number: 8000
  2. 創建網關規則。

    1. 在網格詳情頁面左側導航欄,選擇ASM網關 > 網關規則,然后在右側頁面,單擊使用YAML創建

    2. 創建頁面,選擇命名空間和任意場景模版,配置以下YAML,然后單擊創建

      apiVersion: networking.istio.io/v1beta1
      kind: Gateway
      metadata:
        name: httpbin-gateway
        namespace: default
      spec:
        selector:
          istio: ingressgateway
        servers:
          - hosts:
              - '*'
            port:
              name: http
              number: 80
              protocol: HTTP
  3. 驗證路由配置是否成功。

    1. 獲取ASM網關地址,具體操作,請參見創建入口網關

    2. 在瀏覽器地址欄中,輸入http://<ASM網關地址>

      顯示如下,說明路由配置成功。httpbin

步驟四:驗證啟用優雅下線功能后的效果

  1. 根據您使用的操作系統,安裝并下載輕量級壓測工具hey的對應版本。具體操作,請參見hey

  2. 縮容ASM網關。

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

    2. 網格管理頁面,單擊目標實例名稱,然后在左側導航欄,選擇ASM網關 > 入口網關

    3. 入口網關頁面,單擊目標網關右側的查看YAML

    4. 編輯對話框,設置replicaCount的參數值為1,然后單擊確定

      縮容

  3. 執行以下命令,以200并發,50000請求數請求httpbin應用,查看啟用優雅下線功能前后的流量損失情況。

    hey -c 200 -n 50000  -disable-keepalive   http://{ASM網關IP}/

    類型

    結果分析

    未啟用優雅下線功能

    輸出結果如下:

    Status code distribution:
      [200] 49747 responses
    
    Error distribution:
      [253] Get "http://47.55.2xx.xx": dial tcp 47.55.2xx.xx:80: connect: connection refused

    50000個請求中僅49747個請求返回200狀態碼。說明僅49747個請求訪問成功,流量有少量的損失。

    啟用優雅下線功能

    輸出結果如下:

    ............
    Status code distribution:
      [200] 50000 responses

    50000個請求全部返回200狀態碼。說明50000個請求都訪問成功,流量沒有損失。