Google Cloud/Kubernetes - 将容器添加到网络时出错,没有可用的 IP 地址

Google Cloud/Kubernetes - Error adding container to network, no IP addresses available

我有一个由 Google Cloud 托管的 kubernetes 集群,我正在 运行 上安装 4 个小型服务。出于某种原因,我的一些 pods 刚刚崩溃,并且由于没有可用于网络的 IP 地址而无法重新创建。为什么会这样?

查看我的 Google 配额,我有足够的可用 IP 地址。这种情况以前发生过一次,我能够解决它的唯一方法是销毁集群并重新创建它。这很奇怪,因为服务 运行 可以正常运行一段时间,然后这个问题似乎是随机出现的。

这里是错误:

Error syncing pod, skipping: failed to "SetupNetwork" for "myapp" with SetupNetworkError: "Failed to setup network for pod \"myapp(8ba3a1aa-8ed4-11e6-9d08-42010af0015a)\" using network plugins \"kubenet\": Error adding container to network: no IP addresses available in network: kubenet; Skipping pod"

失败的 pod 已重启 70 次,IP 地址可能没有被释放回池中吗?我不是网络人,请原谅我的无知 ;)

此错误与 kubenet 管理的私有 IP 地址有关。这听起来可能是由于 Kubernetes Issue #34278.

您可以通过查看 /var/lib/cni/networks/kubenet/ 中是否充满了实际未使用的 IP 来检查这是否是问题所在。