2016-02-04 8 views

risposta

15

Il monitoraggio di Kubernetes è dettagliato nella documentazione here, ma questo riguarda soprattutto gli strumenti che utilizzano heapster.

Le informazioni specifiche del nodo sono esposte tramite l'interfaccia utente di cAdvisor alla quale è possibile accedere dalla porta 4194 (vedere i comandi di seguito per accedervi tramite l'API proxy).

Heapster interroga il kubelet per le statistiche servite a <kubelet address>:10255/stats/ (gli altri endpoint si trovano nel codice here).

Prova questo:

$ kubectl proxy & 
Starting to serve on 127.0.0.1:8001 
$ NODE=$(kubectl get nodes -o=jsonpath="{.items[0].metadata.name}") 
$ curl -X "POST" -d '{"containerName":"/","subcontainers":true,"num_stats":1}' localhost:8001/api/v1/proxy/nodes/${NODE}:10255/stats/container 
... 

Si noti che questi endpoint non sono documentate in quanto sono destinati ad uso interno (e il debug), e possono cambiare in futuro (alla fine abbiamo vogliamo offrire un endpoint di versione più stabile).

Aggiornamento:

Come di kubernetes versione 1.2, il Kubelet esporta un'API "sintesi" che aggrega le statistiche di tutti i Pods:

$ kubectl proxy & 
Starting to serve on 127.0.0.1:8001 
$ NODE=$(kubectl get nodes -o=jsonpath="{.items[0].metadata.name}") 
$ curl localhost:8001/api/v1/proxy/nodes/${NODE}:10255/stats/summary 
... 
+0

Hey Tim, sono poco chiaro che cosa il vostro cercando di fare esattamente (dato che in generale io sono ancora nuovo a kubernetes) – adrian

+0

Vuoi dire quello che comanda l'esempio che ho postato stanno facendo? Invia una richiesta POST all'endpoint '/ stats/container' di un nodo e stampa i risultati (su STDOUT). Il comando 'kubectl get nodes -o = jsonpath =" {. Items [0] .metadata.name} "' è solo un modo elegante per catturare il nome di un nodo casuale. –

+0

C'è un errore di sintassi nei nodi get? Sembra che stia fallendo quando lo sto eseguendo sul mio server principale. – adrian

2

mi consiglia di utilizzare heapster per raccogliere le metriche. È piuttosto semplice. Tuttavia, per accedere a queste metriche, è necessario aggiungere "type: NodePort" nel file hepaster.yml. Ho modificato i file heapster originali e li puoi trovare here. Vedi il mio file readme come accedere alle metriche. Altre metriche sono disponibili here.

Le metriche sono accessibili tramite un browser Web accedendo a http://heapster-pod-ip:heapster-service-port/api/v1/model/metrics/cpu/usage_rate. Lo stesso risultato può essere visto eseguendo il seguente comando.

$ curl -L http://heapster-pod-ip:heapster-service-port/api/v1/model/metrics/cpu/usage_rate