
# CCE集群选型建议
当您使用云容器引擎CCE创建Kubernetes集群时，常常会面对多种配置选项以及不同的名词，难以进行选择。本文将从不同的关键配置进行对比并给出选型建议，帮助您创建一个满足业务需求的集群。
#### 集群类型
云容器引擎支持多种集群类型，以满足您各种业务需求，如下为各类集群区别：
|          集群类型           |                                                                                                                                                                                                                                                               CCE Standard                                                                                                                                                                                                                                                               |                                                                                                                                                                                  CCE Turbo                                                                                                                                                                                  |                       CCE Autopilot                        |
|---|---|---|---|
| **产品定位**                | 标准版本集群，提供高可靠、安全的商业级容器集群服务。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 面向云原生2.0的新一代容器集群产品，计算、网络、调度全面加速。                                                                                                                                                                                                                                                                                                                                            | 无用户节点的Serverless版集群，无需对节点的部署、管理和安全性进行维护，并根据CPU和内存资源用量按需付费。 |
| **使用场景**                | 面向有云原生数字化转型诉求的用户，期望通过容器集群管理应用，获得灵活弹性的算力资源，简化对计算、网络、存储的资源管理复杂度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 适合对极致性能、资源利用率提升和全场景覆盖有更高诉求的客户。                                                                                                                                                                                                                                                                                                                                              | 适合具有明显的波峰波谷特征的业务负载，例如在线教育、电子商务等行业。                         |
| **网络模型**                | 面向性能和规模要求不高的场景，提供以下网络模型： - 容器隧道网络模型  - VPC网络模型   详情请参见[容器网络模型对比](https://support.huaweicloud.com/usermanual-cce/cce_10_0281.html)。 | 云原生网络2.0模型：面向大规模和高性能的场景。 组网规模默认支持2000节点，最大支持20000节点                                                                                                                                                                                                                                                          | 云原生网络2.0模型：面向大规模和高性能的场景。                                   |
| **Pod使用主机端口（hostPort）** | 支持                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 默认不支持，开启DataPlane V2后支持                                                                                                                                                                                                                                                                                                                                                     | 不支持                                                        |
| **网络性能**                | VPC网络叠加容器网络，性能有一定损耗                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | VPC网络和容器网络融合，性能无损耗                                                                                                                                                                                                                                                                                                                                                          | VPC网络和容器网络融合，性能无损耗                                         |
| **容器网络隔离**              | - 容器隧道网络模式：集群内部网络隔离策略，支持NetworkPolicy。  - VPC网络模式：开启DataPlane V2后支持NetworkPolicy，详情请参见[DataPlane V2网络加速说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0945.html)。                             | Pod可直接关联安全组，基于安全组的隔离策略，支持集群内外部统一的安全隔离。 开启DataPlane V2后支持NetworkPolicy，详情请参见[DataPlane V2网络加速说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0945.html)。                                                                                                                                             | Pod可直接关联安全组，基于安全组的隔离策略，支持集群内外部统一的安全隔离。                     |
| **Pod绑定公网IP**           | 不支持                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 支持                                                                                                                                                                                                                                                                                                                                                                          | 支持                                                         |
| ****Pod配置固定IP****       | 不支持                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | StatefulSet工作负载支持，且可以和绑定EIP同时使用，实现固定公网IP                                                                                                                                                                                                                                                                                                                                    | StatefulSet工作负载支持，且可以和绑定EIP同时使用，实现固定公网IP                   |
| **容器资源隔离**              | 普通容器：Cgroups隔离                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | - 安全容器：当前仅物理机支持，提供虚机级别的隔离  - 普通容器：Cgroups隔离   | 提供虚机级别的隔离                                                  |
| **边缘基础设施管理**            | 不支持                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 支持管理边缘云资源，详情请参见[在CCE Turbo分布式集群中使用边缘云资源](https://support.huaweicloud.com/usermanual-cce/cce_10_0840.html)                                                                                                                                                                                                                                                                   | 不支持                                                        |
   
#### 集群版本
由于Kubernetes社区版本迭代较快，新版本中通常包含许多Bug修复和新功能，而旧版本会根据时间推移逐渐淘汰。建议您在创建集群时，选择当前CCE支持的最新商用版本。
关于CCE集群版本的更新策略，请参考[Kubernetes版本策略](https://support.huaweicloud.com/bulletin-cce/cce_bulletin_0033.html)。
 #### 集群网络模型
云容器引擎支持以下几种网络模型，您可根据实际业务需求进行选择。
![](https://support.huaweicloud.com/bestpractice-cce/public_sys-resources/notice_3.0-zh-cn.png)
集群创建成功后，网络模型不可更改，请谨慎选择。
表1网络模型对比 
| **对比维度**       | **容器隧道网络**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | **VPC网络**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | **云原生网络2.0**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| 适用场景           | - 对性能要求不高：由于需要额外的VXLAN隧道封装，相对于另外两种容器网络模式，性能存在一定的损耗（约5%-15%）。所以容器隧道网络适用于对性能要求不是特别高的业务场景，比如：Web应用、访问量不大的数据中台、后台服务等。  - 大规模组网：相比VPC路由网络受限于VPC路由条目配额的限制，容器隧道网络没有网络基础设施的任何限制；同时容器隧道网络把广播域控制到了节点级别，容器隧道网络最大可支持2000节点规模。   | - 性能要求较高：由于没有额外的隧道封装，相比于容器隧道网络模式，VPC网络模型集群的容器网络性能接近于VPC网络性能，所以适用于对性能要求较高的业务场景，比如：AI计算、大数据计算等。  - 中小规模组网：由于VPC路由网络受限于VPC路由表条目配额的限制，建议集群规模为1000节点及以下。                                                                                                                                                                                                                                                                                                                                                                                         | - 性能要求高：由于云原生网络2.0直接使用VPC网络构建容器网络，容器通信不需要进行隧道封装和NAT转换，所以适用于对带宽、时延要求极高的业务场景，比如：线上直播、电商抢购等。  - 大规模组网：云原生网络2.0当前最大可支持2000个ECS节点，10万个Pod。                                                                                                            |
| 核心技术           | OVS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | IPVlan，VPC路由                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | VPC弹性网卡/弹性辅助网卡                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| 适用集群           | CCE Standard集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | CCE Standard集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | CCE Turbo集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| 容器网络隔离         | Pod支持Kubernetes原生NetworkPolicy                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | 否                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | Pod支持使用安全组隔离                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| ELB对接Pod       | ELB对接Pod需要通过节点NodePort转发                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              | ELB对接Pod需要通过节点NodePort转发                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | 使用独享型ELB时可直接对接Pod 使用共享型ELB对接Pod需要通过节点NodePort转发                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| Pod IP地址管理     | - 需设置单独的容器网段。容器网段独立于VPC网段，不能与之重叠。  - 集群创建完成后不支持容器网段扩容。为避免IP地址不足，建议将容器网段掩码最大设置为19位。                                                                                                                                                                                                                                                                             | - 需设置单独的容器网段。容器网段独立于VPC网段，不能与之重叠。  - 支持添加多个容器网段。  - 集群创建完成后支持添加容器网段，详情请参见[扩展VPC网络集群的容器网段](https://support.huaweicloud.com/usermanual-cce/cce_10_0680.html)。  - 分配容器IP地址时，会先从容器网段中为每个节点配置一个固定的子网网段，节点内所有Pod的IP地址从该网段中分配。   | - 直接指定VPC子网作为容器网段。  - 集群创建完成后支持添加容器网段，详情请参见[添加/删除CCE Turbo集群的默认容器子网](https://support.huaweicloud.com/usermanual-cce/cce_10_0906.html)。  - 容器IP地址直接在VPC中分配，因此对VPC的地址消耗较高，建议在使用前规划较大的VPC网段。   |
| 每个节点上可运行的Pod数量 | 取决于节点可以创建的最大实例数，由kubelet的配置参数**maxPods** 决定，详情请参见[节点最大实例数说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0348.html#section2)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | 由以下两个参数中的最小值决定： - 节点可以创建的最大实例数，由kubelet的配置参数**maxPods** 决定，详情请参见[节点最大实例数说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0348.html#section2)。  - 每个节点预留的容器IP个数，详情请参见[节点可分配容器IP数说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0348.html#section1)。                                                                                                                                                                                                                                                                                                                             | 由以下两个参数中的最小值决定： - 节点可以创建的最大实例数，由kubelet的配置参数**maxPods** 决定，详情请参见[节点最大实例数说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0348.html#section2)。  - 节点的网卡数量，详情请参见[CCE Turbo集群节点网卡数量](https://support.huaweicloud.com/usermanual-cce/cce_10_0348.html#section3)。                                      |
| 网络性能           | 基于VxLAN隧道封装，有一定性能损耗。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 无隧道封装，跨节点通过VPC路由器转发，性能较好，可媲美主机网络，但存在NAT转换损耗。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             | 容器网络与VPC网络融合，性能无损耗。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| 组网规模           | 最大可支持2000节点                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | 受限于VPC路由表能力，适合中小规模组网，建议规模为1000节点及以下。 VPC网络模式下，集群每添加一个节点，会在VPC的路由表中添加一条路由（包括默认路由表和自定义路由表），因此集群本身规模受VPC路由表上限限制，创建前请提前评估集群规模。路由表配额请参见[使用限制](https://support.huaweicloud.com/productdesc-vpc/overview_0003.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 默认支持2000节点，最大支持20000节点 由于云原生网络2.0集群中的容器从VPC网段内分配IP地址，消耗VPC的地址空间，实际支持规模受限于VPC子网网段大小，因此创建前请提前评估集群规模。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| 同时支持IPv4/IPv6  | 支持创建IPv4/IPv6双栈集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | 不支持                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | 支持创建IPv4/IPv6双栈集群                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
如需了解更多信息，请参见[容器网络模型对比](https://support.huaweicloud.com/usermanual-cce/cce_10_0281.html)。
#### 集群网段
集群中网络地址可分为节点网络、容器网络、服务网络三块，在规划网络地址时需要从如下方面考虑：
- **三个网段不能重叠**，否则会导致冲突。且集群所在VPC下所有子网（包括扩展网段子网）不能和容器网段、服务网段冲突。
- 保证**每个网段有足够的IP地址可用** 。
  - 节点网段的IP地址要与集群规模相匹配，否则会因为IP地址不足导致无法创建节点。
  
  - 容器网段的IP地址要与业务规模相匹配，否则会因为IP地址不足导致无法创建Pod。
   
如业务需求复杂，如多个集群使用同一VPC、集群跨VPC互联等场景，需要同步规划VPC的数量、子网的数量、容器网段划分和服务网段连通方式，详情请参见[集群网络地址段规划实践](https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_00004.html)。
#### 服务转发模式
kube-proxy是Kubernetes集群的关键组件，负责Service和其后端容器Pod之间进行负载均衡转发。
CCE当前支持iptables和IPVS两种转发模式，各有优缺点。
- IPVS：吞吐更高，速度更快的转发模式。适用于集群规模较大或Service数量较多的场景。
- iptables：社区传统的kube-proxy模式。适用于Service数量较少或客户端会出现大量并发短链接的场景。
对稳定性要求极高且Service数量小于2000时，建议选择iptables，其余场景建议首选IPVS。
如需了解更多信息，请参见[iptables与IPVS如何选择](https://support.huaweicloud.com/usermanual-cce/cce_10_0349.html)。
#### 节点规格
使用云容器引擎时，集群节点最小规格要求为CPU ≥ 2核且内存 ≥ 4GB，但使用很多小规格ECS并非是最优选择，需要根据业务需求合理评估。使用过多的小规格节点会存在以下弊端：
- 小规格节点的网络资源的上限较小，可能存在单点瓶颈。
- 当容器申请的资源较大时，一个小规格节点上无法运行多个容器，节点剩余资源就无法利用，存在资源浪费的情况。
 
使用大规格节点的优势：
- 网络带宽上限较大，对于大带宽类的应用，资源利用率高。
- 多个容器可以运行在同一节点，容器间通信延迟低，减少网络传输。
- 拉取镜像的效率更高。因为镜像只需要拉取一次就可以被节点上的多个容器使用。而对于小规格的ECS拉取镜像的次数就会增多，在节点弹性伸缩时则需要花费更多的时间，反而达不到立即响应的目的。
 
另外，还需要根据业务需求选择合适的CPU/内存配比。例如，使用内存较大但CPU较少的容器业务，建议选择CPU/内存配比为1:4的节点，减少资源浪费。
对于CCE Turbo集群，由于Pod需要占用节点弹性网卡/辅助弹性网卡，每个节点可以创建最大Pod数量与节点可使用网卡数量相关，因此还需要评估节点可使用网卡数量，可用网卡数量确定了该节点支持的负载实例上限，详细说明请参见[节点可创建的最大Pod数量说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0348.html)。不同节点规格的支持网卡数量请参见[节点规格说明](https://support.huaweicloud.com/usermanual-cce/cce_10_0719.html)。
#### 节点容器运行时
CCE当前支持用户选择Containerd和Docker容器运行时，**其中Containerd调用链更短，组件更少，更稳定，占用节点资源更少** 。并且Kubernetes在v1.24版本中移除了Dockershim，并从此不再默认支持Docker容器运行时，详情请参见[Kubernetes即将移除Dockershim](https://kubernetes.io/zh-cn/blog/2022/01/07/kubernetes-is-moving-on-from-dockershim/)，CCE v1.27版本中也将不再支持Docker容器运行时。
因此，在一般场景使用时建议选择Containerd容器运行时。但在以下场景中，仅支持使用Docker容器运行时：
- Docker in Docker（通常在CI场景）。
- 节点上使用Docker命令。
- 调用Docker API。
 
#### 节点操作系统
由于业务容器运行时共享节点的内核及底层调用，为保证兼容性，建议节点的操作系统选择与最终业务容器镜像相同或接近的Linux发行版本。
