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

ASM Playground-Peak EWMA負(fù)載均衡場(chǎng)景

更新時(shí)間:

本文介紹如何通過ASM Playground創(chuàng)建Peak EWMA負(fù)載均衡場(chǎng)景,并演示場(chǎng)景中標(biāo)準(zhǔn)的交互流程。

重要

本文內(nèi)容依賴于您對(duì)ASM Playground概述的理解。開始閱讀前,請(qǐng)確保您已經(jīng)閱讀并理解了其相關(guān)的內(nèi)容。

場(chǎng)景簡(jiǎn)介

Peak EWMA負(fù)載均衡是ASM推出的基于后端狀態(tài)加權(quán)進(jìn)行流量分配的負(fù)載均衡器,該負(fù)載均衡器可以在端點(diǎn)狀態(tài)發(fā)生異常時(shí)主動(dòng)將異常(延遲升高、請(qǐng)求失敗)端點(diǎn)暫時(shí)權(quán)重降低,從而提升應(yīng)用整體的延遲和成功率表現(xiàn)。這種特性使得EWMA負(fù)載均衡器在應(yīng)對(duì)后端突發(fā)異常時(shí)有著顯著更優(yōu)于傳統(tǒng)負(fù)載均衡器的表現(xiàn),本場(chǎng)景將部署simple-server應(yīng)用,該應(yīng)用通過Deployment部署了兩個(gè)版本,其中simple-server-normal是正常的版本,simple-server-high-latency則是會(huì)偶發(fā)高延遲的版本,通過切換負(fù)載均衡算法并發(fā)起測(cè)試流量,我們將通過監(jiān)控面板直觀地感受到Peak EWMA負(fù)載均衡器和默認(rèn)負(fù)載均衡器LEAST_REQUEST在應(yīng)用偶發(fā)延遲升高場(chǎng)景下的表現(xiàn)差異,本場(chǎng)景的完整調(diào)用鏈和部署拓?fù)淙缦拢?/p>image

創(chuàng)建場(chǎng)景

您可以使用Playground ID: ewmaLb創(chuàng)建本場(chǎng)景。具體操作,請(qǐng)參見創(chuàng)建Playground

場(chǎng)景交互方法

通過ASM Playground CR與場(chǎng)景交互

您可以通過ASMPlayground CR控制Playground實(shí)例,本場(chǎng)景提供了如下配置:

字段

類型

描述

spec.scene.ewmaLb.testTrafficStartTimestamp

int64

測(cè)試流量發(fā)起時(shí)間戳,修改該值為當(dāng)前時(shí)間戳可以發(fā)起測(cè)試流量(也可以是非0的任意數(shù)字,但必須是與上次不同過的數(shù)字),如果該值不存在,手動(dòng)添加即可。

spec.scene.ewmaLb.enableEwmaForSimpleServer

bool

是否為simple-server服務(wù)啟用Peak EWMA負(fù)載均衡器,如果設(shè)置為true,ASMPlayground控制器將為simple-server服務(wù)創(chuàng)建DestinationRule,并將負(fù)載均衡算法配置為PEAK_EWMA。如果設(shè)置為false,將不部署DestinationRule,此時(shí)采用默認(rèn)的LEAST_REQUEST算法進(jìn)行負(fù)載均衡。

場(chǎng)景交互示例

這里給出本場(chǎng)景交互過程的標(biāo)準(zhǔn)流程,您可以參考以下流程體驗(yàn)本場(chǎng)景,也可以根據(jù)需求任意修改ASMPlayground CR與當(dāng)前場(chǎng)景互動(dòng)。本示例將按照以下流程進(jìn)行演示:

  1. 發(fā)起測(cè)試流量,此時(shí)使用默認(rèn)負(fù)載均衡器。

  2. 查看監(jiān)控面板。

  3. 修改ASMPlayground CR,將spec.scene.ewmaLb.enableEwmaForSimpleServer改為true,為simple-server服務(wù)啟用Peak EWMA負(fù)載均衡。

  4. 再次發(fā)起測(cè)試流量,并與之前的測(cè)試結(jié)果進(jìn)行對(duì)比。

