Pianifica gli indirizzi IP (kubeception)

Questo documento mostra come pianificare gli indirizzi IP per un'installazione di Google Distributed Cloud che include cluster utente che utilizzano kubeception.

Che cos'è kubeception?

Il termine kubeception viene utilizzato per trasmettere l'idea che un cluster Kubernetes viene utilizzato per creare e gestire altri cluster Kubernetes. Nel contesto di Google Distributed Cloud, la kubeception si riferisce al caso in cui il control plane per un cluster utente viene eseguito su uno o più nodi in un cluster di amministrazione.

Non è consigliabile utilizzare kubeception. Ti consigliamo invece di utilizzare Controlplane V2. Con Controlplane V2, i nodi del control plane per il cluster utente si trovano nel cluster utente stesso.

Prima di iniziare

Leggi la panoramica di Google Distributed Cloud e la panoramica dell'installazione.

Esempio di allocazione degli indirizzi IP

Questa sezione fornisce un esempio di come allocare indirizzi IP statici in un'installazione che include questi elementi:

  • Una workstation di amministrazione

  • Un cluster di amministrazione

  • Un cluster utente ad alta disponibilità (HA) con cinque nodi worker

  • Un cluster utente non HA con quattro nodi worker

Nodi del cluster di amministrazione

Il cluster di amministrazione ha sette nodi:

  • Un nodo che esegue il control plane per il cluster di amministrazione
  • Due nodi che eseguono componenti aggiuntivi per il cluster di amministrazione
  • Tre nodi che eseguono il piano di controllo per il cluster utente ad alta disponibilità
  • Un nodo che esegue il piano di controllo per il cluster utente non ad alta disponibilità

Bilanciamento del carico

Per questo esempio, supponiamo che i cluster utilizzino il bilanciatore del carico MetalLB. Questo bilanciatore del carico viene eseguito sui nodi del cluster, pertanto non sono necessarie VM aggiuntive per il bilanciamento del carico.

Subnet

Per questo esempio, supponiamo che ogni cluster si trovi sulla propria VLAN e che i cluster si trovino in queste sottoreti:

VM Subnet Gateway predefinito
Workstation di amministrazione e cluster di amministrazione 172.16.20.0/24 172.16.20.1
Cluster di utenti 1 172.16.21.0/24 172.16.21.1
Cluster di utenti 2 172.16.22.0/24 172.16.22.1

Il seguente diagramma illustra le tre VLAN e le subnet. Tieni presente che i VIP non vengono associati a nessun nodo specifico in un cluster. Questo perché il bilanciatore del carico MetalLB può scegliere quale nodo annuncia il VIP per un singolo servizio. Ad esempio, nel cluster utente 1, un nodo worker potrebbe annunciare 172.16.21.31 e un altro nodo worker potrebbe annunciare 172.16.21.32.

Indirizzi IP per un cluster di amministrazione e due cluster utente.
Indirizzi IP per un cluster di amministrazione e due cluster utente (fai clic per ingrandire)

Indirizzo IP di esempio: workstation di amministrazione

In questo esempio, la workstation di amministrazione si trova nella stessa subnet del cluster di amministrazione: 172.16.20.0/24. Un indirizzo vicino agli indirizzi dei nodi sarebbe adatto per la workstation di amministrazione. Ad esempio, 172.16.20.20.

Indirizzi IP di esempio: nodi del cluster di amministrazione

Per un cluster di amministrazione con sette nodi, devi riservare otto indirizzi IP. L'indirizzo aggiuntivo è obbligatorio perché è necessario durante l'upgrade, l'aggiornamento e la riparazione automatica del cluster. Ad esempio, potresti riservare i seguenti indirizzi IP per i nodi del cluster di amministrazione:

Indirizzi IP dei nodi nel cluster di amministrazione
172.16.20.2 - 172.16.20.9

Indirizzi IP di esempio: VIP nella subnet del cluster di amministrazione

La tabella seguente mostra un esempio di come puoi designare VIP da configurare sul bilanciatore del carico per il cluster di amministrazione. Tieni presente che gli IP virtuali per i server API Kubernetes dei cluster utente si trovano nella sottorete del cluster di amministrazione. Questo perché in questo esempio il server API Kubernetes per un cluster di utenti viene eseguito su un nodo del cluster di amministrazione. Tieni presente che nei file di configurazione del cluster il campo in cui specifichi l'IP virtuale per un server API Kubernetes si chiama controlPlaneVIP:

VIP Indirizzo IP
VIP per il server API Kubernetes del cluster di amministrazione 172.16.20.30
VIP dei componenti aggiuntivi del cluster di amministrazione 172.16.20.31
VIP per il server API Kubernetes del cluster utente 1 172.16.20.32
VIP per il server API Kubernetes del cluster utente 2 172.16.20.33

Indirizzi IP di esempio: nodi del cluster utente 1

Per un cluster utente con cinque nodi, devi riservare sei indirizzi IP. L'indirizzo aggiuntivo è obbligatorio perché è necessario durante l'upgrade, l'aggiornamento e la riparazione automatica del cluster. Ad esempio, potresti riservare i seguenti indirizzi IP per i nodi del cluster utente 1:

Indirizzi IP dei nodi del cluster utente 1
172.16.21.2 - 172.16.21.7

Indirizzi IP di esempio: VIP nella subnet del cluster utente 1

