云容器实例 CCI-CCE容器实例弹性伸缩到CCI服务:使用profile管理线下IDC和云上分配数量

时间:2024-01-16 17:11:33

使用profile管理线下IDC和云上分配数量

使用profile配置管理集群内pod,通过labelSelector类方式关联profile和pod,并配置关联pod的分配策略,实现pod在线下IDC和云上的分配或数量限制。

约束与限制

  • 客户可通过Profile配置管理集群内pod策略,仍兼容原有pod的label内burst-to-cci的配置方式,优先级比profile高。
  • localPrefer不可同时配置local、cci。
  • auto和localPrefer策略允许关联未被profile关联过的pod,enforce策略不允许关联未被profile关联过的pod。
  • 目前profile在配置localPrefer策略下,为避免全局性问题,在极限场景下限制local数量的配置可能会失效。
  • 在deployment滚动升级场景下,推荐配置尽可能小的maxSurge值(如直接配置为0),避免出现升级时限制maxNum的区域调度量少于预期的现象。
  • pod只能关联一个profile,即关联度最大的profile。若pod创建后,对其label进行修改导致与原profile不匹配,pod会重新选择关联度最大的profile进行关联。关联度最大的profile确定方法:
    • 根据profile中obejectLables计算labelSelector内matchLabels的数量及matchExpression的数量之和,和最大的profile即为pod关联度最大的profile;
    • 若出现和相同的profile,选择profile的name字母序最小的profile为pod关联度最大的profile。
  • 不支持使用log-agent插件采集profile管理的负载日志。

使用方式

配置local maxNum和scaleDownPriority
apiVersion: scheduling.cci.io/v1
kind: ScheduleProfile
metadata:
  name: test-cci-profile
  namespace: default
spec:
  objectLabels:
    matchLabels:
      app: nginx
  strategy: localPrefer
  location:
    local: 
      maxNum: 20 # 当前暂不支持local/cci同时配置maxNum
      scaleDownPriority: 10
    cci: {}
status:
  phase: initialized
  restrict:
    local: 20 # restrict内随着location内配置进行填写,即不会同时出现 local/cci
  used:
    local: 20
    cci: 0

配置cci maxNum和scaleDownPriority

apiVersion: scheduling.cci.io/v1
kind: ScheduleProfile
metadata:
  name: test-cci-profile
  namespace: default
spec:
  objectLabels:
    matchLabels:
      app: nginx
  strategy: localPrefer
  location:
    local: {}
    cci:
      maxNum: 20 # 当前暂不支持local/cci同时配置maxNum
      scaleDownPriority: 10
status:
  phase: initialized
  restrict:
    cci: 20 # restrict内随着location内配置进行填写,即不会同时出现 local/cci
  used:
    local: 0
    cci: 20
support.huaweicloud.com/bestpractice-cci/cci_04_0010.html