我定义了部署资源
resources:
limits:
cpu: 900m
memory: 2500Mi
如何获得内存和CPU的 max 用法(以便很好地处理和定义用法和资源)?
答案 0 :(得分:2)
通常,您需要为K8群集实施一些监控解决方案来存储历史指标。
如果您的Kubernetes部署在GKE上运行,您可以使用Stackdriver 为此,如果您选择Stackdriver Premium,则会在那里看到您的历史指标。如果它是您自己的Kubernetes部署,Prometheus/Grafana是一个受欢迎的选择
答案 1 :(得分:1)
默认情况下,pod以无限制的CPU和内存限制运行。这意味着系统中的任何pod都将能够消耗与执行pod的节点相同的CPU和内存。
参考: https://kubernetes.io/docs/tasks/administer-cluster/cpu-memory-limit/
答案 2 :(得分:1)
如果您在GKE上运行
今天,kubernetes控制台已经升级,您可以在控制台ui上查看所有统计信息
转到https://github.com/python/mypy/issues/5664
在workloads
下选择部署
答案 3 :(得分:0)
kubectl top
之类的某些工具只能获取当前时间的pod的资源使用情况。您需要监视服务。
kube-state-metrics-> prometheus-> grafana-kubernetes-app是一种流行的解决方案,用于监视自行部署的k8s集群的指标。
kube-state-metrics
可以生成有关k8s对象(例如节点,pod,部署)状态的度量。
您只需要按照指定的document跟踪指标
kube_pod_container_resource_requests_cpu_cores
和kube_pod_container_resource_requests_memory_bytes
。
peometheus
应该每隔几秒钟从kube-state-metrics
收集指标并生成时间序列数据。
grafana-kubernetes-app
轻松将它们绘制成图表。然后,您可以找到给定Pod的最大CPU使用率。
答案 4 :(得分:0)
聚会晚了一点,但是我正是出于这个目的创建了Kube Eagle:https://github.com/google-cloud-tools/kube-eagle