La tabella seguente mostra un esempio di come designare i VIP da configurare sul bilanciatore del carico per il cluster di utenti 1:

VIP Descrizione Indirizzo IP
VIP in entrata per il cluster utente 1 Configurato sul bilanciatore del carico per il cluster utente 1 172.16.21.30
VIP di servizio per il cluster utente 1 Dieci indirizzi per i servizi di tipo LoadBalancer.
Configurato in base alle esigenze sul bilanciatore del carico per il cluster di utenti 1.
Tieni presente che questo intervallo include l'IP virtuale di ingresso.
Questo è un requisito per il bilanciatore del carico MetalLB.
172.16.21.30 - 172.16.21.39

Indirizzi IP di esempio: 2 nodi del cluster utente

Per un cluster di utenti con quattro nodi, devi riservare cinque indirizzi IP. L'indirizzo aggiuntivo è obbligatorio perché è necessario durante l'upgrade, l'aggiornamento e la riparazione automatica del cluster. Ad esempio, potresti riservare i seguenti indirizzi IP per i nodi del cluster utente 2:

Indirizzi IP dei nodi del cluster utente 2
172.16.22.2 - 172.16.22.6

Indirizzi IP di esempio: VIP nella subnet del cluster utente 2

La tabella seguente mostra un esempio di come designare i VIP da configurare sul bilanciatore del carico per il cluster di utenti 2:

VIP Descrizione Indirizzo IP
VIP in entrata per il cluster utente 2 Configurato sul bilanciatore del carico per il cluster utente 2 172.16.22.30
VIP di servizio per il cluster utente 2 Dieci indirizzi per i servizi di tipo LoadBalancer.
Configurato in base alle esigenze sul bilanciatore del carico per il cluster di utenti 2.
Tieni presente che questo intervallo include l'IP virtuale di ingresso.
Questo è un requisito per il bilanciatore del carico MetalLB.
172.16.22.30 - 172.16.22.39

Indirizzi IP di esempio: pod e servizi

Prima di creare un cluster, devi specificare un CIDR da utilizzare per gli indirizzi IP dei pod e un altro intervallo CIDR da utilizzare per gli indirizzi ClusterIP dei servizi Kubernetes.

Decidi quali intervalli CIDR vuoi utilizzare per i pod e i servizi. Ad esempio:

FinalitàIntervallo CIDR
Pod nel cluster di amministrazione192.168.0.0/16
Pod nel cluster utente 1192.168.0.0/16
Pod nel cluster utente 2192.168.0.0/16
Servizi nel cluster di amministrazione10.96.232.0/24
Servizi nel cluster utente 110.96.0.0/20
Servizi nel cluster utente 210.96.128.0/20

Gli esempi precedenti illustrano i seguenti punti:

  • L'intervallo CIDR del pod può essere lo stesso per più cluster.

  • In genere sono necessari più pod che servizi, quindi per un determinato cluster probabilmente vorrai un intervallo CIDR del pod più grande dell'intervallo CIDR del servizio. L'intervallo di pod di esempio per un cluster di utenti è 192.168.0.0/16, che ha 2^(32-16) = 2^16 indirizzi. Tuttavia, un intervallo di servizio di esempio per un cluster di utenti è 10.96.0.0/20, che ha solo 2^(32-20) = 2^12 indirizzi.

Evitare la sovrapposizione

Ti consigliamo di utilizzare intervalli CIDR non predefiniti per evitare sovrapposizioni con gli indirizzi IP raggiungibili nella tua rete. Gli intervalli di servizi e pod non devono sovrapporsi a nessun indirizzo esterno al cluster che vuoi raggiungere dall'interno del cluster.

Ad esempio, supponiamo che l'intervallo del servizio sia 10.96.232.0/24 e l'intervallo del pod sia 192.168.0.0/16 (192.168.0.1 - 192.168.255.254). Qualsiasi traffico inviato da un pod a un indirizzo in uno di questi intervalli verrà trattato come traffico all'interno del cluster e non raggiungerà alcuna destinazione esterna al cluster.

In particolare, gli intervalli di servizi e pod non devono sovrapporsi a:

  • Indirizzi IP dei nodi in qualsiasi cluster

  • Indirizzi IP utilizzati dalle macchine del bilanciatore del carico

  • VIP utilizzati dai nodi del control plane e dai bilanciatori del carico

  • Indirizzi IP di server vCenter, server DNS e server NTP

Ti consigliamo di inserire gli intervalli di servizi e pod nello spazio di indirizzi privati RFC 1918.

Ecco un motivo per cui consigliamo di utilizzare gli indirizzi RFC 1918. Supponiamo che l'intervallo del pod o del servizio contenga indirizzi IP esterni. Qualsiasi traffico inviato da un pod a uno di questi indirizzi esterni verrà trattato come traffico all'interno del cluster e non raggiungerà la destinazione esterna.

Server DNS e gateway predefinito

Prima di compilare i file di configurazione, devi conoscere l'indirizzo IP di un server DNS che può essere utilizzato dalla workstation di amministrazione e dai nodi del cluster.

Devi anche conoscere l'indirizzo IP del gateway predefinito per ciascuna delle tue sottoreti. Negli esempi precedenti, il gateway predefinito per ogni subnet è il primo indirizzo nell'intervallo. Ad esempio, nella subnet per il cluster amministrativo, il gateway predefinito è visualizzato come 172.16.20.1.

Ulteriori informazioni

Gestire gli indirizzi IP dei nodi