Questa pagina descrive come creare subnet aggiuntive nel segmento di rete dati della tua organizzazione per supportare i requisiti di networking esterni. Devi aggiungere subnet per assicurarti che i tuoi servizi esterni, come la conversione degli indirizzi di rete (NAT) in uscita e i bilanciatori del carico esterni, dispongano di un numero sufficiente di indirizzi IP per supportare i requisiti di networking per la connessione a reti esterne al di fuori della tua organizzazione.
In questa pagina sono descritte diverse attività che non devono essere completate in ordine:
- Crea una subnet di diramazione zonale per i servizi esterni: questa attività è utile per organizzare o allocare ulteriormente gli indirizzi IP esterni esistenti della zona ai servizi.
- Crea una subnet foglia per un singolo servizio: questa attività è utile quando hai un nuovo servizio che non ha ancora un indirizzo IP da utilizzare.
- Alloca subnet zonale dall'intervallo di indirizzi IP globali: questa attività è utile quando la zona non dispone più di spazio sufficiente per gli indirizzi IP esterni.
- Dividi la subnet globale root senza allocazione di zona: Questa attività è utile per organizzare ulteriormente gli indirizzi IP esterni nel server API globale prima di allocarli a una zona.
- Aggiungi una nuova subnet globale dell'intervallo root di rete: questa attività è utile quando il segmento di rete di dati non dispone più di spazio sufficiente per l'indirizzo IP esterno globale da allocare alle zone.
Per una panoramica delle subnet e dei relativi concetti prima di completare le attività in questa pagina, consulta Subnet e indirizzi IP.
Questa pagina è rivolta agli amministratori di rete all'interno del gruppo di amministratori della piattaforma e agli sviluppatori di applicazioni all'interno del gruppo di operatori delle applicazioni, che sono responsabili della gestione del traffico di rete per la propria organizzazione. Per saperne di più, consulta la documentazione sulle audience per GDC air-gapped.
Prima di iniziare
Per ottenere l'autorizzazione necessaria per creare subnet, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo IAM Amministratore dell'organizzazione delle subnet (subnet-org-admin
). Questo ruolo non è associato a uno spazio dei nomi.
Crea una subnet di diramazione zonale per i servizi esterni
Puoi creare una subnet esterna zonale dalla subnet root zonale esistente della zona per suddividere ulteriormente gli indirizzi IP nel segmento di rete di dati zonale. Devi
creare questo tipo di subnet nello spazio dei nomi platform
. Se la
subnet root zonale principale non dispone di indirizzi IP sufficienti,
alloca prima un'altra subnet zonale dall'intervallo di indirizzi IP globali
e poi torna a questa procedura.
In una finestra del terminale, crea la nuova subnet esterna nel server API di gestione zonale:
kubectl -kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH networkSpec: enableGateway: true enableVLANID: false parentReference: name: PARENT_SUBNET_NAME namespace: platform type: Branch EOF
Sostituisci quanto segue:
MANAGEMENT_API_SERVER_KUBECONFIG
: il percorso del file kubeconfig del server API di gestione. Per ulteriori informazioni, vedi Risorse del server API di gestione a livello di zona.SUBNET_NAME
: il nome della nuova subnet di rete.CIDR_PREFIX_LENGTH
: la lunghezza del prefisso CIDR della nuova subnet allocata dinamicamente, ad esempio20
. Per impostare staticamente il CIDR, sostituisci il campoprefixLength
con il campocidr
e poi imposta il blocco CIDR, ad esempio10.0.10.0/27
.PARENT_SUBNET_NAME
: il nome della subnet principale, ad esempiodata-external-zone0-cidr
. La subnet principale è in genere una subnet radice zonale nel segmento di rete dati.
Per saperne di più, consulta la documentazione di riferimento dell'API per la risorsa
Subnet
.Puoi continuare a suddividere le subnet di zona o creare una subnet foglia per allocare un singolo indirizzo IP direttamente a un servizio esterno.
Crea una subnet foglia per un singolo servizio
Devi creare una subnet foglia per allocare un singolo indirizzo IP per il tuo servizio.
Questa subnet foglia deve avere il valore del campo type: Leaf
e deve trovarsi nello stesso spazio dei nomi del progetto del tuo servizio esterno, ad esempio un bilanciamento del carico esterno o NAT in uscita.
La subnet foglia deve essere configurata con un valore prefixLength
pari a 32
, in quanto è destinata ad allocare un singolo indirizzo IP. Il valore parentReference
fa riferimento
a una subnet allocata in precedenza, ad esempio la subnet di zona principale che hai creato in
Crea una subnet di ramo zonale per i carichi di lavoro.
In una finestra del terminale, crea la subnet foglia nel server API di gestione:
kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/allocation-preference: default ipam.gdc.goog/network-segment: data name: SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_SUBNET namespace: platform type: Leaf EOF
Sostituisci quanto segue:
MANAGEMENT_API_SERVER_KUBECONFIG
: il percorso del file kubeconfig del server API di gestione. Per ulteriori informazioni, vedi Risorse del server API di gestione a livello di zona.SUBNET_NAME
: il nome della subnet leaf.PROJECT_NAMESPACE
: lo spazio dei nomi del progetto corrispondente al progetto in cui si trovano i tuoi servizi.PARENT_SUBNET
: il nome della subnet principale da cui questa subnet foglia recupererà l'indirizzo IP.
Il tuo indirizzo IP individuale è ora disponibile per essere utilizzato dal tuo servizio esterno. Per ulteriori informazioni su come configurare l'indirizzo IP per il servizio, consulta la documentazione del servizio corrispondente, ad esempio Configurare i bilanciatori del carico esterni.
Alloca una subnet zonale dall'intervallo di indirizzi IP globali
Se la tua zona non fornisce indirizzi IP sufficienti per i tuoi servizi esterni dall'intervallo di indirizzi IP della subnet radice zonale esistente, puoi allocare indirizzi IP aggiuntivi dall'intervallo radice di indirizzi IP globali.
Completa i seguenti passaggi per il segmento di rete di dati nello spazio dei nomi platform
:
In una finestra del terminale, descrivi tutte le subnet radice del segmento di rete di dati e controlla i CIDR disponibili:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/network-segment=data,ipam.gdc.goog/usage=network-root-range
Sostituisci
GLOBAL_API_SERVER_KUBECONFIG
con il percorso del file kubeconfig del server API globale. Per saperne di più, consulta Risorse del server API globale. Le etichette sono costanti e devono rimanere invariate.L'output è simile al seguente:
Name: data-external-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=data-external-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/network-segment=data Annotations: <none> API Version: ipam.global.gdc.goog/v1 Kind: Subnet Metadata: Creation Timestamp: 2025-06-18T23:05:38Z Finalizers: global-subnet-finalizer Generation: 1 Resource Version: 439434 UID: 5ed1c51a-b5ee-473e-a185-8e065a87ae8f Spec: ipv4Request: Cidr: 10.252.0.0/14 Propagation Strategy: None Type: Root Status: Children Refs: Name: data-external-zone1-root-cidr Namespace: platform Type: SingleSubnet Conditions: Last Transition Time: 2025-06-18T23:05:38Z Message: IP allocation finished successfully Observed Generation: 1 Reason: AllocationSucceeded Status: True Type: Ready ipv4Allocation: Available CIDRs: 10.254.0.0/15 10.253.0.0/16 Cidr: 10.252.0.0/14 Events: <none>
Prendi nota dei valori
Status.ipv4Allocation.Available CIDRs
come CIDR disponibili, a cui verrà fatto riferimento nel passaggio successivo. Nell'output precedente, sono disponibili gli intervalli CIDR10.254.0.0/15
e10.253.0.0/16
. Nell'output possono essere presenti più subnet a seconda del numero di subnet radice disponibili, quindi annota tutti i CIDR disponibili e la subnet da cui proviene il CIDR disponibile.Confronta il CIDR più grande disponibile che hai annotato nel passaggio precedente con le dimensioni del CIDR che devi allocare alla tua zona. Se il CIDR più grande disponibile non è sufficiente per allocare la nuova subnet, aggiungi una nuova subnet globale dell'intervallo root di rete prima di continuare. Prendi nota della subnet principale da cui decidi di ottenere il CIDR per la nuova subnet.
Ad esempio, se hai bisogno di un CIDR
/13
, ma i CIDR disponibili includono solo/15
e/16
, devi creare una nuova subnet globale dell'intervallo root di rete. Se hai bisogno di una subnet/15
, puoi allocare una nuova subnet di zona dal CIDR/15
esistente.Crea la nuova subnet nel server API globale:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data ipam.gdc.goog/usage: zone-network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH zone: ZONE_NAME propagationStrategy: SingleZone type: Branch parentReference: name: PARENT_SUBNET_NAME namespace: ORG_NAME EOF
Sostituisci quanto segue:
GLOBAL_API_SERVER_KUBECONFIG
: il percorso del file kubeconfig del server API globale. Per saperne di più, vedi Risorse del server API globale.SUBNET_NAME
: il nome della nuova subnet.CIDR_PREFIX_LENGTH
: la lunghezza del prefisso CIDR della nuova subnet allocata dinamicamente, ad esempio20
. Per impostare staticamente il CIDR, sostituisci il campoprefixLength
con il campocidr
e poi imposta il blocco CIDR, ad esempio10.0.10.0/27
.ZONE_NAME
: la zona per cui allocare la subnet, ad esempiozone1
.PARENT_SUBNET_NAME
: il nome della subnet principale, ad esempiodata-external-root-cidr
, o la nuova subnet globale con intervallo root di rete che hai creato.ORG_NAME
: il nome dell'organizzazione.
Per saperne di più, consulta la documentazione di riferimento dell'API per la risorsa globale
Subnet
.Verifica che la subnet sia pronta e disponibile nel server API globale controllando che il tipo di stato
Ready
siatrue
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
L'output è simile al seguente:
status: conditions: - lastTransitionTime: "2025-06-06T07:28:48Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
Verifica che la subnet zonale sia creata nel server API di gestione zonale e che il relativo tipo di stato
Ready
siatrue
:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
Sostituisci
MANAGEMENT_API_SERVER_KUBECONFIG
con il percorso del file kubeconfig del server API di gestione. Per ulteriori informazioni, vedi Risorse del server API di gestione a livello di zona.L'output è simile al seguente:
status: conditions: - lastTransitionTime: "2025-06-06T07:29:34Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
Da questa nuova subnet di zona, puoi creare altre subnet secondarie di zona o allocare un singolo indirizzo IP direttamente a un servizio esterno.
Dividi la subnet globale radice senza allocazione di zona
Se vuoi continuare a organizzare l'intervallo di indirizzi IP accessibili a livello globale
dalla subnet root globale senza allocare gli indirizzi IP ai tuoi servizi esterni
zonali, crea una subnet globale e non definire una strategia di propagazione
nella risorsa personalizzata Subnet
.
Completa i seguenti passaggi nello spazio dei nomi platform
per dividere la subnet radice globale solo nell'ambito globale:
In una finestra del terminale, descrivi tutte le subnet radice del segmento di rete di dati e controlla i CIDR disponibili:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/network-segment=data,ipam.gdc.goog/usage=network-root-range
Sostituisci
GLOBAL_API_SERVER_KUBECONFIG
con il percorso del file kubeconfig del server API globale. Per saperne di più, consulta Risorse del server API globale. Le etichette sono costanti e devono rimanere invariate.L'output è simile al seguente:
Name: data-external-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=data-external-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/network-segment=data Annotations: <none> API Version: ipam.global.gdc.goog/v1 Kind: Subnet Metadata: Creation Timestamp: 2025-06-18T23:05:38Z Finalizers: global-subnet-finalizer Generation: 1 Resource Version: 439434 UID: 5ed1c51a-b5ee-473e-a185-8e065a87ae8f Spec: ipv4Request: Cidr: 10.252.0.0/14 Propagation Strategy: None Type: Root Status: Children Refs: Name: data-external-zone1-root-cidr Namespace: platform Type: SingleSubnet Conditions: Last Transition Time: 2025-06-18T23:05:38Z Message: IP allocation finished successfully Observed Generation: 1 Reason: AllocationSucceeded Status: True Type: Ready ipv4Allocation: Available CIDRs: 10.254.0.0/15 10.253.0.0/16 Cidr: 10.252.0.0/14 Events: <none>
Prendi nota dei valori
Status.ipv4Allocation.Available CIDRs
come CIDR disponibili, a cui verrà fatto riferimento nel passaggio successivo. Nell'output precedente, sono disponibili gli intervalli CIDR10.254.0.0/15
e10.253.0.0/16
. Nell'output possono essere presenti più subnet a seconda del numero di subnet radice disponibili, quindi annota tutti i CIDR disponibili e la subnet da cui proviene il CIDR disponibile.Confronta il CIDR più grande disponibile che hai annotato nel passaggio precedente con le dimensioni del CIDR che devi allocare alla nuova subnet globale. Se il CIDR disponibile più grande non è sufficiente per allocare la nuova subnet, aggiungi una nuova subnet globale dell'intervallo radice di rete prima di continuare. Prendi nota della subnet principale da cui decidi di ottenere il CIDR per la nuova subnet.
Ad esempio, se hai bisogno di un CIDR
/13
, ma i CIDR disponibili includono solo/15
e/16
, devi creare una nuova subnet globale dell'intervallo root di rete. Se hai bisogno di una subnet/15
, puoi allocare la nuova subnet globale dal CIDR/15
esistente.Crea la nuova subnet nel server API globale:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data ipam.gdc.goog/usage: zone-network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: prefixLength: CIDR_PREFIX_LENGTH propagationStrategy: None type: Branch parentReference: name: PARENT_SUBNET_NAME namespace: ORG_NAME EOF
Sostituisci quanto segue:
GLOBAL_API_SERVER_KUBECONFIG
: il percorso del file kubeconfig del server API globale. Per saperne di più, vedi Risorse del server API globale.SUBNET_NAME
: il nome della nuova subnet.CIDR_PREFIX_LENGTH
: la lunghezza del prefisso CIDR della nuova subnet allocata dinamicamente, ad esempio20
. Per impostare staticamente il CIDR, sostituisci il campoprefixLength
con il campocidr
e poi imposta il blocco CIDR, ad esempio10.0.10.0/27
.PARENT_SUBNET_NAME
: il nome della subnet principale, ad esempiodata-external-root-cidr
, o la nuova subnet globale dell'intervallo radice di rete che hai creato.ORG_NAME
: il nome dell'organizzazione.
Per saperne di più, consulta la documentazione di riferimento dell'API per la risorsa globale
Subnet
.Verifica che la subnet sia pronta e disponibile nel server API globale controllando che il tipo di stato
Ready
siatrue
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'
L'output è simile al seguente:
status: conditions: - lastTransitionTime: "2025-06-06T07:28:48Z" message: IP allocation finished successfully observedGeneration: 1 reason: AllocationSucceeded status: "True" type: Ready
La nuova subnet globale per la tua organizzazione nel segmento di rete dati è disponibile. Puoi creare una subnet per una zona specifica da questa nuova subnet principale globale.
Aggiungi una nuova subnet globale dell'intervallo radice di rete
Le subnet globali con l'etichetta ipam.gdc.goog/usage: network-root-range
ospitano il
CIDR per tutte le zone della rete. Se il CIDR è esaurito, devi creare una nuova subnet di intervallo root di rete nel server API globale. Se necessario, puoi creare
più subnet globali radice.
Per creare una nuova subnet di intervallo principale di rete, completa i seguenti passaggi:
In una finestra del terminale, crea la nuova subnet globale dell'intervallo radice di rete per il segmento di rete dati nello spazio dei nomi
platform
:kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/network-segment: data ipam.gdc.goog/usage: network-root-range name: SUBNET_NAME namespace: platform spec: ipv4Request: cidr: NEW_CIDR type: Root EOF
Sostituisci quanto segue:
GLOBAL_API_SERVER_KUBECONFIG
: il percorso del file kubeconfig del server API globale. Per saperne di più, vedi Risorse del server API globale.SUBNET_NAME
: il nome della nuova subnet.NEW_CIDR
: il nuovo CIDR per la subnet. Questo CIDR non può sovrapporsi a nessun CIDR in tutte le subnet esistenti con l'etichettaipam.gdc.goog/usage: network-root-range
nello stesso server API globale.
Questa nuova subnet dell'intervallo root globale può essere suddivisa all'interno del server API globale o assegnata a una zona specifica.