2016-03-31 16 views
5

Desidero calcolare e mostrare l'utilizzo della CPU specifico del nodo in percentuale nella mia applicazione Web utilizzando l'API di Kubernetes.Come si recupera l'utilizzo della CPU dal nodo in Kubernetes tramite API?

Ho bisogno delle stesse informazioni dei display Kube UI e di Cadvisor ma voglio usare l'API di Kubernetes.

Ho trovato alcune metriche della CPU sotto node-ip: 10255/stats che contiene timestamp, utilizzo della cpu: totale, utente e sistema in grandi numeri strani che non capisco. Anche il limite CPU è riportato come 1024.

In che modo Kube UI calcola l'utilizzo della CPU ed è possibile eseguire lo stesso tramite l'API?

risposta

3

Se si utilizza Kubernetes v1.2, è disponibile un'API di riepilogo delle metriche nuova e più pulita. Dalla nota di rilascio: Kubelet exposes a new Alpha metrics API - /stats/summary in a user friendly format with reduced system overhead.

È possibile accedere al punto finale tramite <node-ip>:10255/stats/summary e detailed API objects is here.

2

Così il modo in cui le metriche di utilizzo della CPU vengono solitamente raccolte in Kubernetes utilizza cAdvisor https://github.com/google/cadvisor che esamina i cgroup per ottenere metircs, quindi principalmente CPU e alcuni parametri di memoria. cAdvisor può quindi mettere i suoi dati in un database di metriche come heapster, influxDB o prometheus. Kubernetes non tratta direttamente le metriche, quindi non lo espone attraverso l'API, tuttavia è possibile utilizzare invece il DB delle metriche. Inoltre, puoi utilizzare un contenitore aggiuntivo nel tuo pod per raccogliere le metriche e inserirle nel tuo DB delle metriche. Inoltre, è possibile ottenere quote di risorse tramite l'API, ma non l'utilizzo. Questa proposta potrebbe essere di un certo interesse anche per te https://github.com/kubernetes/kubernetes/blob/release-1.2/docs/proposals/metrics-plumbing.md.