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

基于ack-autoscaling-placeholder實現容器秒級伸縮

當您需要工作負載快速啟動而無需考慮節點資源問題時,可以考慮使用ack-autoscaling-placeholder組件。ack-autoscaling-placeholder為集群的自動擴展提供了緩沖區,使用優先級非常低(負數)的占位容器來超額配置,以保留其他Pod可以使用的資源。如果集群沒有可用的資源,真正的工作負載也會將占位容器所占用的資源搶占,實現快速啟動,然后結合使用Cluster-Autoscaler,迫使集群進行節點維度的擴展。本文介紹如何使用ack-autoscaling-placeholder實現容器秒級伸縮。

前提條件

您已為ACK集群開通自動伸縮。關于開通自動伸縮的操作步驟,請參見節點自動伸縮

操作步驟

  1. 登錄容器服務管理控制臺,在左側導航欄選擇市場 > 應用市場

  2. 應用目錄頁簽,搜索ack-autoscaling-placeholder,然后單擊ack-autoscaling-placeholder

  3. ack-autoscaling-placeholder頁面,單擊一鍵部署

  4. 創建面板,選擇集群命名空間,然后單擊下一步。選擇Chart版本,編輯參數,然后單擊確定

    創建成功后,在應用 > Helm頁面,可查看到該應用狀態為已部署

  5. 在集群管理頁左側導航欄,選擇應用 > Helm

  6. Helm頁面,單擊ack-autoscaling-placeholder操作列的更新。然后在更新發布面板中,更新YAML,然后單擊確定

    nameOverride: ""
    fullnameOverride: ""
    ##
    priorityClassDefault:
      enabled: true
      name: default-priority-class
      value: -1
    
    ##
    deployments:
       - name: ack-place-holder
         replicaCount: 1
         containers:
           - name: placeholder
             image: registry-vpc.cn-shenzhen.aliyuncs.com/acs/pause:3.1
             pullPolicy: IfNotPresent
             resources:
               requests:
                 cpu: 4                  #資源占位4C8G。
                 memory: 8               
         imagePullSecrets: {}
         annotations: {}
         nodeSelector:                   #節點選擇。
           demo: "yes"  
         tolerations: []
         affinity: {}
         labels: {}
  7. 部署工作負載的PriorityClass。

    本文示例定義一個優先級較高的PriorityClass。

    kubectl apply -f priorityClass.yaml
    apiVersion: scheduling.k8s.io/v1
    kind: PriorityClass
    metadata:
      name: high-priority
    value: 1000000              #配置優先級。
    globalDefault: false
    description: "This priority class should be used for XYZ service pods only."
  8. 部署實際的工作負載。

    kubectl apply -f workload.yaml
    apiVersion: apps/v1 
    kind: Deployment
    metadata:
      name: placeholder-test
      labels:
        app: nginx
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          nodeSelector:                        #節點選擇。
            demo: "yes"
          priorityClassName: high-priority     #這里寫入第8步配置的PriorityClass名稱。
          containers:
          - name: nginx
            image: nginx:1.7.9 
            ports:
            - containerPort: 80
            resources:       
              requests:      
                cpu: 3                         #實際負載的資源需求。
                memory: 5

    從下圖可以看到,實際工作負載由于Pod配置了高優先級的PriorityClass。當節點資源不足時,會將占位容器placeHolder進行驅逐,此時占位容器placeHolder處于Pending狀態。由于集群開通了自動伸縮,此狀態會觸發ACK集群進行擴容。實現了工作負載的秒級彈出pendingrun

相關文檔

多可用區均衡是數據類型業務在高可用場景下常用的部署方式。當業務壓力增大時,有多可用區均衡調度策略的應用希望可以自動擴容出多個可用區的實例來滿足集群的調度水位。詳細信息,請參見多可用區實現同時快速彈性擴容