Modelli di rete piatti e in modalità isola

Kubernetes non garantisce che nulla al di fuori di un cluster possa comunicare con il cluster e promette solo di fornire le seguenti funzionalità:

  • Tutti i pod in un cluster possono comunicare direttamente tra loro senza dover ricorrere alla traduzione degli indirizzi di rete (NAT). Anche i pod che si trovano su nodi diversi possono comunicare direttamente tra loro.

  • Gli agenti su un nodo, ad esempio daemon di sistema o kubelet, possono comunicare con tutti i pod su quel nodo.

Quando una rete ospita due cluster, come mostrato di seguito, ti viene chiesto come fanno i pod nel cluster 1 a comunicare con i pod nel cluster 2? Analogamente, in che modo i client o i server esterni ai cluster, contrassegnati come "Altro client" e "Altro server" nel diagramma, comunicano con un pod all'interno di un cluster?

Diagramma che mostra dei punti interrogativi sui percorsi in una rete per cui Kubernetes non garantisce nulla

Questo documento spiega in che modo un modello di rete in modalità piatta e un modello di rete in modalità isola rispondono a queste domande in modo diverso.

Modello di rete in modalità stabile

In una rete completamente integrata o in modalità piatta, i pod hanno indirizzi IP univoci in tutti i cluster. Ad esempio, Pod-A nel cluster 1 ha un indirizzo IP che non vedrai altrove nel cluster 1 o nel cluster 2. Analogamente, Pod-G nel cluster 2 ha un indirizzo univoco in entrambi i cluster. Ciò significa che i pod del cluster 1 possono comunicare direttamente con qualsiasi pod nel cluster 2 (supponendo che non esistano firewall o altri criteri che bloccano il traffico). Per la comunicazione tra pod non è necessaria alcuna traduzione di gateway o indirizzi.

Analogamente, i client e i server all'esterno di un cluster possono comunicare direttamente con un pod all'interno di un cluster tramite l'indirizzo IP univoco del pod se, ad esempio, il routing è configurato in modo statico nei dispositivi di rete o se i nodi utilizzano il Border Gateway Protocol (BGP) per indicare che possono gestire il traffico per un determinato intervallo IP.

Pertanto, nelle reti flat, la comunicazione è facile e diretta: non ci sono indirizzi IP sovrapposti e non è necessario utilizzare reti overlay o NAT.

Diagramma che mostra un modello di rete in modalità piatta

Modello di rete in modalità isola

Un modello di rete in modalità flat è un'opzione se hai il lusso di un grande spazio di indirizzi IP e puoi permetterti di assegnare un indirizzo IP univoco a ogni pod. Tuttavia, se per te non è possibile utilizzare un ampio spazio di indirizzi IP, un modello di rete in modalità isola è un'ottima scelta.

In una rete in modalità isola, i nodi hanno indirizzi IP univoci ma, per essere economici con indirizzi IP scarsi, i pod non hanno indirizzi univoci nei cluster. Ciò non causa problemi, perché i pod in un cluster non comunicano mai direttamente con i pod in un altro cluster. Invece, come mostra il seguente diagramma, esistono gateway che mediano tra un pod in un cluster e un pod in un altro cluster.

Diagramma che mostra un modello di rete in modalità isola

Analogamente, il traffico (in entrata) da un client che entra in un cluster e il traffico in uscita da un cluster viene gestito da gateway simili. I gateway possono essere implementati in vari modi. NAT, indirizzi IP virtuali (VIP) e proxy sono solo alcuni esempi di gateway. Effettuano le traduzioni degli indirizzi IP, in modo da mantenere privati gli IP dei pod.

Nel modello di rete in modalità isola, puoi utilizzare gli stessi indirizzi IP dei pod in ogni cluster. In altre parole, gli indirizzi IP dei pod non devono essere univoci nei vari cluster. Come suggerito dal seguente diagramma, puoi utilizzare gli stessi indirizzi IP dei pod in ogni cluster, perché un pod in un cluster non comunica mai direttamente con un pod in un altro cluster.

Diagramma che mostra un modello di rete in modalità isola

Uno dei principali vantaggi del modello di rete in modalità isola è che gli indirizzi IP dei pod possono essere riutilizzati in questo modo.

Vantaggi e svantaggi dei due modelli

Alcuni dei vantaggi e degli svantaggi dei due modelli sono elencati di seguito:

  • Una rete piatta è più veloce di una rete insulare perché i gateway in modalità isola eseguono traduzioni degli indirizzi, che comportano costi in termini di prestazioni.

  • Nelle reti flat il debug dei problemi dei cluster è più semplice perché tutto ciò che si trova nella rete ha un indirizzo IP univoco ed è quindi più facile individuare dove si verifica un problema. Ad esempio, gli IP dei pod non sono mascherati dietro l'indirizzo IP di un nodo, perciò è più facile determinare esattamente quale pod causa problemi. Allo stesso modo, gli IP dei client non sono oscurati in modalità flat come sono in modalità isola, il che facilita anche il debug.

  • Potresti non essere in grado di utilizzare il modello di rete piatta se hai indirizzi IP scarsi o se il tuo spazio IP è frammentato (ovvero se non hai grandi blocchi di indirizzi IP). In tal caso, una rete insulare è l'opzione migliore.

È importante notare che i modelli di rete flat e insulare sono solo due dei possibili modelli di rete e che esistono molte variazioni anche al loro interno.