更新时间:2024-12-04 GMT+08:00

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

节点最大Pod数量计算方式

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

节点可分配容器IP数

在创建CCE集群时,如果网络模型选择“VPC网络”,会让您选择每个节点可供分配的容器IP数量(alpha.cce/fixPoolMask)。Pod直接使用宿主机的网络(配置hostNetwork: true)时,不占用可分配容器IP,详情请参见容器网络 vs 主机网络

该参数会影响节点上可以创建最大Pod的数量,因为每个Pod会占用一个IP(使用容器网络的情况),如果可用IP数量不够的话,就无法创建Pod。Pod直接使用宿主机的网络(配置hostNetwork: true)时,不占用可分配容器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

容器网络 vs 主机网络

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

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