Questa pagina mostra come configurare intervalli di indirizzi IPv4 dei pod aggiuntivi per un cluster nativo di VPC e come specificare intervalli di indirizzi IPv4 dei pod personalizzati per i pool di nodi di un cluster nativo di VPC.
Gli intervalli di indirizzi IPv4 dei pod nei cluster VPC-native provengono sempre dagli intervalli di indirizzi IPv4 secondari della subnet. Quando crei un nuovo cluster, assegni al cluster un intervallo di indirizzi IPv4 del pod predefinito.
- Per i cluster Autopilot e Standard, puoi configurare un cluster in modo che utilizzi intervalli di indirizzi IPv4 dei pod aggiuntivi. GKE utilizza questi intervalli di indirizzi IPv4 dei pod aggiuntivi per gli indirizzi IPv4 dei pod sui nodi creati nei pool di nodi futuri.
- Per i cluster standard, puoi creare pool di nodi che utilizzano ciascuno un intervallo di indirizzi IPv4 secondari della subnet personalizzato per i propri indirizzi IPv4 dei pod.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installa e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, ottieni la versione più recente eseguendo
gcloud components update
.
- Assicurati di disporre del ruolo IAM (Identity and Access Management) Amministratore rete di calcolo per il progetto contenente la sottorete del cluster. Questo è necessario per creare nuovi intervalli di indirizzi IPv4 secondari della subnet. Quando utilizzi la Rete VPC condivisa, dovrai coordinarti con l'amministratore di rete del progetto host VPC condiviso.
- Assicurati che il tuo cluster GKE sia un cluster VPC nativo. I cluster basati su route non supportano intervalli di indirizzi IPv4 dei pod aggiuntivi o intervalli di indirizzi IPv4 dei pod personalizzati per il pool di nodi.
- Consulta la sezione Passaggi successivi.
Crea un nuovo intervallo di indirizzi IPv4 secondario della subnet
Per creare un nuovo intervallo di indirizzi IPv4 secondario della sottorete, utilizza la console Google Cloud o Google Cloud CLI. Ogni subnet supporta fino a 30 intervalli di indirizzi IPv4 secondari. Per ulteriori informazioni, consulta Modificare gli intervalli IPv4 secondari nella documentazione VPC.
Console
Vai alla pagina Reti VPC nella console Google Cloud.
Nell'elenco Reti VPC, seleziona la rete che vuoi espandere.
Nell'elenco Subnet, seleziona la subnet che ti interessa.
Fai clic su Modifica.
Fai clic su Aggiungi intervallo IP.
In Nome intervallo di subnet, inserisci il nome dell'intervallo di indirizzi IPv4 secondario della nuova subnet. Ad esempio,
pod-range-2
.In Intervallo IP secondario, inserisci l'intervallo di indirizzi IPv4 in formato CIDR. Ad esempio,
10.2.204.0/22
.Fai clic su Salva.
gcloud
gcloud compute networks subnets update SUBNET_NAME \
--region=REGION \
--add-secondary-ranges=SECONDARY_RANGE_NAME=SECONDARY_RANGE_CIDR
Sostituisci quanto segue:
SUBNET_NAME
: il nome della subnet del cluster (la stessa assegnata al cluster al momento della creazione).REGION
: la regione della subnet del cluster. La regione della subnet del cluster è la regione che contiene il cluster GKE.SECONDARY_RANGE_NAME
: il nome del nuovo intervallo di indirizzi IPv4 secondario della subnet da utilizzare come intervallo di indirizzi IPv4 del pod aggiuntivo per il cluster. Ad esempio,pod-range-2
.SECONDARY_RANGE_CIDR
: il CIDR da utilizzare per l'intervallo di indirizzi IPv4 secondario della nuova subnet. Ad esempio,10.2.204.0/22
.
Puoi aggiungere due o più nuovi intervalli di indirizzi IPv4 secondari della subnet specificando altre coppie SECONDARY_RANGE_NAME
=SECONDARY_RANGE_CIDR
, separate da virgole, dopo il flag --add-secondary-ranges
.
Assegna intervalli IPv4 dei pod aggiuntivi a un cluster
Puoi assegnare altri intervalli di indirizzi IPv4 dei pod a livello di cluster, applicabili ai nuovi nodi creati nei nuovi pool di nodi che crei nel cluster. Per assegnare intervalli di indirizzi IPv4 dei pod aggiuntivi a un cluster, devi prima creare un nuovo intervallo di indirizzi IPv4 secondario della subnet.
L'assegnazione di intervalli di indirizzi IPv4 dei pod aggiuntivi a un cluster è supportata da:
- Cluster Autopilot che eseguono GKE versione 1.26 e successive
- Cluster standard
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Accanto al cluster che vuoi modificare, fai clic su more_vert Azioni e poi su edit Modifica.
Nella sezione Networking, accanto a Intervalli IPv4 dei pod del cluster (aggiuntivi), fai clic su edit Modifica.
Nella finestra di dialogo Modifica intervalli IPv4 di pod aggiuntivi del cluster, fai clic su Intervalli CIDR secondari dei pod e seleziona i nomi di uno o più intervalli di indirizzi IPv4 secondari della subnet esistenti nella subnet del cluster. Se non sono disponibili altri intervalli di indirizzi IPv4 secondari della subnet, prima crea un nuovo intervallo di indirizzi IPv4 secondari della subnet e poi ripeti questi passaggi.
Fai clic su Salva modifiche.
gcloud
Aggiorna il cluster utilizzando il flag
--additional-pod-ipv4-ranges
:gcloud container clusters update CLUSTER_NAME \ --additional-pod-ipv4-ranges=SECONDARY_RANGE_NAME \ --location=COMPUTE_LOCATION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.SECONDARY_RANGE_NAME
: il nome di uno o più intervalli di indirizzi IPv4 secondari della subnet esistenti nella subnet del cluster, separati da virgole. Se non sono disponibili intervalli di indirizzi IPv4 secondari della subnet, crea prima un nuovo intervallo di indirizzi IPv4 secondari della subnet.COMPUTE_LOCATION
: la posizione Compute Engine per il cluster.
Cerca gli intervalli IPv4 dei pod del cluster
Per cercare l'intervallo di indirizzi IP del pod IPv4 predefinito di un cluster e gli eventuali intervalli di indirizzi IP del pod aggiuntivi assegnati al cluster, utilizza il seguente comando:
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION
Sostituisci quanto segue:
CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione Compute Engine per il cluster.
L'output è simile al seguente, che include il valore IPAllocationPolicy del cluster:
ipAllocationPolicy:
clusterSecondaryRangeName: cluster-pods
clusterIpv4CidrBlock: 10.10.0.0/23
additionalPodRangesConfig:
podRangeNames:
- pod-range-1
- pod-range-2
dove:
clusterSecondaryRangeName
: il nome dell'intervallo di indirizzi IPv4 secondario della subnet utilizzato come intervallo di indirizzi IPv4 del pod predefinito del cluster, definito al momento della creazione del cluster.clusterIpv4CidrBlock
: il CIDR dell'intervallo di indirizzi IPv4 secondario della subnet per gli indirizzi IPv4 dei pod, definito al momento della creazione del cluster.additionalPodRangesConfig.podRangeNames
: un elenco di eventuali intervalli di indirizzi IPv4 secondari della sottorete assegnati per gli indirizzi IPv4 dei pod.
Intervalli di indirizzi IPv4 dei pod personalizzati del node pool
Per i cluster standard che eseguono GKE 1.20.4-gke.500 o versioni successive, puoi assegnare un intervallo IPv4 dei pod personalizzato a un nuovo pool di nodi utilizzando uno dei seguenti metodi:
Intervallo di indirizzi IPv4 dei pod personalizzato del node pool gestito da GKE: con questa opzione, crei un nuovo pool di nodi e fornisci a GKE le informazioni necessarie per creare un nuovo intervallo di indirizzi IPv4 secondario della subnet nella subnet del cluster. A ogni nuovo nodo creato nel nuovo pool di nodi viene assegnato un intervallo di indirizzi IP alias per i relativi indirizzi IPv4 del pod e ogni intervallo di indirizzi IP alias proviene dall'intervallo di indirizzi IPv4 secondario della nuova subnet creato da GKE. Questa opzione può essere utilizzata solo se sia il cluster sia la rete VPC contenente la subnet del cluster si trovano nello stesso progetto.
Intervallo di indirizzi IPv4 dei pod personalizzato per il pool di nodi gestito dall'utente: con questa opzione, crei un nuovo pool di nodi in cui GKE utilizza un intervallo di indirizzi IPv4 secondario della subnet esistente. A ogni nuovo nodo creato nel nuovo pool di nodi viene assegnato un intervallo di indirizzi IP alias per i relativi indirizzi IPv4 del pod e ogni intervallo di indirizzi IP alias proviene dall'intervallo di indirizzi IPv4 secondario della subnet che indichi a GKE di utilizzare. Se il cluster si trova in un progetto di servizio VPC condiviso e se la subnet del cluster si trova nella rete VPC condivisa del progetto host, devi utilizzare questa opzione.
L'intervallo di indirizzi IPv4 dei pod personalizzato di un pool di nodi sostituisce tutti gli intervalli di indirizzi IPv4 dei pod definiti a livello di cluster, inclusi gli intervalli di indirizzi IPv4 dei pod aggiuntivi assegnati al cluster. Gli intervalli di indirizzi IPv4 dei pod personalizzati assegnati ai pool di nodi sono chiamati anche CIDR multi-pod non contigui.
Esempio di intervallo di indirizzi IPv4 del pod personalizzato del node pool
Il seguente diagramma mostra un cluster nativo di VPC con intervalli di indirizzi IPv4 dei pod gestiti dall'utente:
Nel diagramma precedente:
- Il numero massimo di pod per nodo per ogni pool di nodi nel cluster è stato impostato su
64
. Per supportare un massimo di 64 pod per nodo, GKE crea ogni nodo con un intervallo di indirizzi IP alias/25
, fornendo128
indirizzi IPv4 per i pod per nodo. - L'intervallo di indirizzi IPv4 dei pod predefinito del cluster è un
/24
. Poiché ogni nodo richiede un/25
per gli indirizzi IPv4 del pod, l'intervallo di indirizzi IPv4 del pod predefinito del cluster supporta solo due nodi. - Per supportare nodi aggiuntivi, un amministratore del cluster ha creato un altro
pool di nodi, mantenendo il numero massimo di pod per nodo pari a
64
. Il pool di nodi aggiuntivo utilizza un intervallo di indirizzi IPv4 del pod/20
personalizzato, che supporta altri 32 nodi.
Intervallo di indirizzi IPv4 del pod personalizzato del pool di nodi gestito da GKE
Per creare un pool di nodi con un intervallo di indirizzi IPv4 del pod personalizzato gestito da GKE, utilizza l'interfaccia a riga di comando gcloud o l'API GKE come segue:
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--create-pod-ipv4-range=name=SECONDARY_RANGE_NAME,range=CIDR_OR_NETMASK
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi.CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione Compute Engine per il cluster.SECONDARY_RANGE_NAME
: il nome dell'intervallo di indirizzi IPv4 secondario della subnet creato da GKE. Se omettiname=SECONDARY_RANGE_NAME
, GKE genera automaticamente il nome dell'intervallo di indirizzi IPv4 secondario della nuova subnet.CIDR_OR_NETMASK
: l'intervallo di indirizzi IPv4 del pod expressed in either CIDR format (for example,10.12.4.0/20
) or as a subnet mask (for example,/20
).- Se fornisci solo una subnet mask, GKE tenta di creare un nuovo intervallo di indirizzi IPv4 secondario della subnet che non sia in conflitto con gli intervalli di indirizzi IPv4 della subnet esistenti nella rete VPC che contiene la subnet del cluster.
- Se ometti
range=CIDR_OR_NETMASK
, GKE tenta di creare un nuovo intervallo di indirizzi IPv4 secondario della subnet/14
che non sia in conflitto con gli intervalli di indirizzi IPv4 della subnet esistenti nella rete VPC contenente la subnet del cluster.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": true,
"podRange": "SECONDARY_RANGE_NAME",
"podIpv4CidrBlock": "CIDR_OR_NETMASK"
}
}
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi.SECONDARY_RANGE_NAME
: facoltativo, il nome dell'intervallo di indirizzi IPv4 secondario della subnet creato da GKE. Se utilizzi""
come valore pernetworkConfig.podRange
o se ometti il parametropodRange
nella richiesta, GKE genera automaticamente il nome dell'intervallo di indirizzi IPv4 secondario della nuova subnet.CIDR_OR_NETMASK
: l'intervallo di indirizzi IPv4 del pod expressed in either CIDR format (for example,10.12.4.0/20
) or as a subnet mask (for example,/20
).- Se fornisci solo una subnet mask, GKE tenta di creare un nuovo intervallo di indirizzi IPv4 secondario della subnet che non sia in conflitto con gli intervalli di indirizzi IPv4 della subnet esistenti nella rete VPC che contiene la subnet del cluster.
- Se utilizzi
""
come valore pernetworkConfig.podIpv4CidrBlock
, GKE tenta di creare un nuovo intervallo di indirizzi IPv4 secondario della subnet/14
che non sia in conflitto con gli intervalli di indirizzi IPv4 della subnet esistenti nella rete VPC contenente la subnet del cluster.
Intervallo di indirizzi IPv4 dei pod personalizzato del pool di nodi gestito dall'utente
Per creare un pool di nodi con un intervallo di indirizzi IPv4 dei pod personalizzato gestito dall'utente, utilizza gcloud CLI o l'API GKE come segue:
gcloud
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--pod-ipv4-range SECONDARY_RANGE_NAME
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi.CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione Compute Engine per il cluster.SECONDARY_RANGE_NAME
: il nome di un intervallo di indirizzi IPv4 secondario della subnet esistente nella subnet del cluster. Se necessario, crea prima un nuovo intervallo di indirizzi IPv4 secondari della subnet.
API
"nodePool": {
"name": "POOL_NAME",
...
"networkConfig": {
"createPodRange": false,
"podRange": "SECONDARY_RANGE_NAME"
}
}
Sostituisci quanto segue:
POOL_NAME
: il nome del nuovo pool di nodi.SECONDARY_RANGE_NAME
: il nome di un intervallo di indirizzi IPv4 secondario della subnet esistente nella subnet del cluster. Se necessario, crea prima un nuovo intervallo di indirizzi IPv4 secondari della subnet.
Cerca gli intervalli IPv4 dei pod pool di nodi
Per cercare l'intervallo di indirizzi IPv4 del pod di un pool di nodi, utilizza il seguente comando:
gcloud container node-pools describe POOL_NAME \
--cluster=CLUSTER_NAME \
--location=COMPUTE_LOCATION
Sostituisci quanto segue:
POOL_NAME
: il nome del pool di nodi.CLUSTER_NAME
: il nome del cluster.COMPUTE_LOCATION
: la posizione Compute Engine per il cluster.
L'output è simile al seguente, che include NodeNetworkConfig del pool di nodi:
networkConfig:
podRange: podrange
podIpv4CidrBlock: 192.168.0.0/18
dove:
podRange
: il nome dell'intervallo di indirizzi IPv4 secondario della subnet per gli indirizzi IPv4 del pod del pool di nodi.podIpv4CidrBlock
: il CIDR dell'intervallo di indirizzi IPv4 secondario della subnet per gli indirizzi IPv4 del pod del pool di nodi.
Se il pool di nodi utilizza un intervallo di indirizzi IPv4 del pod personalizzato, i valori podRange
e
podIpv4CidrBlock
sono diversi dall'intervallo di indirizzi IPv4 del pod predefinito del cluster.
Passaggi successivi
Dopo aver assegnato intervalli di indirizzi IPv4 dei pod aggiuntivi a un cluster o aver configurato intervalli di indirizzi IPv4 dei pod personalizzati del pool di nodi, GKE aggiorna la regola firewall VPC gke-[cluster-name]-[cluster-hash]-all
creata automaticamente in modo che l'intervallo di origine includa tutti gli indirizzi IPv4 dei pod.
Potresti anche dover:
Aggiorna la configurazione dell'agente di masquerading IP del cluster. L'insieme efficace di CIDR senza mascheramento deve includere tutti gli intervalli di indirizzi IPv4 dei pod utilizzati dal cluster (e dai relativi pool di nodi). Per ulteriori informazioni, consulta Controllare lo stato del
ip-masq-agent
e Configurare e implementare ilip-masq-agent
.Rivedi la configurazione del
NetworkPolicy
cluster. Potresti dover aggiornare gli attributiipBlock
che fanno riferimento agli intervalli di indirizzi IPv4 del pod.Risolvi i problemi di connettività utilizzando i log di flusso VPC e la registrazione delle regole firewall.
Passaggi successivi
- Scopri di più sui cluster nativi di VPC.
- Leggi la panoramica della rete GKE.
- Scopri di più sull'ottimizzazione dell'allocazione degli indirizzi IP.