节点可创建的最大Pod数量说明
节点最大Pod数量计算方式
根据集群类型不同,节点可创建的最大Pod数量计算方式如下:
网络模型 |
节点可创建的最大Pod数量计算方式 |
建议 |
---|---|---|
“容器隧道网络”集群 |
仅取决于节点最大实例数 |
- |
“VPC网络”集群 |
取决于节点最大实例数和节点可分配容器IP数中的最小值 |
建议节点最大实例数不要超过节点可分配容器IP数,否则当节点容器IP数不足时,新建Pod将无法在该节点上正常运行。 |
“云原生2.0网络”集群(CCE Turbo集群) |
取决于节点最大实例数和CCE Turbo集群节点网卡数量中的最小值 |
建议节点最大实例数不要超过节点网卡数,否则当节点可分配网卡不足时,新建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,例如上面图中可分配给容器使用的IP数量为 128-3=125。
节点最大实例数说明
在创建节点时,可以配置节点可以创建的最大实例数(maxPods)。该参数是kubelet的配置参数,决定kubelet最多可创建多少个Pod。
根据节点规格不同,节点默认最大实例数如表1所示。
容器网络与主机网络的Pod IP分配差异
创建Pod时,可以选择Pod使用容器网络或是宿主机网络。
- 容器网络:默认使用容器网络,Pod的网络由集群网络插件负责分配,每个Pod分配一个IP地址,会占用容器网络的IP。
- 主机网络:Pod直接使用宿主机的网络,即在Pod中配置hostNetwork: true参数,详情请参见在Pod中配置主机网络(hostNetwork)。配置完成后的Pod会占用宿主机的端口,Pod的IP就是宿主机的IP,不会占用容器网络的IP。使用时需要考虑是否与宿主机上的端口冲突,因此一般情况下除非某个特定应用必须使用宿主机上的特定端口,否则不建议使用主机网络。