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

將Knative和AHPA結合實現定時自動擴縮容

AHPA(Advanced Horizontal Pod Autoscaler)可以根據歷史指標(RPS、并發數、CPU、Memory指標)彈性預測未來負載的情況,提前進行彈性規劃,減少彈性滯后的問題,同時也支持根據時間段設置Pod最大和最小副本數。結合Cron表達式,您還可以指定在某些時間區間內,擴縮容區間是什么,即最大最小副本數分別為多少。

前提條件

步驟一:通過AHPA配置彈性指標

您可以參見下方YAML文件創建AHPA配置文件,并部署到集群中。

apiVersion: autoscaling.alibabacloud.com/v1beta1
kind: AdvancedHorizontalPodAutoscalerTemplate
metadata:
  name: ahpa-demo
spec:
  metrics:
  - type: Resource
    resource:
      name: rps
      target:
        type: Utilization
        averageUtilization: 10 # 目前閾值,10表示RPS使用目標閾值是10。
  maxReplicas: 50 # 定義了Pod最大副本數為50。
  minReplicas: 0 # 定義了Pod最小副本數為0。
  prediction:
    quantile: 95 # 表示預測使用95%的置信度進行預測。
    scaleUpForward: 180 # 表示向前預測的時間范圍為180秒。
# 在2023-06-01 00:00:00~2123-06-01 00:00:00這個時間范圍內,Pod副本數的數量將受到AHPAT中定義的最大和最小副本數的限制。
  instanceBounds:
  - startTime: "2023-06-01 00:00:00"
    endTime: "2123-06-01 00:00:00"
    bounds:
# 在0-6小時的時間段內,最小副本數為0,最大副本數為50。
    - cron: '* 0-6 ? * *'
      maxReplicas: 50
      minReplicas: 0
# 在7-9小時的時間段內,最小副本數為5,最大副本數為50。
    - cron: '* 7-9 ? * *'
      maxReplicas: 50
      minReplicas: 5
# 在10-16小時的時間段內,最小副本數為10,最大副本數為50。
    - cron: '* 10-16 ? * *'
      maxReplicas: 50
      minReplicas: 10
# 在17-23小時的時間段內,最小副本數為2,最大副本數為50。
    - cron: '* 17-23 ? * *'
      maxReplicas: 50
      minReplicas: 2

參數

是否必選

說明

metrics

必選

用于配置彈性Metrics 。當前支持RPS、并發數、CPU、Memory指標。

maxReplicas

必選

最大擴容實例數。

minReplicas

必選

最小縮容實例數。

instanceBounds

可選

擴縮容時間段實例數邊界。

  • startTime:開始時間。

  • endTime:結束時間。

bounds

可選

在不同的時間范圍內Pod副本數的最小值和最大值。

  • cron:用于表示時間范圍的格式化字符串。可以配置定時任務。

    如果您需要使用Cron表達式來定義定期運行的任務或自動擴展Pod副本數,請先根據下文Cron表達式中各個字段的詳細說明,熟悉Cron中特殊字符和通配符的含義。

  • maxReplicas:最大副本數。

  • minReplicas:最低副本數。

Cron表達式中各個字段的詳細說明

Cron表達式的字段解釋如下,更多信息,請參見Cron表達式

字段

特定字符

是否必選

說明

分(Minutes)

* / , -

必選

取值范圍為[0,59]。

時(Hours)

* / , -

必選

取值范圍為[0,23]。

日(Day of month)

* / , – ?

必選

取值范圍為[1,31]。

月(Month)

* / , -

必選

取值范圍為[1,12]或者JAN~DEC。

說明

JAN~DEC字段的值不區分大小寫。

星期(Day of week)

* / , – ?

可選

取值范圍為[0,6]或者SUN~SAT。

說明
  • SUN~SAT字段的值不區分大小寫。如:SUN和sun都可表示星期日。

  • 星期(Day of week)字段如果沒提供,相當于是 *

Cron表達式中各個字符代表的意義如下:

  • 星號(*):所有可能的值。例如*表示匹配所有分鐘和小時。

  • 斜杠(/):步長,例如/5表示每隔5個時間單位。

  • 英文半角逗號(,):分隔符,例如1,3,5表示匹配1、3、5等值。

  • 破折號(-)范圍,例如1-5表示匹配1到5。

  • 英文半角問號(?):僅在日(Day of month)和星期(Day of week)字段中使用,表示不指定值。

步驟二:創建Knative服務并指定使用AHPA彈性策略

配置完彈性策略之后,您可以通過Knative服務使用該定時彈性策略。

  1. 登錄容器服務管理控制臺,在左側導航欄選擇集群

  2. 集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇應用 > Knative

  3. Knative頁面的服務管理頁簽下,選擇命名空間default,然后單擊使用模板創建,將以下YAML示例粘貼至模板,最后單擊創建,創建一個名為helloworld-go-demo的服務。

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go-demo
    spec:
      template:
        metadata:
          annotations:
            autoscaling.knative.dev/class: ahpa.autoscaling.knative.dev # 指定AHPA彈性插件。
            autoscaling.knative.dev.alibabacloud/ahpa-template: "ahpa-demo" # 注意這里引用的AHPA模版參數修改時,關聯的revision會自動修改彈性策略。
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73fbdd56
            env:
            - name: TARGET
              value: "Knative"

    服務創建成功后,請獲取并記錄服務網關地址和域名,供步驟三:訪問服務時使用。

    image

步驟三:訪問服務

執行如下命令,訪問服務。

# helloworld-go-demo.default.example.com為服務的默認域名。
# alb-i5lagvip6fga******.cn-shenzhen.alb.aliyuncs.com為服務對應的訪問網關。
curl -H "Host: helloworld-go-demo.default.example.com" http://alb-i5lagvip6fga******.cn-shenzhen.alb.aliyuncs.com

預期輸出:

Hello Knative!

(可選)步驟四:結果驗證

在Knative的監控大盤頁面,可查看Knative服務的實例擴縮容趨勢。關于Knative監控大盤的更多信息,請參見查看Knative服務監控大盤

說明
  • 當Knative應用縮容到0且沒有Pod實例時,Prometheus無法采集Pod的并發請求數、Pod每秒請求數等指標。只有訪問Knative應用Pod后,控制臺才會展示這些指標。

  • 當Knative應用沒有縮容到0時,無需訪問Knative應用Pod,控制臺便會展示Pod的并發請求數、Pod每秒請求數等指標。

image.png

相關文檔

您可以基于Pod并發數、RPS配置自動擴縮容,請參見基于流量請求數實現服務自動擴縮容