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). 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.
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, 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?
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à Flat
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 possono comunicare direttamente con qualsiasi pod del cluster 2 (supponendo che non siano presenti firewall o altri criteri che blocchino 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.
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. Se invece non trovi l'opzione di un ampio 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 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.
Analogamente, il traffico (in entrata) da un client che entra in un cluster (in uscita) da un cluster viene gestito 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 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
Ecco alcuni vantaggi e svantaggi dei due modelli:
Una rete flat è più veloce di una rete con isole perché i gateway in modalità island eseguono traduzioni degli 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 per cui è più facile determinare esattamente quale pod sta causando i problemi. Analogamente, gli IP dei client non sono oscurati in modalità flat come in modalitàเกาะ e questo aiuta anche con il debug.
Se hai un indirizzo IP insufficiente, potresti non essere in grado di utilizzare il modello di rete piatta 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.