Kubernetes

Server delle metriche Kubernetes

Server delle metriche Kubernetes
Con un sistema grande e complicato come Kubernetes, il monitoraggio può spesso diventare problematico.Il monitoraggio è sempre un affare complicato perché da un lato non vuoi perdere bug e guasti critici dall'altro non vuoi annegare in un oceano di errori banali che vengono attivati ​​non a causa della tua applicazione né che influenzano comunque.

Con il proprio stack di pianificatori e controller, Kubernetes può recuperare da errori minori, guasti dei nodi o arresti anomali delle app dall'interno dei loro pod. Tuttavia, se si verificano molti arresti anomali, potrebbe non avere nulla a che fare con l'infrastruttura, ma con la tua app che Kubernetes potrebbe provare a riavviare più e più volte, ma poiché il codice è in errore, l'errore persisterà e potrebbe anche passare inosservato.

Il tipo di bug che passa inosservato il più delle volte sono quelli in cui le app non si bloccano ma finiscono per utilizzare le risorse di sistema e danneggiare i cluster su tutte le prestazioni. Questi sono i casi particolarmente spiacevoli e Kubernetes Metrics Server può essere uno strumento utile per tenerli d'occhio.

Il progetto fa ufficialmente parte del progetto Kubernetes ma non viene pre-abilitato nella maggior parte delle distribuzioni certificate Kubernetes. Ha due parti importanti che vale la pena discutere dell'API Metrics e del Metrics Server stesso. Ma prima eseguiamo il provisioning nel nostro cluster Kubernetes (K8).

Una configurazione sperimentale di Kubernetes

A partire da luglio 2018, Docker per Mac e Windows sono entrambi dotati di un'implementazione certificata Kubernetes dello stesso K8. Semplificando l'installazione di K8 su una distribuzione Linux. Puoi andare su Impostazioni Docker e se l'istanza Docker è aggiornata troverai una scheda Kubernetes nel menu. Basta abilitare Kubernetes invece di Docker Swarm e avrai un cluster a nodo singolo attivo e funzionante pronto per le sperimentazioni.

Successivamente, abbiamo bisogno di un semplice set di applicazioni attive e funzionanti per il nostro caso d'uso. Crea una cartella chiamata Deployments e al suo interno creiamo a nginx-distribuzione.igname file che distribuirebbero pod Nginx senza stato.

apiVersion: apps/v1 # per le versioni precedenti alla 1.9.0 usa app/v1beta2
tipo: distribuzione
metadati:
nome: nginx-distribuzione
specifica:
selettore:
corrispondenzaEtichette:
app: nginx
repliche: 2 # indica alla distribuzione di eseguire 2 pod corrispondenti al modello
modello:
metadati:
etichette:
app: nginx
specifica:
contenitori:
- nome: nginx
immagine: nginx:1.7.9
porti:
- containerPorta: 80

Salva il file e nella stessa directory in cui si trova questo file, esegui il comando:

$ kubectl create -f nginx-deployment.igname

Potrebbe essere necessario attendere alcuni minuti per consentire a Kubernetes di scaricare le immagini del contenitore, eseguire il provisioning dei contenitori e svolgere un po' di contabilità varie. Fatto ciò, puoi vedere l'elenco dei pod come:

$ kubectl ottieni pod

Come puoi vedere abbiamo due istanze del pod, come il .yaml file aveva prescritto.

Ora che abbiamo qualcosa da monitorare, dobbiamo abilitare Metrics Server. Innanzitutto, controlla la versione di Kubernetes che stai utilizzando. Se la versione è 1.8 o superiore, eseguiremmo una distribuzione diversa e se è 1.7 poi si torna a quello legacy:

$ versione kubectl

Puoi ottenere l'immagine ufficiale e iniziare clonando questo repository GitHub e quindi all'interno della radice del repository eseguire il kubectl create -f con l'appropriato .yaml a seconda della versione K8 in esecuzione.

$ git clone https://github.com/kubernetes-incubator/metrics-server.idiota
 
$ cd metriche-server
# Se stai eseguendo Kubernetes versione 1.8 o superiore
$ kubectl create -f deploy/1.8+/
# Se la versione è 1.7, quindi
$ kubectl create -f deploy/1.7/

Dai un po' di tempo ai kubernetes per scaricare le immagini e avviare il server delle metriche. Potrebbero volerci alcuni minuti. Fatto ciò, sei pronto per eseguire il server delle metriche. Il comando di base è ispirato dal superiore comando che viene spesso eseguito per monitorare un sistema Linux. Ma ha due varianti una per controllare il utilizzi delle risorse al computer nodi e secondo per valutare il gauge risorsa consumata dal dispiegato baccelli e il. Ecco come vedere questi due dettagli:

$ kubectl nodo superiore
$ kubectl top pod

Puoi vedere quanto un pod sta tassando il tuo sistema in termini di memoria o tempo di CPU e utilizzando l'API Metrics puoi anche impostare avvisi in base.

Dove andrà da qui??

I casi d'uso emergenti dal server delle metriche saranno cruciali nel futuro di Kubernetes. Questo progetto è ancora nella versione 0.2.x, una volta maturato e integrato nell'architettura Kubernetes mainstream, raccoglierà dati importanti per lo scheduler, aiutandolo ad allocare in modo efficiente i pod ai nodi in modo molto più efficiente.

Allo stesso modo, Horizontal Pod Autoscaler trarrà grandi vantaggi dal progetto e ti aiuterà a scalare o ridimensionare in modo che le risorse vengano utilizzate in modo ottimale dalle applicazioni.

Riferimenti

  1. Distribuzioni Nginx
  2. Server delle metriche Kubernetes
  3. I documenti di progettazione per l'API delle metriche possono essere trovati qui e simili puoi trovare informazioni sul server delle metriche qui.
Come aumentare gli FPS in Linux?
FPS sta per Fotogrammi al secondo. Il compito dell'FPS è misurare il frame rate nelle riproduzioni video o nelle prestazioni di gioco game. In parole ...
I migliori giochi di laboratorio dell'app Oculus
Se possiedi un visore Oculus, devi essere informato sul sideloading. Il sideloading è il processo di installazione di contenuti non archiviati sul vis...
I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...