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
Kubernetes 为什么K8吊舱限制不适用?_Kubernetes - Fatal编程技术网

Kubernetes 为什么K8吊舱限制不适用?

Kubernetes 为什么K8吊舱限制不适用?,kubernetes,Kubernetes,我基本上是在尝试对集群应用pod CPU限制。我在那里对我的deployment.yaml(添加的请求、限制)进行了编辑,并应用了yaml。以下是观察结果: 我在应用文件时没有收到任何错误(我现有的应用程序pod被终止,一个新的应用程序pod被启动) 当我在pod上进行描述时,我可以看到应用了QoS类(QoS:Burstable) 问题是没有遵守这些限制,正如我在metrics服务器中看到的那样,pod CPU>300(而设置的限制是200m) 我有一个istio侧车容器连接到pod(但我只想对

我基本上是在尝试对集群应用pod CPU限制。我在那里对我的deployment.yaml(添加的请求、限制)进行了编辑,并应用了yaml。以下是观察结果:

  • 我在应用文件时没有收到任何错误(我现有的应用程序pod被终止,一个新的应用程序pod被启动)
  • 当我在pod上进行描述时,我可以看到应用了QoS类(QoS:Burstable)
  • 问题是没有遵守这些限制,正如我在metrics服务器中看到的那样,pod CPU>300(而设置的限制是200m)
  • 我有一个istio侧车容器连接到pod(但我只想对我的应用程序应用限制,而不是istio)
  • yaml文件的片段:

    resources:
        limits:
            cpu: 200m
            memory: 100Mi
        requests:
            cpu: 50m
            memory: 50Mi
    

    我检查了所有文档,没有发现任何错误,但是没有应用限制。提前谢谢

    Pod CPU包括Pod中的所有容器,而您指定的限制仅适用于应用程序容器。
    如果仅查询容器的指标,您可能会发现它遵守了您对其施加的限制。
    如果您在集群上运行prometheus查询,您可以使用下面的示例,这将允许您了解每个容器的实际CPU使用量与其CPU请求之间的比率-

    max(sum(irate(container_cpu_usage_seconds_total{container=~"<container_name>", image !="",namespace="<namespace>", pod=~"<Deployment_name>"}[5m])) by (pod, namespace)) 
    / 
    max(sum(kube_pod_container_resource_requests_cpu_cores{namespace="<namespace>", container=~"<container_name>", pod=~"<deployment_name>"}) by (pod,namespace))
    
    max(通过(pod,名称空间))求和(irate(容器(容器)(cpu)(使用)(容器)(秒)(总)(容器)(cpu(使用)
    / 
    max(总和(kube\u pod\u container\u resource\u requests\u cpu\u cores{namespace=”“,container=~“”,pod=~“”)由(pod,namespace))
    
    Pod CPU包括Pod中的所有容器,而您指定的限制仅适用于应用程序容器。
    如果仅查询容器的指标,您可能会发现它遵守了您对其施加的限制。
    如果您在集群上运行prometheus查询,您可以使用下面的示例,这将允许您了解每个容器的实际CPU使用量与其CPU请求之间的比率-

    max(sum(irate(container_cpu_usage_seconds_total{container=~"<container_name>", image !="",namespace="<namespace>", pod=~"<Deployment_name>"}[5m])) by (pod, namespace)) 
    / 
    max(sum(kube_pod_container_resource_requests_cpu_cores{namespace="<namespace>", container=~"<container_name>", pod=~"<deployment_name>"}) by (pod,namespace))
    
    max(通过(pod,名称空间))求和(irate(容器(容器)(cpu)(使用)(容器)(秒)(总)(容器)(cpu(使用)
    / 
    max(总和(kube\u pod\u container\u resource\u requests\u cpu\u cores{namespace=”“,container=~“”,pod=~“”)由(pod,namespace))
    
    这很有道理。我将使用下面的命令检查限制是否得到遵守,并在此处发布更新。谢谢kubectl top pod PODNAME——集装箱感谢它的荣誉,我很惊讶没有提到这一点(但我应该检查一下)。再次感谢您的回复!没问题,很高兴这有帮助。在过去的一年里,我花了很长时间与限制和请求作斗争,我和你一样认为这些东西不直观。这很有道理。我将使用下面的命令,检查限制是否得到遵守,并在这里发布更新。谢谢kubectl top pod PODNAME——集装箱感谢它的荣誉,我很惊讶没有提到这一点(但我应该检查一下)。再次感谢您的回复!没问题,很高兴这有帮助。在过去的一年里,我花了很长时间与限制和要求作斗争,我和你一样认为这些东西是不直观的。