Crea subnet aggiuntive nel Virtual Private Cloud (VPC) interno della tua organizzazione o nel VPC predefinito per supportare i requisiti di networking interni. Ad esempio, aggiungi subnet VPC per assicurarti che i tuoi workload interni, come macchine virtuali (VM) e container, abbiano indirizzi IP sufficienti.
In questa pagina sono descritte diverse attività, che non devono essere completate in ordine:
- Crea una subnet di ramo zonale per i workload: questa attività è utile per organizzare o allocare ulteriormente gli indirizzi IP interni esistenti della zona ai workload.
- 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 una subnet zonale dall'intervallo di indirizzi IP globali**: questa attività è utile quando la zona non ha più spazio di indirizzi IP interni sufficiente.
- 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 dell'intervallo root di rete: questa attività è utile quando il VPC predefinito non ha più spazio di indirizzi IP interni globali sufficiente 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.
Questo documento è destinato agli amministratori di piattaforma e agli operatori di applicazioni responsabili della gestione del traffico di rete per la propria organizzazione. Per saperne di più, consulta Pubblico per la documentazione di GDC con air gap.
Prima di iniziare
Per ottenere l'autorizzazione necessaria per creare subnet, chiedi all'amministratore IAM dell'organizzazione di concederti il ruolo IAM Subnet Org Admin (subnet-org-admin). Questo ruolo non è vincolato a uno spazio dei nomi.
Crea una subnet di ramo zonale per i workload
Per suddividere ulteriormente gli indirizzi IP nel VPC predefinito zonale, puoi creare una subnet interna zonale dalla subnet root zonale esistente della zona. Devi creare questo tipo di subnet nello spazio dei nomi platform.
Se la subnet root zonale principale non ha indirizzi IP disponibili sufficienti, alloca 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 EOFSostituisci quanto segue:
MANAGEMENT_API_SERVER_KUBECONFIG: il percorso del file kubeconfig del server API di gestione. Per saperne di più, consulta Risorse del server API di gestione zonale.SUBNET_NAME: il nome della nuova subnet di rete.CIDR_PREFIX_LENGTH: la lunghezza del prefisso per la nuova subnet, ad esempio27. Questo campo alloca dinamicamente il successivo intervallo di indirizzi IP disponibile di queste dimensioni dalla subnet principale. Utilizza il campoprefixLengthquando ti interessa solo la dimensione della subnet, non il suo intervallo di indirizzi IP specifico.Per assegnare un intervallo di indirizzi IP specifico, segui questi passaggi:
- Rimuovi la riga
prefixLength: CIDR_PREFIX_LENGTH. - Aggiungi una riga
cidr: "YOUR_CIDR_BLOCK"al suo posto, ad esempiocidr: "10.0.10.0/27".
Utilizza il campo
cidrquando segui un piano IP rigoroso e devi assegnare un intervallo di indirizzi IP preciso e prevedibile. Questo intervallo deve essere una subnet valida e disponibile all'interno della subnet principale.- Rimuovi la riga
PARENT_SUBNET_NAME: il nome della subnet principale, ad esempiodefault-vpc-zone0-cidr. La subnet principale è in genere una subnet root zonale nel VPC predefinito.
Per saperne di più, consulta la documentazione di riferimento dell'API per la
Subnetrisorsa.Puoi continuare a suddividere le subnet zonali o creare una subnet foglia per allocare un singolo indirizzo IP direttamente a un workload interno.
Crea una subnet foglia per un singolo workload
Per allocare un singolo indirizzo IP per il tuo workload, devi creare una subnet foglia.
Questa subnet foglia deve avere il valore del campo type: Leaf e deve risiedere nello stesso spazio dei nomi del progetto della risorsa del workload, ad esempio una VM o un container.
La subnet foglia deve essere configurata con un valore prefixLength di 32, perché è progettata per allocare un singolo indirizzo IP. Il parentReference
valore fa riferimento a una subnet allocata in precedenza, ad esempio la subnet zonale principale
creata in
Crea una subnet di ramo zonale per i workload.
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/vpc: default-vpc name: SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_SUBNET namespace: PARENT_NAMESPACE type: Leaf EOFSostituisci quanto segue:
MANAGEMENT_API_SERVER_KUBECONFIG: il percorso del file kubeconfig del server API di gestione. Per saperne di più, consulta Risorse del server API di gestione zonale.SUBNET_NAME: il nome della subnet foglia.PROJECT_NAMESPACE: lo spazio dei nomi del progetto corrispondente al progetto in cui si trovano i workload.PARENT_SUBNET: il nome della subnet principale da cui questa subnet foglia recupererà l'indirizzo IP.PARENT_NAMESPACE: lo spazio dei nomiPROJECT_NAMESPACEoplatform.
Il tuo indirizzo IP individuale è ora disponibile per l'utilizzo da parte dei workload interni, come VM e container. Per saperne di più su come configurare l'indirizzo IP per i workload, consulta Creare una VM con un indirizzo IP statico o dinamico o Configurare un bilanciatore del carico interno per i workload dei container.
Alloca una subnet zonale dall'intervallo di indirizzi IP globali
Se la zona non fornisce indirizzi IP sufficienti per i workload dall'intervallo di indirizzi IP della subnet root zonale esistente, puoi allocare indirizzi IP aggiuntivi dall'intervallo root di indirizzi IP globali.
Per allocare una subnet zonale dall'intervallo 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 root del VPC predefinito e controlla i blocchi CIDR disponibili:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ -l ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=network-root-rangeSostituisci
GLOBAL_API_SERVER_KUBECONFIGcon 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. Questi valori sono i blocchi CIDR disponibili a cui fa riferimento il passaggio successivo. Nell'output precedente, gli intervalli CIDR10.254.0.0/15e10.253.0.0/16sono disponibili. L'output potrebbe mostrare più subnet. Prendi nota di tutti i blocchi CIDR disponibili e delle relative subnet di origine.Confronta il blocco CIDR disponibile più grande del passaggio precedente con le dimensioni del blocco CIDR necessario per la tua zona. Se il blocco CIDR disponibile più grande non è abbastanza grande da 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 blocco CIDR per la nuova subnet.
Ad esempio, se hai bisogno di un blocco CIDR
/13, ma i CIDR disponibili includono solo/15e/16, devi aggiungere una nuova subnet globale dell'intervallo root di rete. Se hai bisogno di una subnet/15, puoi allocare una nuova subnet zonale dal blocco CIDR/15esistente.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 EOFSostituisci quanto segue:
GLOBAL_API_SERVER_KUBECONFIG: il percorso del file kubeconfig del server API globale. Per saperne di più, consulta 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 campoprefixLengthcon il campocidr, quindi 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 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
Subnetrisorsa.Verifica che la subnet sia pronta e disponibile nel server API globale controllando che il tipo di stato
Readysiatrue: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: ReadyVerifica che la subnet zonale sia stata creata nel server API di gestione zonale e che il tipo di stato
Readysiatrue:kubectl --kubeconfig MANAGEMENT_API_SERVER_KUBECONFIG get subnet --namespace platform \ SUBNET_NAME --output jsonpath='{.status.conditions[?(@.type=="Ready")].status}'Sostituisci
MANAGEMENT_API_SERVER_KUBECONFIGcon il percorso del file kubeconfig del server API di gestione. Per saperne di più, consulta Risorse del server API di gestione zonale.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: ReadyDa questa nuova subnet zonale, puoi creare altre subnet figlio zonali o allocare un singolo indirizzo IP direttamente a un workload interno.
Dividi la subnet globale root senza allocazione di zona
Per dividere ulteriormente una subnet globale senza allocarla a una zona, crea una subnet globale e ometti la strategia di propagazione nella risorsa personalizzata Subnet. Questo approccio è utile se vuoi continuare a organizzare l'intervallo di indirizzi IP accessibile a livello globale dalla subnet root globale senza allocare gli indirizzi IP a una zona.
Per dividere la subnet root globale nell'ambito globale, completa i seguenti passaggi nello spazio dei nomi platform:
In una finestra del terminale, descrivi tutte le subnet root del VPC predefinito e controlla i blocchi CIDR disponibili:
kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG describe subnets --namespace platform \ -l ipam.gdc.goog/vpc=default-vpc,ipam.gdc.goog/usage=network-root-rangeSostituisci
GLOBAL_API_SERVER_KUBECONFIGcon 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. Questi valori sono i blocchi CIDR disponibili a cui fa riferimento il passaggio successivo. Nell'output precedente, gli intervalli CIDR10.254.0.0/15e10.253.0.0/16sono disponibili. Nell'output possono essere presenti più subnet a seconda del numero di subnet root che hai, quindi prendi nota di tutti i blocchi CIDR disponibili e della subnet da cui proviene il blocco CIDR disponibile.Confronta il blocco CIDR disponibile più grande del passaggio precedente con le dimensioni del blocco CIDR necessario per la nuova subnet globale. Se il blocco CIDR disponibile più grande non è abbastanza grande da 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 blocco CIDR per la nuova subnet.
Ad esempio, se hai bisogno di un blocco CIDR
/13, ma i CIDR disponibili includono solo/15e/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 blocco CIDR/15esistente.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 EOFSostituisci quanto segue:
GLOBAL_API_SERVER_KUBECONFIG: il percorso del file kubeconfig del server API globale. Per saperne di più, consulta 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 campoprefixLengthcon il campocidr, quindi 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 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
Readysiatrue: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. Puoi creare una subnet per una zona specifica da questa nuova subnet principale globale.
Aggiungi una nuova subnet globale dell'intervallo root 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 dell'intervallo root di rete nel server API globale. Se necessario, puoi creare più subnet globali root.
Per creare una nuova subnet dell'intervallo root di rete:
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 EOFSostituisci quanto segue:
GLOBAL_API_SERVER_KUBECONFIG: il percorso del file kubeconfig del server API globale. Per saperne di più, consulta 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-rangenello stesso server API globale.
Questa nuova subnet dell'intervallo root globale può essere suddivisa all'interno del server API globale o allocata a una zona specifica.
Passaggi successivi
- Subnet e indirizzi IP
- Panoramica del networking
- Esegui il deployment di un'applicazione VM a elevata disponibilità
- Esegui il deployment di un'applicazione container a elevata disponibilità