我正在使用AWS EKS和fargate,在我的部署中,我将resources.requests.memory设置为512Mi,但fargate节点仍将请求1Gi。所以我查看了那个pod的prometheus kube状态,它显示pod请求762 Mi。因为762-512=250,所以我检查了其他部署,发现它总是请求比我定义的大约200Mi更多的内存。这是一个k8s问题,还是仅仅是一个fargate规则?
resources:
limits:
memory: 512Mi
cpu: "0.25"
requests:
memory: 512Mi
cpu: "0.25"Annotations: CapacityProvisioned: 0.25vCPU 1GBMemory Request: 762 Mi更新请求到250 Mi后:
resources:
limits:
memory: 500Mi
cpu: "0.25"
requests:
memory: 250Mi
cpu: "0.25"Annotations: CapacityProvisioned: 0.25vCPU 0.5GB发布于 2021-01-19 10:46:56
我在Monitoring Amazon EKS on AWS Fargate using Prometheus and Grafana中找到了解释
当前版本的仪表板不考虑initContainers的请求。这是因为kube-state-metrics不公开initContainers请求的资源。如果没有任何长期运行的容器请求任何资源,则图中的请求指标将不存在。请求度量不应与pod拥有的CPU和内存总量相混淆。如上所述,pod的CPU和内存由计算出的pod的Fargate配置决定。
sum(kube_pod_container_resource_requests{resource="memory"}+262144000)如果我请求512 Mi,fargate节点将为init容器请求另一个250 Mi,我的最终内存请求将是762 Mi。因此,如果我希望将fargate容量保持为0.5 Mi,则我的请求内存不应大于262 Mi。
我不认为这是合理的。
https://stackoverflow.com/questions/65784635
复制相似问题