更新时间:2024-10-14 GMT+08:00

节点可创建的最大Pod数量说明

节点最大Pod数量计算方式

根据集群类型不同,节点可创建的最大Pod数量计算方式如下:

网络模型

节点可创建的最大Pod数量计算方式

建议

“容器隧道网络”集群

仅取决于节点最大实例数

-

“VPC网络”集群

取决于节点最大实例数节点可分配容器IP数中的最小值

建议节点最大实例数不要超过节点可分配容器IP数,否则当节点容器IP数不足时,新建Pod将无法在该节点上正常运行。

节点可分配容器IP数说明

在创建CCE集群时,如果网络模型选择“VPC网络”,根据VPC网络模型的容器IP地址分配规则(详见容器IP地址管理),您需要选择每个节点可供分配的容器IP数量(即alpha.cce/fixPoolMask参数)。

该参数会影响节点上可以创建最大Pod的数量,因为使用容器网络时每个Pod会占用一个IP,如果节点预分配的容器IP数量不够的话,就无法创建Pod。当Pod直接使用主机网络(即YAML中配置hostNetwork: true)时,不占用可分配容器IP,详情请参见容器网络与主机网络的Pod IP分配差异

节点默认会占用掉3个容器IP地址(网络地址、网关地址、广播地址),因此节点上 可分配给容器使用的IP数量 = 您选择的容器IP数量 - 3

节点最大实例数说明

在创建节点时,可以配置节点可以创建的最大实例数(maxPods)。该参数是kubelet的配置参数,决定kubelet最多可创建多少个Pod。

对于默认节点池(DefaultPool)中的节点,节点创建完成后,最大实例数不支持修改。

对于自定义节点池中的节点,创建完成后可通过修改节点池配置中的max-pods参数,修改节点最大实例数。

根据节点规格不同,节点默认最大实例数如表1所示。

表1 节点默认最大实例数

内存

节点默认最大实例数

4G

20

8G

40

16G

60

32G

80

64G及以上

110

容器网络与主机网络的Pod IP分配差异

创建Pod时,可以选择Pod使用容器网络或是宿主机网络。

  • 容器网络:默认使用容器网络,Pod的网络由集群网络插件负责分配,每个Pod分配一个IP地址,会占用容器网络的IP
  • 主机网络:Pod直接使用宿主机的网络(Pod需要配置hostNetwork: true),会占用宿主机的端口,Pod的IP就是宿主机的IP,不会占用容器网络的IP。使用时需要考虑是否与宿主机上的端口冲突,因此一般情况下除非某个特定应用必须使用宿主机上的特定端口,否则不建议使用主机网络。