Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory 如果数量匹配,为什么我的POD不满足资源配额限制?_Memory_Kubernetes_Cpu_Google Kubernetes Engine_Quota - Fatal编程技术网

Memory 如果数量匹配,为什么我的POD不满足资源配额限制?

Memory 如果数量匹配,为什么我的POD不满足资源配额限制?,memory,kubernetes,cpu,google-kubernetes-engine,quota,Memory,Kubernetes,Cpu,Google Kubernetes Engine,Quota,将以下资源配额计算资源应用到我的GKE集群后 apiVersion: v1 kind: ResourceQuota metadata: name: compute-resources spec: hard: limits.cpu: "1" limits.memory: 1Gi 并将部署更新为 apiVersion: apps/v1 kind: Deployment metadata: name: my-service spec: selector: ma

将以下
资源配额
计算资源
应用到我的GKE集群后

apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources
spec:
  hard:
    limits.cpu: "1"
    limits.memory: 1Gi
并将部署更新为

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”被禁止,调度尝试100%失败:失败配额:计算资源:必须指定限制。cpu,限制。内存
。既然指定了
限制
请求
,并且它们满足了限制,我看不出为什么应该禁止POD

这是另一个问题


我将集群升级到1.13.6-gke.0。

我打算建议在单独的名称空间中进行测试,但请注意,您已经尝试过了

作为另一种解决方法,尝试通过启用LimitRanger准入控制器并设置默认限制,例如

apiVersion: v1
kind: LimitRange
metadata:
  name: cpu-limit-range
spec:
  limits:
  - default:
      memory: 256Mi
      cpu: 125m
    defaultRequest:
      cpu: 125m
      memory: 128Mi
    type: Container
现在,如果在默认名称空间中创建了一个容器,并且该容器没有为CPU请求和CPU限制指定自己的值,那么该容器的默认CPU限制为125m,默认内存限制为256Mi


另外,在设置LimitRange后,请确保已移除部署,并且没有任何吊舱处于失败状态

您好,您可以尝试使用1个副本吗?希望没有init容器的开销,因为您的2个副本正在将其添加到250mcore@SureshVishnoi谢谢你的意见。我将复制副本设置为1。我还设置了
cpu:“1”
,并在一个单独的名称空间中重现了这个问题。你还有别的想法吗?谢谢你的意见。我用
LimitRange
替换了
ResourceQuota
,并用
kubectl replace file.yml--namespace=mynamespace
对命名空间进行了更改。我删除了部署(没有创建pod)。重新部署后,创建POD仍然失败,原因是创建错误:POD“my-service-85d5cf694d-vmhzb”被禁止:超出配额:计算资源,请求:限制。cpu=250m,限制。内存=64Mi,已使用:限制。cpu=2250m,限制。内存=2Gi,限制:限制。cpu=1,限制。内存=1Gi。GKE上的行为与Ubuntu上microk8s上的行为相同。至少LimitRange已解决
必须指定限制。cpu,限制。内存
问题。因此,现在您遇到了另一个问题-
超出了配额
,这是预期的,因为您已经使用了配额)检查当前使用情况
kubectl descripe ResourceQuota-n mynamespace
如何找出配额值的来源?我还没有配置它们。pod的规格和运行时要求都没有超过配额(只是闲置)。所以,我看不出有什么理由会出现这个错误。@KarlRichter有什么
kubectl get all-n mynamespace