本文介绍创建集群时如何合理地选择与规划网络配置以及节点规格等。
网络插件
新版 AKS 在对接 ACK 后,创建集群时,需要在网络配置中选择启动用的网络插件,支持 Flannel 和 Terway 网络插件。
Flannel:使用的是简单稳定的社区的 Flannel CNI 插件,配合阿里云 VPC 的高速网络,能给集群高性能和稳定的容器网络体验,但功能偏简单,支持的特性少,如不支持基于 Kubernetes 标准的网络策略。
Terway:ACK 版自研的网络插件,将阿里云的弹性网卡分配给容器,支持基于 Kubernetes 标准的网络策略来定义容器间的访问策略,支持对单个容器做带宽的限流。
因此,建议根据业务实际需求,如不需要使用网络策略,可选择 Flannel 网络插件。其他情况,则建议选择 Terway 网络插件,详见 如何使用 Terway 网络插件。
Terway Pod 地址
Terway Pod 地址空间大小,建议根据 Pod 数量定义。另外,地址不要与 Node 地址以及其他内网地址冲突。
节点规格
从实践经验来看,节点与 Pod 的比例一般 1:4 到 1:6 都有。以通用 Java 应用 4c 为例,节点可能 16c - 64c 都有。但是,如果您选择使用 Terway 网络插件,建议选择较高规格和较新类型的 ECS 机型,需要考虑到 ECS Node 上 ENI 弹性网卡的数量。单节点所支持的最大 Pod 数取决于该节点的弹性网卡(ENI)数。
共享 ENI 支持的最大 Pod 数 =(ENI 数-1)×单 ENI 的私有 IP 数
独占 ENI 支持的最大 Pod 数 = ENI 数-1
大多数情况下,节点上可支持的 Pod 数量,通常会远超过 20,所以问题不大。
总体而言,在选择 Worker 节点规格时,主要考虑以下两个因素:
确定整个集群的日常使用的总核数以及可用度的容忍度。例如:集群总的核数有 160 核,可以容忍 10% 的错误。那么最小选择 10 台 16 核 ECS,并且高峰运行的负荷不要超过 160*90%=144 核。如果容忍度是 20%,那么最小选择 5 台 32 核 ECS,并且高峰运行的负荷不要超过 160*80%=128 核。这样就算有一台 ECS 出现故障,剩余 ECS 仍可以支持现有业务正常运行。
确定 CPU:Memory 比例。对于使用内存比较多的应用例如 Java 类应用,建议考虑使用 1:8 的机型。
使用大规格 ECS 的优势如下:
网络带宽大,对于大带宽类的应用,资源利用率高。
容器在一台 ECS 内建立通信的比例增大,减少网络传输。
拉取镜像的效率更高。因为镜像只需要拉取一次就可以被多个容器使用。而对于小规格的 ECS 拉取镜像的次数就会增多,若需要联动 ECS 伸缩集群,则需要花费更多的时间,反而达不到立即响应的目的。