您可以安装插件或外部工具,例如 Prometheus 或 metrics-server。
Prometheus 是一个开源系统监控和警报工具包,最初构建于SoundCloud。
您可以定义查询:
对于 CPU 百分比
avg((sum (rate (container_cpu_usage_seconds_total {container_name!="" ,pod="<Pod name>" } [5m])) by (namespace , pod, container ) / on (container , pod , namespace) ((kube_pod_container_resource_limits_cpu_cores >0)*300))*100)
内存百分比
avg((avg (container_memory_working_set_bytes{pod="<pod name>"}) by (container_name , pod ))/ on (container_name , pod)(avg (container_spec_memory_limit_bytes>0 ) by (container_name, pod))*100)
看看:prometheus-pod-memory-usage。
您可以使用 Grafana 可视化此类指标 - 看看如何使用 Prometheus 进行设置 - grafana-prometheus-setup。
Metrics-server 是 Kubernetes 内置自动缩放管道的可扩展、高效的容器资源指标来源。
Metrics Server 从 Kubelets 收集资源指标,并通过 Metrics API 在 Kubernetes apiserver 中公开它们,供 Horizontal Pod Autoscaler 和 Vertical Pod Autoscaler 使用。 kubectl top 也可以访问 Metrics API,从而更轻松地调试自动缩放管道。
你可以执行:
$ kubectl top pod <your-pod-name> --namespace=your-namespace --containers
以下命令将为您提供给定 pod 及其容器的 CPU 使用率和内存使用率。
看看如何首先安装metrics-server:metrics-server-installtion。
否则,如果您想在不安装任何第三方工具的情况下检查 cpu/内存使用情况,那么您可以从 cgroup 获取 pod 的内存和 cpu 使用情况。
- 转到运行容器的外壳
kubectl exec pod_name -- /bin/bash
- 转到
cd /sys/fs/cgroup/cpu 以获取 CPU 使用率运行cat cpuacct.usage
- 转到
cd /sys/fs/cgroup/memory 以了解内存使用情况运行cat memory.usage_in_bytes
请记住,内存使用量是以字节为单位的。
看看:memory-usage-kubernetes。