将以下ResourceQuota
compute-resources
应用到我的GKE集群后
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-resources
spec:
hard:
limits.cpu: "1"
limits.memory: 1Gi
并将Deployment
更新为
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-service
spec:
selector:
matchLabels:
app: my-service
tier: backend
track: stable
replicas: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 50%
template:
metadata:
labels:
app: my-service
tier: backend
track: stable
spec:
containers:
- name: my-service
image: registry/namespace/my-service:latest
ports:
- name: http
containerPort: 8080
resources:
requests:
memory: "128Mi"
cpu: "125m"
limits:
memory: "256Mi"
cpu: "125m"
由于pods "my-service-5bc4c68df6-4z8wp" is forbidden: failed quota: compute-resources: must specify limits.cpu,limits.memory
的原因,调度会导致100%的尝试失败。由于指定了limits
和requests
,并且它们达到了限制,因此我看不出应该禁止pods的原因。
How pod limits resource on kubernetes enforced when the pod exceed limits after pods is created ?是一个不同的问题。
我将集群升级到了1.13.6-gke.0。
发布于 2019-05-30 20:50:34
我正要建议在单独的名称空间中进行测试,但是您已经尝试过了。
作为另一种解决方法,尝试通过启用LimitRanger准入控制器并对其进行设置来设置默认限制。
apiVersion: v1
kind: LimitRange
metadata:
name: cpu-limit-range
spec:
limits:
- default:
memory: 256Mi
cpu: 125m
defaultRequest:
cpu: 125m
memory: 128Mi
type: Container
现在,如果在默认名称空间中创建了Container,并且该Container没有为CPU request和CPU limit指定自己的值,则该Container的默认CPU限制为125m,默认内存限制为256Mi
此外,在设置LimitRange之后,请确保您删除了部署,并且没有pods卡在失败状态。
https://stackoverflow.com/questions/56374417
复制相似问题