Modelli di rete con modalità flat e in modalità isola

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 demoni 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 farsi è come i pod del cluster 1 comunicano con i pod del cluster 2. Analogamente, come fanno i client o i server esterni ai cluster, contrassegnati come "Altro client" e "Altro server" nel diagramma, a comunicare con un pod all'interno di un cluster?

Un diagramma che mostra dei punti interrogativi nei percorsi di una rete per i quali Kubernetes non fornisce alcuna garanzia

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

Modello di rete in modalità Flat

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. 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 del cluster 2 (supponendo che non siano presenti firewall o altri criteri che blocchino il traffico). Non è necessaria la traduzione di gateway o indirizzi per la comunicazione pod-to-pod.

Analogamente, 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 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.

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 uno spazio di indirizzi IP di grandi dimensioni e puoi permetterti di assegnare un indirizzo IP univoco a ogni pod. Tuttavia, se uno spazio di indirizzi IP di grandi dimensioni non è un'opzione per te, un modello di rete in modalità isole è una buona 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. Questo non causa problemi perché i pod di un cluster non comunicano mai direttamente con i pod di un altro cluster. Invece, come mostrato nel seguente diagramma, esistono gateway che fungono da intermediari tra un pod in un cluster e un pod in un altro cluster.

Un diagramma che mostra un modello di rete in modalità Isola

Analogamente, il traffico (in entrata) di 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 traduzioni di indirizzi IP 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 ogni cluster. In altre parole, gli indirizzi IP dei pod non devono essere univoci nei vari 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.

Un diagramma che mostra un modello di rete in modalità Isola

Un vantaggio principale 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

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

  • Una rete flat è più veloce di una rete a isole perché i gateway in modalità island eseguono traduzioni di indirizzi e queste traduzioni comportano un costo in termini di prestazioni.

  • Il debug dei problemi del cluster è più semplice nelle reti piatte perché tutti gli elementi della rete hanno 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, pertanto è più facile determinare esattamente quale pod causa i problemi. Analogamente, gli IP dei client non sono oscurati in modalità flat come in modalitàเกาะ e questo aiuta anche con il debug.

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

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