You need to enable JavaScript to run this app.
导航

ECS 选型最佳实践

最近更新时间2023.06.08 10:12:52

首次发布时间2022.04.08 15:53:16

本节主要介绍使用容器服务(VKE)时如何选择云服务器(ECS)类型以及选择时的注意事项。

集群形态

VKE 的控制组件由云平台托管部署,用户无需关心 Kubernetes 集群 Master 节点的选型和运维工作,只需创建 Worker 节点即可,保障用户能够更多地关注业务本身,具有简单易用、低成本、高可用等特性。

Worker 节点规格选择

实例规格

ECS 提供多种实例规格族,每种实例规格族包含多种实例规格。按照性能可分为通用型、计算型、内存型等。

因实例规格存在新增、售罄下线等情况,故 VKE 创建节点时支持的 ECS 规格类型,建议您登录 容器服务控制台,在目标集群管理控制页的 创建节点池 页面查看。

详细的实例规格族说明,以及实例规格名称格式介绍,请参见 实例选型最佳实践

节点规划

通常 Kubernetes 集群可以被视为将一组单机节点抽象成的一个大的超级节点。该超级节点总的计算资源就是所有组成节点的资源的总和。但是由于调度策略、节点管理消耗等原因可能导致选择不同的节点规格运行业务时节点利用率相差较大,因此选择合适的节点类型来运行业务尤为重要。

选择少量大规格节点运行业务

在资源总量一致的情况下,您可以选择数量少、但大规格的 ECS 作为 Worker 节点运行业务,这种节点选择策略的优势和劣势如下表所示。

优势和劣势说明

优势

  • 更低的管理成本。显而易见的是管理少量机器比管理大量机器更省力。
  • 更低的资源成本。节点数量减少带来操作系统等额外开销减少。
  • 允许运行资源饥饿型应用。例如您有一个需要 8 GB 内存的机器学习应用程序,则无法在仅具有 1 GB 内存的节点的集群上运行它。但您可以在具有 10 GB 内存节点的集群上运行它。

劣势

  • 由于单个节点运行的容器更多,节点故障时对业务影响较大。
  • 容器部署密度的提升带来节点稳定性下降。
  • 节点数量较少时给应用 HA 反亲和部署带来困难,变相降低整体业务系统可靠性。
  • 节点弹性伸缩场景容易造成资源浪费。

选择大量小规格节点运行业务

在资源总量一致的情况下,您可以选择数量较多、但小规格 ECS 作为 Worker 节点运行业务,这种节点选择策略的优势和劣势如下表所示。

优势和劣势说明

优势

  • 节点故障时危害半径较小。
  • 方便应用反亲和部署,提升应用可靠性。
  • 弹性伸缩场景资源浪费较少,但风险是可能需要多次弹性从而导致业务抖动。
  • 容器部署密度小场景下节点稳定性相对较高。

劣势

  • 节点数提升带来管理节点压力和管理成本。
  • 节点数量提升导致基础消耗增大,例如 kubelet、docker、cAdvisor、监控日志采集客户端等。
  • 由于节点资源碎片造成整体资源利用率下降。

建议事项

没有绝对通用的方法来选择合适的节点,因此需要您根据业务特点综合考虑小规格、大规格节点的优劣势来选择接节点类型。

常见的经验如下:

  • 确定整个集群的正常状态下的资源需求总核数以及为保证可用性的冗余度。
    例如业务峰值的负荷不超过 144 核,并且需要保留 10% 的冗余度,算得总的核数需求为 144/90%=160核,那么可以选择 10 台 16 核 ECS。这样如果有一台 ECS 出现故障,剩余 ECS 仍可以支持现有业务正常运行。当然您也可以选择通过弹性伸缩的方式来实现可用性的保障,详情参见 弹性伸缩
  • 依据业务对计算存储网络等的要求及开发语言进行分类:节点分为计算型(CPU 内存比 1:2 左右)、内存型(CPU 内存比 1:8)、通用型(CPU 内存比 1:4)等,业务也可以依据对于计算、存储、网络等资源的需要情况区分为计算密集型、IO 密集型等匹配选择合适的节点类型。例如 Java 类应用通常内存占用较高,建议考虑使用 CPU 内存比例为 1:8 的机型。

实例规格应用场景

alt

VPC-CNI 集群下选型注意事项

如果您在创建集群时选择使用 VPC-CNI 网络方案,您需要额外关注以下内容。

场景说明

VPC-CNI 网络方案是 VKE 基于 CNI 和 私有网络 VPC 弹性网卡(ENI)实现的容器网络能力,将原生的弹性网卡分配给 Pod 实现 Pod 网络。在该网络模式下,容器网络与节点网络同处于一个网络平面,容器 IP 为 IPAMD 组件所分配的弹性网卡 IP(ENI 辅助 IP),适用于对时延有较高要求的场景。

注意事项

  • 每个 ECS 实例可以具有多个弹性网卡(ENI),每个 ENI 可以具有多个 IP 地址。
  • 不同规格的 ECS 实例具备的弹性网卡(ENI)的数量不同,单网卡可绑定的辅助 IP 数量不同。
  • 每个 Pod 需要一个可用的辅助 IP 地址,Pod 数量受限于节点可绑定的网卡数量和单网卡可绑定的 IP 数量,默认情况下,单节点 Pod 数量上限 = (最大可绑定辅助网卡数 × 单网卡可绑定辅助 IP 数)+ 1,其中 1 代表系统为 CNI POD 预留位置。
  • ECS 的最大弹性网卡数量和单卡可绑定辅助 IP 数可参见 实例规格介绍

节点 Pod 数量限制

下表为通用平衡增强型 g1ie 实例规格表,更多规格介绍可参见 实例规格介绍

其中 ecs.g1ie.large 实例弹性网卡数量为 2,包含 1 张主网卡,则最大可绑定辅助网卡数为 1,单网卡私有 IP 为 6。即采用 ecs.g1ie.large 实例作为节点,单节点至多承载 Pod 数量为:最大可绑定辅助网卡数 × 单网卡可绑定辅助 IP 数 + 系统预留 Pod 数,即 1 × 6 + 1 = 7 个

实例规格vCPU内存(GiB)弹性网卡(包括一张主网卡)单网卡私有IP
ecs.g1ie.large2826
ecs.g1ie.xlarge416410
ecs.g1ie.2xlarge832410
ecs.g1ie.4xlarge1664820
ecs.g1ie.6xlarge2496820
ecs.g1ie.8xlarge32128820
ecs.g1ie.14xlarge58224820