Modelli di rete in modalità piatta e isolata

Kubernetes non garantisce che qualsiasi elemento esterno a un cluster possa comunicare con il cluster e promette solo di fornire le seguenti funzionalità:

  • Tutti i pod di un cluster possono comunicare direttamente tra loro senza dover ricorrere alla Network Address Translation (NAT). Anche i pod che si trovano su nodi diversi possono comunicare direttamente tra loro.

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

Pertanto, quando una rete ospita due cluster, come mostrato di seguito, una domanda da porsi è come comunicano i pod nel cluster 1 con i pod nel cluster 2? Allo stesso modo, 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?

Un diagramma che mostra punti interrogativi nei percorsi in una rete per la quale Kubernetes non garantisce nulla

Questo documento spiega in che modo un modello di rete flat-mode e un modello di rete island-mode rispondono a queste domande in modo diverso.

Modello di rete in modalità piatta

In una rete completamente integrata o in modalità flat, i pod hanno indirizzi IP univoci in tutti i cluster. Ad esempio, Pod-A nel cluster 1 ha un indirizzo IP che non vedrai da nessun'altra parte nel cluster 1 o nel cluster 2. Allo stesso modo, 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 del cluster 2 (supponendo che non ci siano firewall o altre policy che bloccano il traffico). Per la comunicazione pod-to-pod non è necessario alcun gateway o traduzione di indirizzi.

Allo stesso modo, i client e i server esterni a 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 staticamente nei dispositivi di rete o se i nodi utilizzano il Border Gateway Protocol (BGP) per annunciare che possono gestire il traffico per un determinato intervallo IP.

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

Un 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 a disposizione un ampio spazio di indirizzi IP e puoi permetterti di assegnare un indirizzo IP univoco a ogni pod. Tuttavia, se un ampio spazio di indirizzi IP non è un'opzione per te, un modello di rete in modalità isolata è una buona scelta.

In una rete in modalità isolata, i nodi hanno indirizzi IP univoci, ma per risparmiare indirizzi IP scarsi, i pod non hanno indirizzi univoci tra i cluster. Ciò non causa problemi perché i pod di un cluster non comunicano mai direttamente con i pod di un altro cluster. 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à isolata

Allo stesso modo, il traffico (in entrata) da un client che entra in un cluster e il traffico (in uscita) che esce da un cluster vengono gestiti da gateway simili. I gateway possono essere implementati in vari modi. Ad esempio, NAT, indirizzi IP virtuali (VIP) e proxy sono alcuni esempi di gateway. Eseguono la conversione degli indirizzi IP, il che ha l'effetto di mantenere privati gli IP dei pod.

Nel modello di rete in modalità isolata, gli stessi indirizzi IP dei pod possono essere utilizzati in ogni cluster. ovvero gli indirizzi IP dei pod non devono essere univoci nei cluster. Come suggerisce il 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à isolata

Un vantaggio importante del modello di rete in modalità isolata è che gli indirizzi IP dei pod possono essere riutilizzati in questo modo.

Vantaggi e svantaggi dei due modelli

Di seguito sono elencati alcuni dei vantaggi e degli svantaggi dei due modelli:

  • Una rete piatta è più veloce di una rete isolata perché i gateway in modalità isolata eseguono traduzioni degli indirizzi e queste traduzioni comportano un costo in termini di prestazioni.

  • Il debug dei problemi del cluster è più semplice nelle reti flat perché tutto nella rete ha un indirizzo IP univoco, 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 e quindi è più facile determinare esattamente quale pod sta causando problemi. Allo stesso modo, gli IP client non vengono oscurati in modalità piatta come in modalità isola, il che aiuta anche con il debug.

  • Potresti non essere in grado di utilizzare il modello di rete flat se hai pochi indirizzi IP o se il tuo spazio IP è frammentato (ovvero se non hai grandi blocchi di indirizzi IP). In questo caso, una rete isolata è un'opzione migliore.

È importante notare che i modelli di rete flat e isolata sono solo due dei possibili modelli di rete e che esistono molte varianti anche all'interno di questi modelli.