Upgrade to Pro — share decks privately, control downloads, hide ads and more …

カスタムメトリクスでサービスの拡張を行い、Eコマースのトラフィックスパイクを効率的に管理するた...

カスタムメトリクスでサービスの拡張を行い、Eコマースのトラフィックスパイクを効率的に管理するためのKEDA / KEDA for scaling services with custom metrics to manage e-commerce traffic spikes efficiently.

このセッションでは、KEDA(Kubernetes Event-driven Autoscaler)を使用してカスタムメトリクスに基づいてKubernetesのポッドをスケールし、eコマースシステムでのトラフィックスパイクを効率的に管理する方法を探ります。従来のHorizontal Pod Autoscaler(HPA)の限界を強調し、KEDAの利点を紹介し、eコマース環境での実装事例を提示します。迅速なスケーリングとコスト削減の利点についても議論します。

More Decks by LINEヤフーTech (LY Corporation Tech)

Other Decks in Technology

Transcript

  1.  /BNF  $PNQBOZ   3PMF  1SPEVDU *OUSPEVDUJPO

    "CPVU.F $POUBDU  &NBJM BSOJXBUUD!MJOFDPSQDPN  (JUIVCQSVFLL  -JOLFEJOJOBSOJXBUUDIPOLJBUUJQPPN "SOJXBUU 1SVFL $IPOLJBUUJQPPN -JOF$PNQBOZ5IBJMBOE 4JUF3FMJBCJMJUZ&OHJOFFS &DPNNFSDF5IBJMBOE
  2. 5IF$IBMMFOHFPG&DPNNFSDF5SBGGJD 4QJLFT ⎯ 'MBTI4BMFT1SPNPUJPOT ⎯ )PMJEBZ4FBTPOT ⎯ .BSLFUJOH$BNQBJHOT ⎯ (FPHSBQIJD-PBE4IJGUT

    5SBGGJDJTPGUFO VOQSFEJDUBCMF ⎯  TFDPOEMPBEUJNFDVTUPNFS BCBOEPONFOU ⎯ 0VUBHF3FWFOVF-PTT ⎯ &UD *NQBDU
  3. ,&%"$VTUPN.FUSJDT ⎯ .FTTBHF2VFVF-FOHUI ⎯ "DUJWF6TFS4FTTJPOT ⎯ 1FOEJOH1BZNFOUT ⎯ "1*(BUFXBZ3FRVFTU3BUF ⎯

    %BUBCBTF$POOFDUJPO1PPM6UJMJ[BUJPO ⎯ *OWFOUPSZ)PME$PVOU $VTUPN.FUSJDT"SF/FFEFE
  4. ,&%"%FFQ%JWF apiVersion: autoscaling/v2beta1 kind: HorizontalPodAutoscaler metadata: name: order-processor spec: scaleTargetRef:

    apiVersion: apps/v1 kind: Deployment name: order-processor minReplicas: 2 maxReplicas: 20 ... 5SBEJUJPOBM"VUPTDBMJOH HPA metrics: - type: Resource resource: name: memory targetAverageUtilization: 100 - type: Resource resource: name: cpu targetAverageUtilization: 100
  5. ,&%"%FFQ%JWF 5SBEJUJPOBM"VUPTDBMJOH metrics: - type: Resource resource: name: cpu targetAverageUtilization:

    100 desiredReplicas = ceil(1 x 11.4 / 100) = ceil(0.114) = 1 desiredReplicas = ceil(1 x 241 / 100) = ceil(2.41) = 3
  6. ,&%"%FFQ%JWF pollingInterval: 30 # How often KEDA checks the metric

    (seconds) cooldownPeriod: 300 # How long to wait before scaling down (seconds) triggers: - type: memory metricType: Utilization metadata: value: ”100" - type: cpu metricType: Utilization metadata: value: ”100" )1"UP4DBMFE0CKFDU Scalers apiVersion: keda.sh/v1alpha1 kind: ScaledObject metadata: name: order-processor-scaler spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: order-processor-deployment minReplicaCount: 2 maxReplicaCount: 20 ...
  7. triggers: - type: memory metricType: Utilization metadata: value: ”100" -

    type: cpu metricType: Utilization metadata: value: ”100” - type: prometheus metadata: serverAddress: http://prometheus.cattle-monitoring-system:9090 metricName: istio_requests_total query: sum(increase(istio_requests_total{destination_app=”order-processor"}[1m])) threshold: "50.00" ,&%"%FFQ%JWF 4DBMFE0CKFDU XJUIDVTUPNTDBMFST Scalers
  8. ,&%"%FFQ%JWF 4DBMFE0CKFDU XJUIDVTUPNTDBMFST - type: prometheus metadata: metricName: istio_requests_total threshold:

    "5000" desiredReplicas = ceil(1 x 4510 / 5000) = ceil(0.902) = 1 desiredReplicas = ceil(1 x 16000 / 5000) = ceil(3.2) = 4