步驟一:使用默認(rèn)負(fù)載均衡器發(fā)起測(cè)試流量

  1. 使用Playground實(shí)例的kubeconfig,執(zhí)行以下命令。

    kubectl edit asmplayground default

    spec.scene.ewmaLb.testTrafficStartTimestamp設(shè)置為1(該值設(shè)置為時(shí)間戳,或任意不重復(fù)的數(shù)字,都可以發(fā)起測(cè)試流量),修改完成后保存退出。

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: ASMPlayground
    metadata:
      name: default
    spec:
      scene:
        ewmaLb:
          testTrafficStartTimestamp: 1
  2. 執(zhí)行以下命令,查看Pod信息。

    kubectl get pod

    預(yù)期輸出:

    NAME                                          READY   STATUS      RESTARTS   
    curl-job-npgbd                                2/2     Running     0          
    simple-server-high-latency-7968d5978b-cnrqt   2/2     Running     0          
    simple-server-normal-66bd9d546-kvn2m          2/2     Running     0          

    可以看到前綴為curl-job的Pod啟動(dòng),說明測(cè)試流量已經(jīng)發(fā)起,該P(yáng)od將持續(xù)發(fā)起5分鐘的測(cè)試流量,對(duì)simple-server服務(wù)進(jìn)行訪問。

步驟二:查看監(jiān)控面板

  1. curl-job產(chǎn)生測(cè)試流量期間,您可以通過內(nèi)置在Playground實(shí)例中的Grafana監(jiān)控面板查看響應(yīng)時(shí)間,Grafana通過Playground實(shí)例的3000端口暴露于公網(wǎng),您可以使用Playground實(shí)例的kubeconfig,執(zhí)行以下命令獲取Grafana訪問地址。

    kubectl -n istio-system get svc istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}:3000'

    預(yù)期輸出:

     xxx.xxx.xxx.xxx:3000

    使用該地址訪問Grafana控制臺(tái),點(diǎn)擊Dashboards > Istio > Istio Workload Dashboard,打開工作負(fù)載監(jiān)控面板,按照以下設(shè)置配置過濾器:

    • datasource: Prometheus

    • Namespace: default

    • Workload: curl-job

    • Reporter: source & destination

    • Inbound Workload Namespace: All

    • Inbound Workload: All

    • Destination Service: simple-server.default.svc.cluster.local

    image

  2. 查看Outbound Services欄目下的Dashboards,可以看到,自curl-job發(fā)往simple-server服務(wù)的流量P95會(huì)間歇性超過1s,這是因?yàn)椴糠至髁勘回?fù)載均衡算法打到了高延遲的端點(diǎn)(由simple-server-high-latency Deployment部署的Pod)。

    image

步驟三:?jiǎn)⒂肞eak EWMA負(fù)載均衡器

  1. 使用Playground實(shí)例的kubeconfig,執(zhí)行以下命令。

    kubectl edit asmplayground default

    spec.scene.ewmaLb.enableEwmaForSimpleServer設(shè)置為true,修改完成后保存退出。

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: ASMPlayground
    metadata:
      name: default
    spec:
      scene:
        ewmaLb:
          testTrafficStartTimestamp: 1
          enableEwmaForSimpleServer: true
    status:
      scene:
        ewmaLb:
          testTrafficStartTimestamp: 1
  2. 執(zhí)行以下命令,獲取目標(biāo)規(guī)則配置。

    kubectl get destinationrule -o yaml

    預(yù)期輸出:

    apiVersion: v1
    items:
    - apiVersion: networking.istio.io/v1beta1
      kind: DestinationRule
      metadata:
        creationTimestamp: "2024-07-18T01:33:26Z"
        generation: 1
        labels:
          provider: asm
        name: simple-server
        namespace: default
        resourceVersion: "134230265"
        uid: bafdcd48-a90c-4b68-8517-9dbc99dcb94e
      spec:
        host: simple-server.default.svc.cluster.local
        trafficPolicy:
          loadBalancer:
            simple: PEAK_EWMA
    kind: List
    metadata:
      resourceVersion: ""

    可以看到實(shí)例中已經(jīng)部署了名為simple-server的DestinationRule,并指定了loadBalancer為PEAK_EWMA

步驟四:再次發(fā)起測(cè)試流量并與之前的測(cè)試結(jié)果對(duì)比

再次執(zhí)行步驟一:使用默認(rèn)負(fù)載均衡器發(fā)起測(cè)試流量中的步驟發(fā)起測(cè)試,并參考步驟二:查看監(jiān)控面板查看測(cè)試結(jié)果。

image

可以看到,請(qǐng)求的P95顯著下降,這是由于當(dāng)Peak EWMA負(fù)載均衡器檢測(cè)到某個(gè)端點(diǎn)有延遲/錯(cuò)誤率升高的情況,會(huì)在一段時(shí)間內(nèi)降低這個(gè)端點(diǎn)的權(quán)重,從而使更多請(qǐng)求被路由到負(fù)載正常的端點(diǎn),使得服務(wù)總體的Latency降低,服務(wù)整體的表現(xiàn)有顯著改善。