Ogni ingegnere sviluppatore e DevOps che lavora con Kubernetes deve debug di carichi di lavoro e baccelli containerizzati quotidianamente. Semplici registri kubectl o kubectl descrivono i baccelli possono spesso individuare la fonte di un problema. Tuttavia, alcuni problemi sono più difficili da rintracciare. In alcuni casi potresti tentare di Kubectl Exec. Tuttavia, anche questo potrebbe non essere adeguato perché alcuni contenitori, come la distorsione, non hanno nemmeno un guscio in cui puoi SSH. Quindi, se tutto quanto precede fallisce, quali sono le nostre opzioni? Il debug Kubectl, come una nuova istruzione aggiunta non molto tempo fa (V1.18), sarebbe lo strumento giusto per la risoluzione dei problemi di lavoro su Kubernetes.
Prerequisiti
Prima di utilizzare Kubectl, dobbiamo prima convalidare il sistema operativo. Nella nostra situazione, stiamo gestendo Ubuntu 20.04 su un computer. Altre distribuzioni Linux possono essere studiate per capire se sono adatte alle tue esigenze o no. È necessario un cluster minikube per implementare i servizi Kubernetes su Linux. Per far funzionare questa guida, dovrai impostare un cluster minikube sul tuo sistema. Minikube rende la valutazione delle caratteristiche critiche di un cluster Kubernetes un gioco da ragazzi, con qualcosa di facilmente attivato o rimosso. Utilizzare il terminale della riga di comando per impostare un cluster minikube. Uno dei due approcci è disponibile per l'apertura. Cerca "Terminal" nella sezione di ricerca dell'applicazione del sistema. Una scorciatoia da tastiera che può essere utilizzata per questo è Ctrl+Alt+T:
$ Minikube inizi
Come eseguire i comandi in un pod
Ti consigliamo di osservare ciò che un pod che opera nel cluster vede durante diverse fasi che seguono. L'esecuzione di un pod interattivo BusyBox è il metodo più semplice per farlo:
$ kubectl run -rm -rm -restart = never busybox -image = gcr.IO/Google-container/Busybox SH
Come impostare
Eseguiamo alcuni baccelli per questa lezione. Puoi utilizzare le tue informazioni perché molto probabilmente stai eseguendo il debug del tuo servizio o puoi facilmente seguire e ottenere un secondo punto dati:
$ kubectl crea nomi host di distribuzione -image = gcr.io/serv_hostname
Il tipo e il nome della risorsa prodotti o modificati verranno stampati dalle istruzioni Kubectl, che possono successivamente essere utilizzate nei comandi successivi. Aumentiamo il numero di repliche nella distribuzione a tre:
$ kubectl Scale Displottleding Hostnames -Replicas = 3
Puoi verificare se i tuoi baccelli funzionano facendo quanto segue:
$ kubectl get pods -l app = hostnames
Puoi anche verificare se i tuoi baccelli funzionano. In questo modo, puoi ottenere un elenco di indirizzi IP pod e testarli immediatamente:
$ kubectl Get pods -l app = hostnames \
Il contenitore campione in questo post utilizza HTTP sulla porta per fornire il proprio nome host. Ma se lo stai debug da solo, usa qualsiasi numero di porta che si trovano. Dall'interno di un pod:
Se non stai ottenendo i risultati che desideri in questa fase, è possibile che i tuoi baccelli non siano sani o non ascoltino sul porto che pensi che siano. Potresti voler indagare sui registri Kubectl, oppure potresti aver bisogno di Kubectl Exec nei tuoi pod immediatamente e debug da lì. Se tutti i passaggi sono stati eseguiti con precisione finora, puoi iniziare le tue indagini sul perché il tuo servizio non si esegue correttamente.
È il servizio creato?
Il lettore astuto potrebbe avere un'idea che devi ancora costruire un servizio, che è, in effetti, di proposito. Questo passaggio è spesso trascurato, ma è il primo elemento da controllare. Se il servizio non è ancora lì, crea prima e controlla se è ancora lì.
I pod target rientrano in qualsiasi regola di Ingress di rete di rete?
Se si dispone di regole di Ingress di criteri di rete che potrebbero influire sul traffico in arrivo verso nomi host-* POD, è necessario rivederli.
È il servizio adeguatamente definito?
Anche se sembra piccolo, ricontrollare che il servizio che hai creato sia accurato e corrisponda alla porta del tuo pod. Rileggi il tuo servizio e confermalo. Se sei arrivato così lontano, hai verificato che il tuo servizio è correttamente definito e risolto da DNS. Ora è il momento di ricontrollare che il servizio sta raccogliendo i baccelli che hai creato.
Conclusione
Questo articolo ha coperto tutto ciò che devi sapere sulla funzione di debug di Kubectl. Abbiamo anche fornito estesi esempi per aiutarti. Puoi seguire tutti i passaggi di questa guida per svolgere il tuo lavoro in modo efficace. Speriamo che tu abbia trovato questo articolo utile. Trova altri suggerimenti e guide sul suggerimento di Linux.