Modelli di rete in modalità piatta e in modalità a isola

Kubernetes non garantisce che nulla all'esterno 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 al Network Address Translation (NAT). Persino i pod su nodi diversi possono comunicare direttamente tra loro.

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

Perciò, quando una rete ospita due cluster, come illustrato di seguito, domanda è come i pod nel cluster 1 comunicano 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, comunicare con un pod all'interno di un cluster?

Un diagramma che mostra dei punti interrogativi in corrispondenza dei percorsi di una rete e per i quali Kubernetes non garantisce nulla

Questo documento spiega come utilizzare un modello di rete piatta e una modalità isola. di rete risponde in modo diverso a queste domande.

Modello di rete in modalità piatta

In una rete completamente integrata o in modalità flat, i pod hanno indirizzi IP univoci in per tutti i cluster. Ad esempio, Pod-A nel cluster 1 ha un indirizzo IP che non verrà visualizzato 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 può comunicare direttamente con uno qualsiasi dei pod nel cluster 2 (supponendo che ci siano nessun firewall o altri criteri che bloccano il traffico). Nessun gateway o indirizzo per la comunicazione pod-pod.

Analogamente, i client e i server esterni a un cluster possono comunicare direttamente 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 nel Border Gateway Protocol (BGP) viene utilizzato dai nodi per pubblicizzare che possono gestire il traffico per un determinato Intervallo IP.

Pertanto, nelle reti piatte, la comunicazione è facile e diretta: non ci sono che si sovrappongono 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à piatta è un'opzione se hai il lusso di un IP di grandi dimensioni di indirizzi IP univoci ed è possibile assegnare un indirizzo IP univoco a ciascun pod. Se invece non trovi l'opzione di grande spazio di indirizzi IP, di rete è una buona scelta.

In una rete in modalità isola, i nodi hanno indirizzi IP univoci ma, per essere ed economici con pochi indirizzi IP, i pod non hanno indirizzi univoci cluster. Questo non causa problemi perché i pod in un cluster non vengono mai comunicare con i pod in un altro cluster. Invece, come nel diagramma seguente mostra che 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 (in uscita) da un cluster viene gestito da gateway simili. Gateway possono essere implementate in vari modi. Ad esempio, NAT, indirizzi IP virtuali (VIP) e i proxy sono alcuni esempi di gateway. Eseguono l'indirizzo IP traslazioni che hanno l'effetto di mantenere privati gli IP dei pod.

Nel modello di rete in modalità isola, è possibile utilizzare gli stessi indirizzi IP dei pod in un cluster Kubernetes. Ciò significa che gli indirizzi IP dei pod non devono essere univoci tra i cluster. Come suggerisce il diagramma seguente, puoi utilizzare gli stessi indirizzi IP dei pod 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 riutilizzato in questo modo.

Vantaggi e svantaggi dei due modelli

Ecco alcuni vantaggi e svantaggi dei due modelli:

  • Una rete piatta è più veloce di una rete in isola perché i gateway nell'isola eseguire le traduzioni degli indirizzi, che comporta e costi delle prestazioni.

  • Il debug dei problemi dei cluster è più semplice nelle reti piatte, perché la rete ha un indirizzo IP univoco ed è quindi più facile individuare il punto che si verifica. Ad esempio, gli IP dei pod non sono mascherati dietro l'indirizzo IP di un nodo per cui è più facile determinare esattamente quale pod sta causando i problemi. Allo stesso modo, gli IP dei client non sono oscurati in modalità flat come nell'isola e questo aiuta anche con il debug.

  • Potresti non essere in grado di utilizzare il modello di rete piatta se hai pochi IP indirizzi IP o se lo spazio IP è frammentato (ossia, se non disponi di risorse blocchi di indirizzi IP). In tal caso, una rete insulare è l'opzione migliore.

È importante notare che i modelli di rete piatta e a isola sono solo due dei possibili modelli di rete e ci sono molte varianti anche all'interno di questi di grandi dimensioni.