问题
我的部署中的两个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?
答案 0 :(得分:1)
您似乎已达到子网中IP地址的最大数量,这可以在documentation中提示:
maxIPAddress:可用于的最大IP地址数 群集中的豆荚。 (假设子网中有足够的IP)。
还请查看maxUnavailable和maxSurge参数,这些参数控制滚动升级期间出现多少POD-可能您的配置假定滚动升级期间将有600多个POD(例如130%)并达到您的AWS网络的极限。