Ottieni Kubernetes Ingress Log per il debug

Ottieni Kubernetes Ingress Log per il debug

Sai cosa è il registro di ingresso di Get Kubernetes per il debug? I problemi di networking sono sempre più impegnativi da diagnosticare man mano che le distribuzioni diventano sempre più grandi. Questo tutorial mostra come utilizzare il plug-in Ingress-Nginx Kubectl per eseguire il debug dell'accesso all'applicazione tramite il controller Ingress. Vediamo per la prima volta la definizione di ingresso di kubernetes che è importante per capire meglio l'argomento principale.

Cos'è l'ingresso di kubernetes?

La definizione di ingresso è "ingresso" nel suo senso letterale.

Nella comunità di Kubernetes, questo è anche vero. Un traffico che entra nel cluster viene definito ingresso, mentre un traffico che lascia il cluster viene definito in uscita.


Come risorsa nativa di Kubernetes, l'ingresso è paragonabile a pod, distribuzioni, ecc. È possibile tenere il passo con le configurazioni di routing DNS utilizzando Ingress. Il controller di ingresso è ciò che esegue il routing. Lo fa leggendo le regole di routing direttamente dagli oggetti di ingresso che sono memorizzati in eccd. Senza Ingress Kubernetes, è possibile esporre un'applicazione al mondo esterno includendo un bilanciamento del carico del tipo di servizio nelle distribuzioni.

Come funziona Kubernetes Ingress?

Ci sono due cose chiave di cui devi essere chiaro. Questi sono:

Risorsa di ingresso di kubernetes

Questa risorsa è incaricata di mantenere tutte le regole di routing DNS nel cluster. Le regole di routing DNS sono specificate nella risorsa Kubernetes Ingress, una risorsa nativa Kubernetes. In altre parole, mappini il traffico DNS esterno alle destinazioni di servizio interne Kubernetes.

Controller di ingresso di Kubernetes

Acquisendo l'accesso alle regole DNS implementate dalle risorse di Ingress, i controller di ingresso Kubernetes (NGINX/HAPROXY, ecc.) sono responsabili del routing.

L'implementazione del controller Ingress non è originaria di Kubernetes. Di conseguenza, non può essere un cluster predefinito.

Affinché le regole di Ingress funzionino, dobbiamo configurare un controller di ingresso. Ci sono molti controllori di ingressi open source e commerciali sul mercato. La versione di un cluster di un server proxy Web inverso funge da controller di ingresso. Questo server proxy inverso basato su Kubernetes è esposto a un servizio di bilanciamento del carico.

Qual è il controller di ingresso?

Un programma di funzionamento del cluster chiamato Ingress Controller configura un bilanciamento del carico HTTP seguendo le risorse di Ingress. Il bilanciamento del carico può essere un hardware o un bilanciamento del carico cloud distribuito esternamente, oppure può funzionare come software all'interno del cluster. Sono necessarie diverse implementazioni di controller di ingresso per vari bilanciatori del carico.

Quando si utilizza NGINX, il bilanciamento del carico e il controller di ingresso sono entrambi distribuiti in un pod.

Si prega di notare che nel cluster deve essere presente un controller di ingresso attivo per far funzionare la risorsa Ingress.

I controller di ingresso non vengono lanciati automaticamente con un cluster, in contrasto con gli altri tipi di controller che funzionano come componente del binario Kube-Controller-Manager.

Prerequisiti:

È necessario un cluster Kubernetes e devi configurare lo strumento di riga di comando Kubectl per connettersi con il cluster. È possibile emettere i comandi ai cluster Kubernetes utilizzando lo strumento di riga di comando Kubectl. Le applicazioni possono essere distribuite, le risorse del cluster possono essere ispezionate e gestite e i registri possono essere visualizzati utilizzando Kubectl.

Se al momento non hai un cluster, Minikube può essere utilizzato per costruirne uno. Minikube è un Kubernetes locale che mira a rendere semplice l'apprendimento e lo sviluppo di Kubernetes.

È possibile accedere a Kubernetes con un solo comando se si dispone di un ambiente di macchine virtuali o di un contenitore Docker (o simile compatibile). Iniziamo ora il processo passo-passo:

Passaggio 1: avvia il minikube

Utilizzando lo strumento minikube, è possibile eseguire i kubernetes a livello locale. Minikube esegue un cluster kubernetes locale all-in-one o multi-nodi sul tuo computer per il lavoro di sviluppo quotidiano o per testare i kubernetes (inclusi Windows, Linux PCS e MacOS). Ecco il comando per avviare il minikube:

> Minikube Start



Passaggio 2: abilita il controller di ingresso

Dimostreremo come attivare il controller di ingresso Nginx in questo passaggio. Eseguire il seguente comando:

> I componenti aggiuntivi minikube abilitano l'ingresso



Passaggio 3: verificare se il controller di ingresso NGINX funziona o meno

Ora, è importante verificare se il controller Nginx è attivo o no. Il comando che segue può essere usato per confermare che:

> kubectl ottieni baccelli -n ingress -nginx



Si prega di essere consapevoli del fatto che potresti non notare che questi pod funzionano correttamente per un minuto. L'uscita viene visualizzata nell'immagine precedente.

Passaggio 4: crea un'app Hello World

Qui, utilizziamo il seguente comando per creare una distribuzione:

> Kubectl crea Web di distribuzione -Image = GCR.IO/Google-Samples/Hello-app: 1.0



Il comando che viene eseguito e i suoi risultati sono allegati nell'immagine precedente. Nell'output, è possibile vedere "hello-app".

Passaggio 5: esporre la distribuzione

Ora ti mostreremo un comando per esporre una distribuzione specifica. Il comando è menzionato come segue:

> kubectl esponi la distribuzione kalsoom --type = nodeport --port = 8080



Puoi vedere l'output "Service/Kalsoom esposto" nell'immagine precedente.

Passaggio 6: visitare il servizio tramite nodeport

Questo è un passo importante in cui ti mostriamo come puoi visitare il servizio creato tramite il nodo. Il comando per raggiungere questo scopo è indicato nel seguente:

> servizio minikube kalsoom --url



Il comando insieme all'output è allegato nell'immagine precedente.

Ora, l'indirizzo IP e Nodeport Minikube rendono semplice visualizzare l'app di esempio. È possibile utilizzare la risorsa Ingress per accedere all'app nel passaggio seguente.

Passaggio 7: creare un ingresso

Qui, creiamo un ingresso che trasmette il traffico al tuo servizio. Il comando è menzionato come segue:

> kubectl appliche -f https: // k8s.IO/Esempi/Servizio/Networking/Exexe-Ingress.Yaml



Come puoi vedere, il comando viene eseguito correttamente.

Passaggio 8: verificare l'indirizzo IP

Controlliamo se l'indirizzo IP è impostato o no. Per questo, utilizziamo il seguente comando dato:

> kubectl ottieni ingresso



Nell'output, dovresti vedere un indirizzo IPv4 nella colonna dell'indirizzo.

Conclusione

In questo articolo viene fornita una panoramica della registrazione del controller di ingresso Nginx. Per riassumere, i registri di accesso ed errori per Nginx insieme ai registri dal processo del controller Ingress che crea la configurazione NGINX e ricarica NGINX per applicarlo, sono resi disponibili dal controller NGINX Ingress.