
# 节点可创建的最大Pod数量说明
 #### 节点最大Pod数量计算方式
根据集群类型不同，节点可创建的最大Pod数量计算方式如下：
| 网络模型                      | 节点可创建的最大Pod数量计算方式                                                                                                                                                 | 建议                                                           |
|:---|:---|:---|
| "容器隧道网络"集群                | 仅取决于[节点最大实例数]                                                                                       | -                                                            |
| "VPC网络"集群                 | 取决于[节点最大实例数]和[每个节点预留的Pod IP数说明]中的最小值  | 建议节点最大实例数不要超过节点可分配Pod IP数，否则当节点Pod IP数不足时，新建Pod将无法在该节点上正常运行。 |
| "云原生2.0网络"集群（CCE Turbo集群） | 取决于[节点最大实例数]和[CCE Turbo集群节点网卡数量]中的最小值 | 建议节点最大实例数不要超过节点网卡数，否则当节点可分配网卡不足时，新建Pod将无法在该节点上正常运行。          |
   
#### 每个节点预留的Pod IP数说明
在创建CCE集群时，如果网络模型选择"VPC网络"，根据VPC网络模型的Pod IP地址分配规则（详见[Pod IP地址管理](https://support.huaweicloud.com/usermanual-cce/cce_10_0283.html#section3)），您需要选择每个节点可供分配的Pod IP数量（即alpha.cce/fixPoolMask参数）。
该参数会影响节点上可以创建最大Pod的数量，因为使用[容器网络]时每个Pod会占用一个IP，如果节点预留的Pod IP数量不够的话，就无法创建Pod。当Pod直接使用[主机网络]（即YAML中配置hostNetwork: true）时，不占用节点预留的Pod IP，详情请参见[容器网络与主机网络的Pod IP分配差异]。
图1VPC网络模型节点预留的 Pod IP数配置   
![](https://support.huaweicloud.com/api-cce/zh-cn_image_0000002419413297.png)
节点默认会占用掉3个Pod IP地址（网络地址、网关地址、广播地址），因此节点上**可分配给Pod使用的IP数量** **= 您选择的Pod IP数量 - 3**，例如上面图中可分配给Pod使用的IP数量为 128-3=125。
#### 节点最大实例数说明
在创建节点时，可以配置节点可以创建的最大实例数（maxPods）。该参数是kubelet的配置参数，决定kubelet最多可创建多少个Pod。
![](https://support.huaweicloud.com/api-cce/public_sys-resources/notice_3.0-zh-cn.png)
对于默认节点池（DefaultPool）中的节点，节点创建完成后，最大实例数不支持修改。
对于自定义节点池中的节点，创建完成后可通过修改节点池配置中的max-pods参数，修改节点最大实例数。详情请参见[节点池配置管理](https://support.huaweicloud.com/usermanual-cce/cce_10_0652.html)。
图2创建节点时的最大实例数配置   
![](https://support.huaweicloud.com/api-cce/zh-cn_image_0000001981030921.png)
根据节点规格不同，节点默认最大实例数如[表1]所示。
 表1节点默认最大实例数 
| 内存     | 节点默认最大实例数 |
|:---|:---|
| 4G     | 20        |
| 8G     | 40        |
| 16G    | 60        |
| 32G    | 80        |
| 64G及以上 | 110       |
   
#### 节点网卡数量说明（仅CCE Turbo集群）
CCE Turbo集群ECS节点使用弹性辅助网卡，裸金属节点使用弹性网卡，节点可以创建最大Pod数量与节点可使用网卡数量相关。
图3节点网卡数   
![](https://support.huaweicloud.com/api-cce/zh-cn_image_0000001981150861.png)
#### 容器网络与主机网络的Pod IP分配差异
创建Pod时，可以选择Pod使用容器网络或是宿主机网络。
- 容器网络：默认使用容器网络，Pod的网络由集群网络插件负责分配，**每个Pod分配一个IP地址，会占用容器网络的IP**。
- 主机网络：Pod直接使用宿主机的网络，即在Pod中配置hostNetwork: true参数，详情请参见[在Pod中配置主机网络（hostNetwork）](https://support.huaweicloud.com/usermanual-cce/cce_10_0402.html)。配置完成后的Pod会占用宿主机的端口，Pod的IP就是宿主机的IP，**不会占用容器网络的IP**。使用时需要考虑是否与宿主机上的端口冲突，因此一般情况下除非某个特定应用必须使用宿主机上的特定端口，否则不建议使用主机网络。
 
#### 如何提升集群中可使用Pod数量
| 方案                     | 适用集群                      | 操作说明                                                                                                                                                                                                                                                                                  | 操作影响                                                                                                                                                                                |
|:---|:---|:---|:---|
| **增加节点（推荐）**           | 所有集群                      | 新增节点以增加可用的Pod数。                                                                                                                                                                                                                                                                       | **对业务无影响。**但需要考虑集群规模过大可能会对集群性能产生影响，请合理规划。 建议新增大规格节点，并逐步将业务迁移至新节点，缩容老节点。                                                    |
| **修改节点最大实例数**          | 所有集群                      | 对于DefaultPool中的节点，您可以重置节点然后重新配置节点最大实例数；对于自定义节点池中的节点，您可以在节点池配置中修改"kubelet管理的Pod上限"参数。                                                                                                                                                                                                  | **涉及节点重置或kubelet组件重启，可能会导致业务短暂中断。** "容器隧道网络"集群可通过该方式直接提升可使用Pod数量，但其他类型的集群还受其他参数影响，需综合考虑。                                     |
| **重建集群并重新规划Pod网段**     | "VPC网络"集群                 | 对于VPC网络模型集群，如果需要调整[每个节点预留的Pod IP数]，只能通过重建集群。                                                                                                                                                                            | **业务需要重建。**                                                                                                                                                                         |
| **变更为更大的实例规格增加节点网卡数量** | "云原生2.0网络"集群（CCE Turbo集群） | 如果是由于节点网卡数量不足限制了Pod数量，可以通过变更节点的实例规格来扩容单节点Pod数。 如果节点支持的网卡数量大于[节点最大实例数]，需要同步修改[节点最大实例数]，其值建议和网卡数量保持一致。 | **变更规格会导致业务短暂中断。** 变更规格可能存在其他潜在影响，详情请参见[CCE节点池内的节点变更规格后会有哪些影响？](https://support.huaweicloud.com/cce_faq/cce_faq_00445.html)。 |
   
#### 常见问题
- **CCE Turbo集群如何查看节点规格支持的最大Pod数？**
  CCE Turbo集群节点可创建的Pod数与节点网卡数量有关，不同规格支持的网卡数量可能不同。您可以在创建节点时查看每个规格支持的负载实例上限。
  ![](https://support.huaweicloud.com/api-cce/zh-cn_image_0000002602443981.png)
  
  
- **为什么相同CPU和内存规格的节点，可创建的Pod数却不一样？**
  节点可创建的Pod数并非根据节点规格单一因素决定，是根据集群类型和其他参数共同作用的结果，详情参见[节点最大Pod数量计算方式]。
  
 
