云容器引擎 CCE-应用扩缩容优先级策略:自定义应用扩缩容优先级策略

时间:2024-04-23 19:45:32

自定义应用扩缩容优先级策略

BalancerPolicyTemplate 资源用来进行优先级策略定义,如果用户需要自定义应用扩缩容优先级策略,则需要针对其内容进行修改。

如果存在多个BalancerPolicyTemplate资源,扩缩策略执行结果将受到这些资源对象的共同作用。因此,如果用户不存在默认扩缩容优先级策略的应用场景,可以执行如下命令对默认优先级策略进行删除。

kubectl delete balancerpolicytemplate default-balancerpolicytemplate

以“扩容时优先将工作负载调度到HCE2.0操作系统的节点,其次调度到欧拉操作系统的节点;缩容时优先删除欧拉操作系统节点上的工作负载,其次删除HCE2.0操作系统上的工作负载”为例:

  1. 编写新BalancerPolicyTemplate 资源对象。

    vim new-balancerpolicytemplate.yaml
    内容如下:
    apiVersion: autoscaling.volcano.sh/v1alpha1
    kind: BalancerPolicyTemplate
    metadata:
      name: new-balancerpolicytemplate
    spec:
      policy:
        policyName: Priority
        priorities:
          priorityGroups:
          - priority: 10    # 设置欧拉操作系统节点优先级为10
            requirements:
            - key: os.name  # 节点操作系统标签
              operator: In
              values:
              - EulerOS_2.0_SP9x86_64  # 可能涉及操作系统的小版本号,用户可以根据自身场景,任意添加
          - priority: 100   # 设置HCE2.0操作系统节点优先级为100
            requirements:
            - key: os.name  # 节点操作系统标签
              operator: In
              values:
              - Huawei_Cloud_EulerOS_2.0_x86_64

  2. 创建新BalancerPolicyTemplate资源对象。

    kubectl create -f new-balancerpolicytemplate.yaml

  3. 修改default-balancer对象内容,也可以按需进行新建balancer对象

    kubectl edit balancer default-balancer
    修改内容如下:
    apiVersion: autoscaling.volcano.sh/v1alpha1
    kind: Balancer
    metadata:
      name: default-balancer
    spec:
      balancerPolicyTemplateName: new-balancerpolicytemplate
      targets:
      - namespaceSelector:
          matchExpressions:
            - key: kubernetes.io/metadata.name
              operator: Exists
      weight: 10 

  4. 查看各个Pod的注解中openvessel.io/workload-balancer-score对应的值是否满足预期。

    EulerOS节点上Pod的openvessel.io/workload-balancer-score注解对应值是10;HCE2.0节点上的pod 的openvessel.io/workload-balancer-score注解对应值是100。

support.huaweicloud.com/usermanual-cce/cce_10_0746.html