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
...
fonte
2016-02-04 22:34:33
Hey Tim, sono poco chiaro che cosa il vostro cercando di fare esattamente (dato che in generale io sono ancora nuovo a kubernetes) – adrian
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. –
C'è un errore di sintassi nei nodi get? Sembra che stia fallendo quando lo sto eseguendo sul mio server principale. – adrian