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

容器水平伸縮(HPA)

容器服務ACK支持在控制臺界面上快速創建支持HPA的應用,實現容器資源的彈性伸縮。您也可通過定義HPA(Horizontal Pod Autoscaling)的YAML來進行配置。

前提條件

通過容器服務控制臺創建HPA應用

  1. 登錄容器服務管理控制臺

  2. 在控制臺左側導航欄,單擊集群

  3. 集群列表頁面,單擊目標集群名稱或者目標集群右側操作列下的詳情

  4. 在集群管理頁左側導航欄,選擇工作負載 > 無狀態

  5. 無狀態頁面單擊使用鏡像創建

  6. 應用基本信息頁填寫應用的名稱等信息,然后單擊下一步

    配置項

    描述

    命名空間

    在頁面頂部設置應用部署所處的命名空間,默認使用default命名空間。

    應用名稱

    設置應用的名稱。

    副本數量

    即應用包含的Pod數量,默認數量為2。

    類型

    定義資源對象的類型,可選擇無狀態有狀態任務定時任務守護進程集

    標簽

    為該應用添加一個標簽,標識該應用。

    注解

    為該應用添加一個注解(annotation)。

    時區同步

    僅ACK集群支持配置此參數,ACK Serverless集群不支持。表示容器與節點是否使用相同的時區。

  7. 容器配置頁進行容器設置,選擇鏡像,并設置所需的資源。然后單擊下一步。詳情請參見配置容器

    說明

    您必須為Deployment設置所需資源,否則無法進行容器自動伸縮。

  8. 高級設置頁的訪問設置區域,單擊服務的創建,設置服務的相關信息,詳情請參見高級設置

  9. 高級設置頁選中指標伸縮開啟,設置伸縮的條件和配置。

    • 指標:支持CPU和內存,需要和設置的所需資源類型相同。

    • 觸發條件:資源使用率的百分比,超過該使用量,容器開始擴容。有關Pod水平自動擴縮的算法,請參見算法細節

    • 最大副本數:該Deployment可擴容的容器數量上限。

    • 最小副本數:該Deployment可縮容的容器數量下限。

  10. 單擊右下角的創建,一個支持HPA的Deployment就已經創建完畢。

結果驗證

  1. 單擊查看應用詳情或者在工作負載 > 無狀態中單擊應用名稱操作列的詳情,單擊容器伸縮,您可在部署的詳情中查看伸縮組信息。

  2. 在實際使用環境中,應用會根據CPU負載進行伸縮。您也可在測試環境中驗證彈性伸縮,通過給Pod進行CPU壓測,可以發現Pod在半分鐘內即可完成水平的擴展。

通過kubectl命令創建HPA應用

您也可通過編排模板來手動創建HPA,并將其綁定到要伸縮的Deployment對象上,通過kubectl命令實現容器自動伸縮配置。

下面針對一個Nginx應用進行舉例。

  1. 創建并復制以下內容到nginx.yml中。

    Deployment的編排模板如下。

    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: nginx
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx  
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:1.7.9 # replace it with your exactly <image_name:tags>
            ports:
            - containerPort: 80
            resources:
              requests:                         ##必須設置,不然HPA無法運行。
                cpu: 500m
  2. 執行以下命令,創建Nginx應用。

    kubectl create -f nginx.yml
  3. 創建HPA。

    通過scaleTargetRef設置當前HPA綁定的對象,在本例中綁定名叫nginx的Deployment。

    集群版本為1.24及以下的YAML詳細信息

    apiVersion: autoscaling/v2beta2
    kind: HorizontalPodAutoscaler
    metadata:
      name: nginx-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: nginx
      minReplicas: 1
      maxReplicas: 10
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50
                   

    集群版本為1.26的YAML詳細信息

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: nginx-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: nginx
      minReplicas: 1
      maxReplicas: 10
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50
                   
    說明

    HPA需要給Pod設置request資源,如果沒有request資源,HPA不會運行。

  4. 執行kubectl describe hpa <HPA的名稱>會發現有類似以下的警告信息。

    Warning  FailedGetResourceMetric       2m (x6 over 4m)  horizontal-pod-autoscaler  missing request for cpu on container nginx in pod default/nginx-deployment-basic-75675f5897-mqzs7
    
    Warning  FailedComputeMetricsReplicas  2m (x6 over 4m)  horizontal-pod-autoscaler  failed to get cpu utilization: missing request for cpu on container nginx in pod default/nginx-deployment-basic-75675f5
  5. 創建好HPA后,再次執行kubectl describe hpa <HPA的名稱>命令。

    可以看到以下信息,則表示HPA已經正常運行。

    Normal SuccessfulRescale 39s horizontal-pod-autoscaler New size: 1; reason: All metrics below target

    此時當Nginx的Pod的利用率超過本例中設置的50%利用率時,則會進行水平擴容,低于50%的時候會進行縮容。