Warning FailedCreate 6s (x13 over 26s) statefulset-controller create Pod nacos-0 in StatefulSet nacos failed error: pods “nacos-0” is forbidden: failed quota: tiger: must specify limits.cpu,limits.memory,requests.cpu,requests.memory问题解决
如上面错误信息所示:
分区禁止创建pods,说说前提条件,首先在分区下已经设置了ResourceQuota。
[root@master1 ~]# kubectl describe quota tiger -n tiger
Name: tiger
Namespace: tiger
Resource Used Hard
-------- ---- ----
limits.cpu 0 10
limits.memory 0 12Gi
pods 0 100
requests.cpu 0 10
requests.memory 0 12Gi
k8s逻辑是这样的:
- 如果分区没有设置配额(ResourceQuota),只要资源足够就可以创建pod。
- 如果分区设置了配额, 那么部署的资源(deployment 或者 statefulset)必须指定配额(request/limit)。
- 特别注意的是如果deployment或者statefulset 添加了init container
也必须加上配额,不然也会出现同样的错误(而且很难查找)下面展示一个demo如图:
由于当时没有注意 init container 没有设置配额,跳入了一个大坑(limit range/ scopes 都用上了无果)网上也找了很多资料。。。。。