‫Per il tuo primo cluster, forse anche per i
‫tuoi primi cluster, non dovrai preoccuparti troppo di questo
‫concetto di spazi dei nomi e contesti.
‫Ma è qualcosa di cui devi essere consapevole
‫che esiste nel caso in cui sia necessario utilizzarlo.
‫Gli spazi dei nomi sono essenzialmente cluster virtuali o viste
‫virtuali all'interno di un singolo cluster.
‫Filtra non solo la vista del comando in modo da vedere
‫solo alcune cose quando si digitano i
‫comandi, ma anche, con i plug-in dei criteri di rete
‫giusti, può controllare la rete.
‫Questo è un po 'diverso da Swarm, dove
‫Swarm, pronto all'uso, creava reti di overlay diverse e
‫tutto era essenzialmente privato.
‫In Kubernetes, il collegamento in rete e il controllo delle app
‫e della loro privacy, ciò che possono vedere e accedere
‫e ciò che è controllato fisicamente sono realmente dipendenti dal
‫plug-in di rete.
‫Gli spazi dei nomi in sé non sono correlati agli spazi dei
‫nomi Docker, di cui potresti aver sentito parlare, che fa
‫davvero parte del sottosistema Linux, ed è un po 'come
‫funzionano i container. Questo non ha nulla a che fare con quello.
‫Questo è semplicemente Kubernetes che dice, hey potresti avere un sacco di
‫cose in corso nel tuo cluster, e ti sto dando l'opportunità di
‫creare piccoli mini cluster in cui avresti impostato lo spazio
‫dei nomi con un contesto e questo è il tuo
‫punto di vista cambiando il tuo contesto.
‫Puoi cambiare quello che vedi.
‫Quindi lo spazio dei nomi è costituito da
‫diversi segmenti per filtrare i comandi, nonché potenzialmente per
‫la rete. Sul mio sistema qui sul
‫mio desktop, vedo semplicemente kubectl ottenere spazi dei nomi e quel
‫comando mi mostra 4. È un po
‫'fuori dagli schemi, lo standard che vedrai.
‫L'impostazione predefinita è ciò con cui hai lavorato finora.
‫È fatto per lo spazio dei nomi predefinito
‫delle tue app. L'unica cosa che
‫ti mostra davvero quando hai
‫fatto ottenere un kubectl è l'endpoint dell'API Kubernetes, giusto.
‫Fino a quando non abbiamo iniziato ad aggiungere app,
‫non abbiamo visto nulla. C'è tecnicamente tutta questa
‫roba in esecuzione in background, giusto. Ecco cosa ottengono tutti i kubectl: tutti
‫gli spazi dei nomi.
‫Puoi vedere tutti i contenitori API
‫e quant'altro in esecuzione all'interno di Kubernetes
‫con quel comando. Se guardo tutti gli spazi dei
‫nomi contemporaneamente, ottengo tutto, comprese le cose di sistema.
‫Questa è una visione di come sarebbe
‫su minikube che mette tutto nei propri pod per l'esecuzione
‫del cluster stesso.
‫C'è molto da fare lì.
‫La realizzazione è che quando si utilizza normalmente
‫Kubernetes, la riga di comando si concentra sullo spazio dei nomi
‫predefinito, per impostazione predefinita.
‫Vedrai le tue app solo lì,
‫oltre all'endpoint API.
‫Questa è una buona cosa, giusto. Nasconde la complessità di
‫ciò che accade in background dai tuoi comandi
‫di tutti i giorni, perché non hai davvero bisogno
‫di vedere quella roba a meno che non sia necessario aggiornarla, o cambiarla,
‫o se hai un problema. Entra in gioco il
‫contesto per impostare la vista per quando si eseguono comandi.
‫Il kubectl fa molte cose, giusto.
‫Può connettersi a diversi cluster.
‫Può modificare l'autenticazione o l'utente che stai utilizzando per
‫parlare con il cluster, di cui non abbiamo parlato,
‫o con lo spazio dei nomi.
‫Quindi, ci sono queste tre parti, davvero, di un contesto.
‫Questo è il cluster, l'autenticazione o l'utente, quindi lo
‫spazio dei nomi che si desidera visualizzare.
‫Tutto ciò che è definito, per impostazione predefinita,
‫in un file all'interno di. directory kube della
‫directory home.
‫C'è un file lì dentro chiamato config, e
‫in pratica sarà un file YAML di tutte, tre di quelle parti.
‫Puoi avere più voci e puoi modificarlo
‫come preferisci.
‫Potresti avere un sacco di cluster diversi e finché hai i
‫certificati per parlare con loro, l'autenticazione giusta, puoi mettere
‫tutta quella roba in quel file, ed è qualcosa che
‫vuoi mantenere segreto. Non è
‫qualcosa che vuoi davvero condividere perché in genere
‫ha le tue chiavi di autenticazione per
‫parlare con un cluster. Se usi
‫il comando kubectl config con il comando secondario di get contesti,
‫è plurale, puoi vedere sostanzialmente l'output
‫di quel file. Invece di scaricarlo crudo,
‫puoi effettivamente vedere un piccolo elenco di
‫ciò che è contenuto al suo interno.
‫Nel mio caso, ho il mio Docker Desktop standard
‫sul mio computer locale. Quella voce è presente
‫due volte nelle ultime edizioni di Docker Desktop perché hanno cambiato
‫il nome in modo da mantenerli entrambi compatibili.
‫Quindi ho un minikube locale e un'istanza
‫remota di micro K8 in esecuzione su
‫un server Ubuntu.
‫Quindi, puoi immaginare che se stavo gestendo
‫molti altri server, non avrei necessariamente sempre voglia di
‫entrare in quelle macchine. Voglio solo sedermi sul mio computer locale
‫e parlare con quell'API remota.
‫Puoi usare il comando kubectl config con una qualsiasi
‫delle opzioni impostate. Sicuramente vuoi
‫dare un'occhiata all'aiuto lì. Ma ci sono opzioni impostate
‫per impostare i valori predefiniti per ognuno di
‫questi, quindi potresti potenzialmente cambiare l'utente per
‫avere un'autenticazione diversa. Quindi, forse hai i diritti
‫di Dio invece che solo un sottoinsieme dei comandi che
‫Kubernetes potrebbe eseguire. O forse cambierai il cluster
‫con cui stai parlando.
‫Ci sono anche plugin da riga di comando se
‫ti guardi intorno su Google per
‫permetterti di vedere nella tua shell quale contesto stai usando.
‫È abbastanza utile quando finisci per gestire un sacco
‫di cluster diversi. Vuoi sapere, ehi con
‫chi sto parlando in questo momento? Puoi effettivamente configurarlo, un po
‫'come il modo in cui i prompt get ti diranno in
‫quale ramo ti trovi. Questi ti diranno, nel tuo
‫prompt, quale contesto hai.