文档

ACK集群虚拟节点调度方案对比及介绍

更新时间:

针对虚拟节点,ACK托管集群(Pro版和基础版)和ACK专有集群支持的调度方式不同,且有其特定的使用场景,例如直接指定Pod只调度到虚拟节点、跨可用区打散等。您可以依据调度场景以及集群类型,参考本文选择合适的调度方式。

常见虚拟节点调度场景

  1. 只调度到虚拟节点。

  2. 在ECS节点资源不足时,将Pod调度到虚拟节点。

ACK集群基础版中,调度场景1推荐您使用label alibabacloud.com/eci=true完成,调度场景2推荐您升级到ACK集群Pro版,来获取更丰富的产品层次能力,以支持更高等级可靠性、SLA和更大集群容量。ACK支持ACK集群基础版无缝迁移到ACK集群Pro版。相关操作,请参见 热迁移ACK集群基础版至ACK集群Pro版

注意事项

  • 不推荐您使用virtual-kubelet-autoscaler、ElasticWorkload以及ElasticResource的(annotations:alibabacloud.com/burst-resource),这些组件或注解处于非活跃开发状态。

  • ACK集群基础版升级到ACK集群Pro版后,推荐您卸载virtual-kubelet-autoscaler组件。安装组件会占用节点资源,推荐您基于Kubernetes原生调度语义实现ECI Pod的打散部署及亲和部署。具体操作,请参见实现ECI Pod可用区打散以及亲和调度

方案对比及选型建议

关于表格中一些字段的说明:

  • 优先级调度:指Pod调度到不同节点集合的调度优先级是可编排的,您可以进行可控制的策略调度。例如优先调度到ECS节点,ECS节点不足使调度到虚拟节点。

  • 不支持:无法对不同节点集合进行优先级编排。例如通过alibabacloud.com/eci=true只能将指定Pod调度到虚拟节点,无法将Pod优先调度到ECS,资源不足时调度到虚拟节点。

ACK集群基础版ACK专有集群

调度方式

典型场景

优先级调度

优先缩容ECI Pod

是否推荐使用

相关操作文档

labels: alibabacloud.com/eci=true

只调度到虚拟节点。

不支持

支持

推荐。

通过虚拟节点将Pod调度到ECI上运行

UnitedDeployment

将Deployment副本分组调到ECS节点或虚拟节点。

支持

(还支持针对应用副本数制定弹性策略,例如,副本数10以内优先使用包年包月的ECS资源,超出10个不超出20个的使用Spot资源,超出20个的再使用ECI资源。)

支持

推荐。

Kubernetes原生调度语义

nodeSelector

添加Toleration后,只调度到虚拟节点上。

不支持

支持

不推荐

相比于ACK集群Pro版ACK集群基础版ACK专有集群中的kube-scheduler,在Pod调度中无法感知底层库存情况,所以生产成功的确定性会降低。

nodeSelector

亲和性与反亲和性

通过Toleration和节点亲和性,实现ECS节点资源不足时调度到虚拟节点等能力,是一种弹性调度策略(非严格)。

支持

支持

Affinity and anti-affinity

Pod拓扑分布约束

跨可用区打散,实现高可用和高性能调度需求。

不支持

支持

Pod topology spread constraints

ElasticWorkload

将Deployment副本分组调到ECS或虚拟节点。

支持

(还支持针对应用副本数制定弹性策略。)

支持

不推荐。

非活跃开发状态,建议使用UnitedDeployment。

安装Elastic Workload

ElasticResource(annotations:alibabacloud.com/burst-resource)

  • ECS节点资源不足时调度到虚拟节点。

  • 只调度到虚拟节点。

支持

(仅支持指定的弹性调度策略:eci、eci_only)

支持

不推荐。

非活跃开发状态。

使用ECI弹性调度

virtual-kubelet-autoscaler

ECS节点资源不足时调度到虚拟节点。

支持

(仅支持优先调度到ECS节点再虚拟节点)

支持

不推荐。

非活跃开发状态。

将调度失败的Pod重新调度到ECI

ACK集群Pro版

调度方式

典型场景

优先级调度

优先缩容ECI Pod

是否推荐使用

相关操作文档

labels: alibabacloud.com/eci=true

只调度到虚拟节点。

不支持

支持

推荐。

通过虚拟节点将Pod调度到ECI上运行

kubernetes原生调度语义

nodeSelector

添加Toleration后,只调度到虚拟节点上。

不支持

支持

推荐。

nodeSelector

亲和性与反亲和性

通过Toleration和节点亲和性,实现ECS节点资源不足时调度到虚拟节点等能力,是一种弹性调度策略(非严格)。

支持

支持

推荐。

指定ECS和ECI的资源分配

Pod拓扑分布约束

跨可用区打散,实现高可用和高性能调度需求。

不支持

支持

推荐。

实现ECI Pod可用区打散以及亲和调度

ResourcePolicy

  • 基于节点池的优先级调度(严格)。

  • 应用发布或扩容过程中,设置应用Pod被调度到不同类型节点资源的顺序。同时,在缩容过程中按照原调度顺序逆序缩容。

支持

支持

(能力增强:支持按原调度顺序逆序缩容)

推荐。

自定义弹性资源优先级调度

UnitedDeployment

将Deployment副本分组调到ECS或虚拟节点。

支持

(还支持针对应用副本数制定弹性策略,例如,副本数10以内优先使用包年包月的ECS资源,超出10个不超出20个的使用Spot资源,超出20个的再使用ECI资源。)

支持

推荐。

ECS、ECI资源混合使用场景

ElasticWorkload

将Deployment副本分组调到ECS或虚拟节点。

支持

(还支持针对应用副本数制定弹性策略。)

支持

不推荐

非活跃开发状态,建议使用UnitedDeployment。

安装Elastic Workload

ElasticResource(annotations:alibabacloud.com/burst-resource)

  • ECS节点资源不足时调度到虚拟节点。

  • 只调度到虚拟节点。

支持

(只能使用指定的弹性调度策略:eci、eci_only)

支持

不推荐。

非活跃开发状态。

使用ECI弹性调度

virtual-kubelet-autoscaler

ECS节点资源不足时调度到虚拟节点。

支持

(仅支持优先调度到ECS节点再虚拟节点)

支持

不推荐。

非活跃开发状态。

将调度失败的Pod重新调度到ECI

  • 本页导读
文档反馈