Pods卡在ContainerCreating中,“无法为容器分配IP地址”

时间:2019-03-07 00:52:38

标签: kubernetes aws-eks

问题

我的部署中的两个Pod停留在ContainerCreating中,并显示以下消息:

Failed create pod sandbox: rpc error: code = Unknown desc = NetworkPlugin cni failed to set up pod "etl-worker-87d885c45-g5q88_etl" network: add cmd: failed to assign an IP address to container

我尝试过的事情

This thread建议amazon-k8s-cni:1.0.0的{​​{3}}使用:

kubectl apply -f https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/master/config/v1.3/aws-k8s-cni.yaml

当我尝试执行此操作时,第一个推出的节点进入CrashLoopBackoff,并且在描述时显示以下消息:

Neither --kubeconfig nor --master was specified. Using the inClusterConfig. This might not work.

...然后我们的许多工作吊舱请求开始出错。因此,我运行kubectl rollout undo ds aws-node -n kube-system撤消了我所做的事情。

更多信息

我也是upgrading the CNI version to 1.3.2.,这是输出的快照。 ipamdErr在Cloudwatch中从0到1.7k波动很大。我不确定该指标到底意味着什么。

eniMaxAvailable: 60
assignIPAddresses: 656
ipamdErr: 308
eniAllocated: 60
totalIPAddresses: 660

问题

在应用aws-k8s-cni.yaml之前,我还需要检查或更新哪些其他配置?

是否存在其他解决方案来修复出现此错误消息的ContainerCreating卡住的pod?

1 个答案:

答案 0 :(得分:1)

您似乎已达到子网中IP地址的最大数量,这可以在documentation中提示:

  

maxIPAddress:可用于的最大IP地址数   群集中的豆荚。 (假设子网中有足够的IP)。

还请查看maxUnavailablemaxSurge参数,这些参数控制滚动升级期间出现多少POD-可能您的配置假定滚动升级期间将有600多个POD(例如130%)并达到您的AWS网络的极限。