Questa pagina descrive come creare subnet aggiuntive nel VPC interno o nel VPC predefinito della tua organizzazione per supportare i requisiti di networking interni. Devi creare una subnet VPC per assicurarti che i tuoi carichi di lavoro interni, come macchine virtuali (VM) e container, abbiano un numero sufficiente di indirizzi IP per supportare i requisiti di rete all'interno 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 carichi di lavoro: questa attività è utile per organizzare o allocare ulteriormente gli indirizzi IP interni esistenti della zona ai carichi di lavoro.
- Crea una subnet foglia per un singolo workload: questa attività è utile quando hai un nuovo workload 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 interni.
- Dividi la subnet globale root senza allocazione di zona: Questa attività è utile per organizzare ulteriormente gli indirizzi IP interni nel server API globale prima di allocarli a una zona.
- Aggiungi una nuova subnet globale con intervallo di root di rete: questa attività è utile quando il VPC predefinito non dispone più di spazio di indirizzi IP interni globali sufficiente da allocare alle tue 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 filiale zonale per i carichi di lavoro
Puoi creare una subnet interna zonale dalla subnet root zonale esistente della zona per suddividere ulteriormente gli indirizzi IP nel VPC predefinito zonale. Devi
creare questo tipo di subnet nello spazio dei nomi platform
. Se la subnet radice zonale principale
non dispone di indirizzi IP sufficienti, devi
allocare un'altra subnet zonale dall'intervallo di indirizzi IP globali
prima di continuare.
In una finestra del terminale, crea la nuova subnet zonale 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/vpc: default-vpc 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 esempiodefault-vpc-zone0-cidr
. La subnet principale è in genere una subnet radice zonale nella rete VPC predefinita.
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 carico di lavoro interno.
Crea una subnet foglia per un singolo workload
Devi creare una subnet foglia per allocare un singolo indirizzo IP per il tuo workload.
Questa subnet foglia deve avere il valore del campo type: Leaf
e deve risiedere nello stesso spazio dei nomi del progetto della risorsa del carico di lavoro, ad esempio una VM o un container.
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/vpc: default-vpc 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 carichi di lavoro.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 dai tuoi workload interni, come VM e container. Per ulteriori informazioni su come configurare l'indirizzo IP per i tuoi carichi di lavoro, consulta Eseguire il deployment dei carichi di lavoro delle macchine virtuali o Eseguire il deployment dei carichi di lavoro dei container.
Alloca una subnet zonale dall'intervallo di indirizzi IP globali
Se la tua zona non fornisce indirizzi IP sufficienti per i tuoi workload 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 la rete VPC predefinita nello spazio dei nomi platform
:
In una finestra del terminale, descrivi tutte le subnet radice del VPC predefinito e controlla i CIDR disponibili:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/vpc=default-vpc,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: default-vpc-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=default-vpc-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/vpc=default-vpc 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: default-vpc-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 richiedi un CIDR
/13
, ma i CIDR disponibili includono solo/15
e/16
, devi aggiungere una nuova subnet globale dell'intervallo radice 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/vpc: default-vpc 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 esempiodefault-vpc-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
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 indirizzo IP individuale direttamente a un carico di lavoro interno.
Dividi la subnet globale radice senza allocazione di zona
Per dividere ulteriormente una subnet globale senza allocarla a una zona da utilizzare per i tuoi carichi di lavoro, crea una subnet globale e non definire una strategia di propagazione nella risorsa personalizzata Subnet
. Questo approccio è utile se vuoi continuare
a organizzare l'intervallo di indirizzi IP accessibili a livello globale dalla subnet root globale
senza allocare gli indirizzi IP a una zona.
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 VPC predefinito e controlla i CIDR disponibili:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ --label ipam.gdc.goog/vpc=default-vpc,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: default-vpc-root-cidr Namespace: platform Labels: ipam.gdc.goog/allocation-preference=default ipam.gdc.goog/subnet-group=default-vpc-root-group ipam.gdc.goog/usage=network-root-range ipam.gdc.goog/vpc=default-vpc 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: default-vpc-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/vpc: default-vpc 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 esempiodefault-vpc-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 VPC predefinito è disponibile. Da questa nuova subnet principale globale puoi creare una subnet per una zona specifica.
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 root di rete per il VPC predefinito 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/vpc: default-vpc 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.
Passaggi successivi
- Subnet e indirizzi IP
- Panoramica sul networking
- Esegui il deployment di un'applicazione VM a disponibilità elevata
- Esegui il deployment di un'applicazione container ad alta disponibilità