我正在尝试使用Container Engine在大型Google Cloud实例中解除许多容器。
我检测到同一个节点中只有104个容器被引发,其余的容器因描述命令出现以下错误而挂起: kubectl describe po nginx-2243550509-nd1z7
FirstSeen LastSeen Count From SubobjectPath Type Reason Message
--------- -------- ----- ---- ------------- -------- ------ -------
5m 5m 1 {default-scheduler } Warning FailedScheduling no nodes available to schedule pods
7m 20s 27 {default-scheduler } Warning FailedScheduling pod (nginx-2243550509-nd1z7) failed to fit in any node
这是GKE的限制吗?
每个实例是否无法提升更多容器?
您可以在每个节点上指定容器的内部IP范围吗? (不是集群中的全局IP范围)
我怀疑每个节点只允许一个/ 24。
这让我觉得每个节点的限制可能是255。
-
测试是使用图像 container-vm (Debian 7)和 GCI (Chromium OS)完成的。
对于Kubernetes的版本1.5.1和1.4.7也观察到了同样的限制
-
更新:
似乎是每个节点中的kubelet的默认限制,我想在GKE中默认为110.
http://kubernetes.io/docs/admin/kubelet/
--max-pods int32 Number of Pods that can run on this Kubelet. (default 110)
是否可以以某种方式在GKE中修改此值以使用整个可用的IP范围?
据说在/ 24范围内。
答案 0 :(得分:0)
你最多可以有 252 个节点,因为 ip 范围为 /24,每个节点总共可以有 110 个 pod,最后一件事是因为 Kubernetes 为每个节点分配了一个 IP 地址范围,一个 {{3 }},这样每个Pod都可以有一个唯一的IP地址。