获取所有Pod的当前和最新CPU和内存使用情况

时间:2019-08-10 14:01:19

标签: kubernetes redhat kubernetes-helm redhat-containers hawkular

我想知道如何获取所有Pod的CPU和内存使用情况的当前值或最后读取的度量值。

我试图称小贩终端。我通过按f12进入浏览器开发人员模式,并从加载Pod的度量标准页面时发出的呼叫列表中提取了此端点。

https://metrics.mydev.abccomp.com/hakular/metrics/gauges/myservice%dfjlajdflk-lkejre-12112kljdfkl%2Fcpu%2Fusage_rate/data?bucketDuration=1mn&start=-1mn

但是,这将为我提供该特定pod在最后一分钟的cpu使用情况指标。我正在尝试查看是否存在命令或方法退出,这些命令或方式仅会给我以下所有集合的CPU使用情况和所有Pod的内存状态的当前快照:

pod        memory usage     memory max       cpu usage         cpu max
pod1       0.4 mb            2.0 mb            20 m cores       25 m cores
pod2       1.5 mb            2.0 mb            25 m cores       25 m cores 

2 个答案:

答案 0 :(得分:0)

列出所有容器(容器)的资源CPU和内存利用率

kubectl top pods --all-namespaces --containers=true

  

默认的admin,edit,view和cluster-reader集群角色支持集群角色聚合,其中每个角色的集群规则在创建新规则时动态更新。仅当您通过创建自定义资源扩展Kubernetes API时,此功能才有意义。 Cluster-role-aggregator

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: top-pods-admin
  labels:
    rbac.authorization.k8s.io/aggregate-to-admin: "true"
    rbac.authorization.k8s.io/aggregate-to-edit: "true"
    rbac.authorization.k8s.io/aggregate-to-view: "true"
rules:
- apiGroups:
  - metrics.k8s.io
  resources:
  - pods
  verbs:
  - get
  - list
  - watch

答案 1 :(得分:0)

要查看使用最多CPU和内存的容器,可以使用kubectl top命令,但该命令尚未排序,并且缺少配额限制和每个容器的请求。您只会看到当前的用法。

执行以下命令:

$ kubectl top pods --all-namespaces --containers=true

由于这些限制,而且由于您希望持续收集和存储此资源使用情况信息,因此可以使用监视工具。这样,您可以实时和历史地分析资源使用情况,还可以提醒您容量瓶颈。

要解决问题“服务器错误(禁止):未知(获取服务http:heapster”)

请确保不要将heapster部署忘记忘记安装Service for Stackster,否则您将必须手动进行安装。

例如:

$ kubectl create -f /dev/stdin <<SVC
apiVersion: v1
kind: Service
metadata:
  name: heapster
  namespace: kube-system
spec:
  selector:
    whatever-label: is-on-heapster-pods
  ports:
  - name: http
    port: 80
    targetPort: whatever-is-heapster-is-listening-on
SVC