Come usare Kubectl Dry Run

Come usare Kubectl Dry Run
La gestione della formazione dichiarativa, chiamata anche configurazione come codice, è la forza principale di Kubernetes. Ciò offre agli utenti di impostare lo stato preferito del cluster, dare un percorso a forme diverse e migliorare il controllo e la meccanizzazione sulla pipeline. Potrebbe essere "server" o "client". L'approccio client stampica semplicemente gli elementi diretti senza dirigerli. La strategia del server è quella di dirigere i requisiti sul lato server senza trattenere le risorse. Ci sono ancora alcune carenze nel raggiungimento di una pratica dichiarativa continua con Kubernetes. Il compilatore e il linter identificano correttamente i guasti della richiesta di pull code ma mancano corretta della cartella di configurazione di Kubernetes. La soluzione corrente è eseguire il comando "kubectl applicare a secco", che esegue una corsa a secco locale e non comunica con il server. Non esiste un'autenticazione del server e non può passare attraverso il controller di accesso alla convalida. Ad esempio, i nomi delle risorse dei clienti sono confermati per la prima. Sapere come un oggetto viene utilizzato da un server può essere difficile per diversi motivi.

Prerequisiti:

Per l'esecuzione dei comandi in Kubernetes, dobbiamo installare Ubuntu 20.04. Qui utilizziamo il sistema operativo Linux per eseguire i comandi Kubectl. Ora installiamo il cluster Minikube per eseguire Kubernetes in Linux. Minikube offre una comprensione estremamente fluida in quanto fornisce una modalità efficiente per testare i comandi e le applicazioni.

Vediamo come usare Kubectl Dry Run:

Avvia minikube:

Dopo aver installato il cluster minikube, iniziamo Ubuntu 20.04. Ora dobbiamo aprire un terminale per l'esecuzione dei comandi. A tale scopo, premiamo la combinazione di "ctrl+alt+t" dalla tastiera.

Nel terminale, scriviamo il comando "Minikube Start" e dopo questo, aspettiamo un po 'fino a quando non viene effettivamente avviato. L'output di questo comando è dato sotto.

Quando si aggiorna un elemento corrente, Kubectl applica solo la patch, non l'oggetto completo. Stampa qualsiasi articolo di corrente o originale in modalità run a secco non è completamente corretto. Il risultato della combinazione sarebbe stampato.

La logica dell'applicazione lato server deve essere disponibile sul lato client affinché Kubectl sia in grado di imitare esattamente i risultati dell'applicazione, ma questo non è l'obiettivo.

Lo sforzo esistente è focalizzato sull'influenzare la logica dell'applicazione sul server. Dopo allora abbiamo aggiunto la possibilità di correre a secco sul lato server. Kubectl applicazione a secco fa il lavoro necessario producendo il risultato dell'applicazione dell'iscrizione privata di mantenerlo effettivamente.

Forse aggiorniamo l'aiuto del flag, emettiamo un avviso se viene utilizzato la corsa a secco quando si valuta gli articoli utilizzando Applica, documentare i limiti di Run a secco e utilizzare il server-Run a secco.

Il differen da kubectl dovrebbe essere uguale a quanto si applicano kubectl. Mostra le differenze tra le fonti nel file. Possiamo anche utilizzare il programma Diff selezionato con la variabile di ambiente.

Quando utilizziamo il kubectl per applicare il servizio a un cluster a secco, il risultato appare come la forma del servizio, non l'output da una cartella. Il contenuto restituito deve comprendere le risorse locali.

Costruisci un file YAML utilizzando il servizio annotato e mettilo in relazione con il server. Modifica le note nel file ed eseguire il comando 'kubectl applica -f -dry -run = client'. L'output mostra osservazioni lato server anziché annotazioni modificate. Questo autenticherà il file yaml ma non lo costruirà. L'account che stiamo utilizzando per la convalida ha l'autorizzazione di lettura richiesta.

Questa è un'istanza in cui -dry -run = client non è appropriato per ciò che stiamo testando. E questa particolare condizione si vede spesso quando più persone accettano l'accesso alla CLI a un cluster. Questo perché nessuno sembra ricordare costantemente l'applicazione o la creazione di file dopo il debug di un'applicazione.

Questo comando kubectl offre una breve osservazione delle risorse salvate dal server API. Numerosi campi vengono salvati e nascosti da apiserver. Possiamo utilizzare il comando dal risultato delle risorse per generare le nostre formazioni e comandi. Ad esempio, è difficile scoprire un problema in un cluster con numerosi spazi dei nomi e posizionamenti; Tuttavia, la seguente istanza utilizza l'API grezzo per testare tutte le distribuzioni nel cluster e ha una replica fallita. Filtrare semplicemente la distribuzione.

Eseguiamo il comando "sudo snap installa kube-apiserver" per installare apiserver.

La corsa a secco sul lato server è attivata attraverso le porte funzionali. Questa funzione sarebbe assistita per impostazione predefinita; Tuttavia, possiamo abilitarlo/disabilitarlo usando il comando "'kube-apiserver -feature-gates drirun = true' '.

Se stiamo usando un controller di accesso dinamico, dobbiamo risolverlo nei seguenti modi:

  • Eliminiamo tutti gli effetti collaterali dopo aver specificato i vincoli di corsa a secco in una richiesta di Webhook.
  • Dichiariamo il campo degli oggetti dell'articolo per specificare che l'articolo non ha effetti collaterali durante la corsa a secco.

Conclusione:

Il ruolo richiesto dipende dal modulo di autorizzazione che acconsente alla corsa a secco nel conto per imitare la formazione di un elemento Kubernetes senza bypassare il ruolo da considerare.

Questo è certamente al di fuori della descrizione del ruolo attuale. Come sappiamo, nulla è formato/rimosso/patchato nella commissione per quanto riguarda le azioni eseguite nel cluster. Tuttavia, consentiamo anche questo di distinguere tra -dry -run = server e -dry -run = nessun output per gli account. Possiamo utilizzare il kubectl applica-server-dry-run per attivare una funzione da kubectl. Ciò elaborerà la domanda attraverso la bandiera a secco e il risuonazione dell'oggetto.