kubernetes - Pod 卡在 ContainerCreating 中并显示“无法为容器分配 IP 地址”
问题描述
ContainerCreating
滚动更新后,600 个 pod 部署的多个 pod 卡住并显示以下消息:
创建 pod 沙箱失败:rpc 错误:code = Unknown desc = NetworkPlugin cni 无法设置 pod 网络:添加 cmd:未能为容器分配 IP 地址
我试过的:
- 在 EKS 和 CNI 1.5.0 上升级到 v1.12。 此问题已关闭,说明 CNI 1.5.0 解决了该问题。 它不适合我们。在另一个线程中,泄漏的 ENI 被指责,但也因 CNI 升级而被关闭。
- 安装了 cni-metrics-helper,这是输出的快照:
maxIPAddresses, value: 759.000000
ipamdActionInProgress, value: 1.000000
addReqCount, value: 16093.000000
awsAPILatency, value: 564.000000
delReqCount, value: 32337.000000
eniMaxAvailable, value: 69.000000
assignIPAddresses, value: 558.000000
totalIPAddresses, value: 682.000000
eniAllocated, value: 69.000000
CNI 指标输出是否表明存在问题?似乎有足够的IP。
我还能尝试调试什么?
解决方案
您似乎已达到子网中 IP 地址的最大数量,这可以在文档中提出这样的建议:
maxIPAddress:集群中 Pod 可以使用的最大 IP 地址数。(假设子网中有足够的 IP)。
另请查看maxUnavailable和maxSurge参数,它们控制滚动升级期间出现的 POD 数量 - 也许您的配置假设在滚动升级期间您将拥有超过 600 个 POD(如 130%)并且达到 AWS 网络的限制。
推荐阅读
- css - 扩展时具有可扩展行背景颜色的角材料表
- python - 如果语句具有多个“或”条件?
- postgresql - 在 Postgis 中使用多边形聚合生成地图
- python - 如何有效地从多个 DataFrame 中获取单元格值以插入主 DataFrame
- go - 需要帮助了解 GoLang 中的垃圾收集
- c++ - C++ - 类内的函数指针向量
- angular - 初始化可观察变量后运行函数
- java - JBOSS_7.1EAP 错误“缺少/不可用依赖项的服务”
- python - 如何将类对象数组转换为带有 Pandas 列的数据框?
- node.js - 如何在不同服务中使用无服务器框架在 api gateway aws 上获取相同的主机