Imparerai come cambiare uno spazio dei nomi predefinito in Kubectl in questo post. Tutte le risorse di Kubernetes sono organizzate in spazi dei nomi e gli spazi dei nomi ti consentono di separare le preoccupazioni per le risorse condivise da diversi progetti. Se lo spazio dei nomi non è specificato, tutte le risorse sono prodotte nello spazio dei nomi predefiniti e questo vale per tutte le istruzioni dirette sul cluster. Se l'argomento -N non viene utilizzato per uno spazio dei nomi in un comando Kubectl, i Kubernetes forniranno l'output dalle risorse nello spazio dei nomi predefiniti.
Gli spazi dei nomi sono una funzione Kubernetes che consente di dividere i gruppi di risorse all'interno di un cluster. All'interno di uno spazio dei nomi, i nomi delle risorse devono essere univoci, ma non tra gli spazi dei nomi. L'ambito basato su nomi è applicabile solo agli elementi spaziati (come distribuzioni e servizi), non a oggetti a livello di cluster (E.G., STORAGECLASS, nodi, persistenti, ecc.).
Lo spazio dei nomi "predefinito"
Out of the Box, la maggior parte delle versioni di Kubernetes include uno spazio dei nomi chiamato "predefinito" nel cluster. Ci sono tre spazi dei nomi in Kubernetes: Default, Kube-System e Kube-Public. Kube-Public non viene utilizzato molto spesso in questo momento e il sistema Kube viene solitamente ignorato, specialmente in un sistema regolamentato come Google Kubernetes Engine (GKE). Di conseguenza, lo spazio dei nomi predefinito verrà utilizzato per creare i tuoi servizi e app. Non c'è nulla di straordinario in questo spazio dei nomi oltre a quello che gli strumenti Kubernetes sono configurati per usarlo fuori dalla scatola e che non puoi eliminarlo. È eccellente per iniziare e per sistemi di produzione più piccoli, ma non è adatto a quelli più grandi. Ciò è dovuto al fatto che è abbastanza facile per una squadra sovrascrivere o interrompere inavvertitamente un altro servizio senza riconoscerlo. Invece, dividi i tuoi servizi in bit digeribili creando più spazi dei nomi.
Prima di procedere:
Per iniziare, avvia il cluster Minikube, che è già installato sul tuo Ubuntu 20.04 LTS Sistema operativo. Per eseguire Minikube, digitare il comando allegato nella riga di comando:
$ Minikube inizi
Visualizza gli spazi dei nomi
È possibile ottenere un elenco di tutti gli spazi dei nomi in un cluster digitando il seguente comando.
Se un elemento non ha altro spazio dei nomi, questo è lo spazio dei nomi predefinito. Lo spazio dei nomi del sistema kube include oggetti specificamente progettati dal sistema Kubernetes. D'altra parte, lo spazio dei nomi di Kube-Public esiste automaticamente ed è disponibile per tutti i tipi di utenti. Questo spazio dei nomi è per l'uso del cluster se alcune risorse devono essere disponibili pubblicamente e leggibili in tutto il cluster. L'aspetto pubblico di questo spazio dei nomi è semplicemente una raccomandazione, non un mandato. Gli oggetti in leasing connessi a ciascun nodo sono archiviati nello spazio dei nomi di locazione kube-nodo. Il kubelet può trasmettere battiti cardiaci sul piano di controllo tramite contratti di locazione del nodo, consentendo al piano di controllo di rilevare il guasto del nodo.
Definizione dello spazio dei nomi di una richiesta
Tieni presente che il parametro -Namespace è specificamente utilizzato per impostare lo spazio dei nomi per una richiesta corrente.
Usando il comando di seguito, è possibile ottenere un elenco di tutti i pod da un certo spazio dei nomi.
Scegliere uno spazio dei nomi preferito
Per qualsiasi ulteriore comando kubectl in quel contesto, puoi salvare in modo permanente lo spazio dei nomi.
Questo comando visualizzerà lo spazio dei nomi attualmente utilizzato.
Non tutti gli oggetti hanno uno spazio dei nomi
Pod, servizi, controller di replica e altre risorse Kubernetes sono tutte organizzate in spazi dei nomi. Le risorse dello spazio dei nomi, d'altra parte, non sono contenute in uno spazio dei nomi. Nodi e persistenti sono risorse di basso livello che non si trovano in nessun spazio dei nomi. Per vedere quali risorse di Kubernetes sono utilizzate in uno spazio dei nomi, consultare il comando seguente:
Utilizzare il seguente comando per vedere quali risorse Kubernetes non sono utilizzate in uno spazio dei nomi:
Spazi dei nomi DNS
Una voce DNS viene creata per un servizio quando viene creata. Il formato di questa voce è . Se un contenitore utilizza un solo servizio>, si risolverà a un servizio-spazio-locale, secondo SVC.grappolo.Locale. Se si desidera utilizzare la stessa configurazione in più spazi dei nomi, come staging, sviluppo e produzione, questo sarebbe fondamentale. È necessario utilizzare il nome di dominio completamente qualificato se si desidera raggiungere attraverso gli spazi dei nomi.
Quando dovresti usare diversi spazi dei nomi?
Gli spazi dei nomi sono progettati per situazioni con un gran numero di utenti distribuiti in diversi team o progetti. Non dovresti dover costruire o pensare agli spazi dei nomi per i cluster con pochi a decine di utenti. Quando hai bisogno delle funzionalità che gli spazi dei nomi, inizia a usarle.
Gli spazi dei nomi forniscono nomi per un posto dove andare. All'interno di uno spazio dei nomi, i nomi delle risorse devono essere univoci, ma non tra gli spazi dei nomi. Gli spazi dei nomi sono un mezzo per numerosi utenti per condividere risorse del cluster e separano le risorse che contengono lo stesso spazio dei nomi.
Conclusione
Hai imparato come modificare lo spazio dei nomi Kubernetes predefinito utilizzando la riga di comando Kubectl in questo post. Lo spazio dei nomi predefinito viene assegnato allo spazio dei nomi predefinito quando si crea un cluster AKS o Kubernetes locale. Se tutti i tuoi carichi di lavoro non sono nello spazio dei nomi predefiniti, questo può essere una seccatura.