Questa pagina spiega come creare una subnet globale in Google Distributed Cloud (GDC) con air gap e utilizzarla per un bilanciatore del carico interno (ILB).
Le subnet globali ti consentono di configurare le operazioni di bilanciamento del carico interno in più zone della tua organizzazione GDC. Il bilanciamento del carico offre i vantaggi di prestazioni, affidabilità e disponibilità migliorate di applicazioni e servizi distribuendo il traffico di rete su più server. Per saperne di più sulle subnet globali per il bilanciamento del carico, consulta Informazioni sulle subnet per il bilanciamento del carico.
Questa pagina è rivolta agli sviluppatori del gruppo di operatori di applicazioni che vogliono gestire il bilanciamento del carico per la propria organizzazione. Per saperne di più, consulta la documentazione relativa ai segmenti di pubblico per GDC con air gap.
Prima di iniziare
Per creare una subnet globale e configurarla per gli ILB, devi disporre di quanto segue:
- Essere proprietario del progetto per cui stai configurando il bilanciatore del carico. Per saperne di più, consulta Crea un progetto.
I ruoli di identità e accesso necessari:
- Chiedi all'amministratore dell'organizzazione IAM di concederti il ruolo Amministratore bilanciatore del carico (
load-balancer-admin). - Chiedi all'amministratore dell'organizzazione IAM di concederti il ruolo Global Load Balancer Admin (
global-load-balancer-admin). - Chiedi all'amministratore dell'organizzazione IAM di concederti il ruolo Amministratore dell'organizzazione della subnet (
subnet-org-admin). Questo è un ruolo Platform Administrator per l'organizzazione. - Chiedi all'amministratore dell'organizzazione IAM di concederti il ruolo Subnet Project Admin (
subnet-project-admin). Questo è un ruolo Application Operator per il progetto.
Per saperne di più, consulta Descrizioni dei ruoli predefiniti.
- Chiedi all'amministratore dell'organizzazione IAM di concederti il ruolo Amministratore bilanciatore del carico (
Crea una subnet globale padre
La subnet globale principale che crei in questa sezione funge da pool di indirizzi IP da cui provengono gli indirizzi IP del tuo ILB. Puoi specificare le subnet principali utilizzando il campo spec.parentReference.name.
Hai due opzioni per configurare il CIDR per questa subnet principale:
- Crea una subnet utilizzando una configurazione CIDR statica
- Crea una subnet utilizzando una configurazione CIDR dinamica
Per saperne di più sulla differenza tra le configurazioni CIDR statiche e dinamiche, consulta Configurazione CIDR statica e dinamica.
Crea una subnet utilizzando una configurazione CIDR statica
Utilizza una configurazione CIDR statica quando hai bisogno di un controllo preciso sullo spazio degli indirizzi IP.
Questa subnet ha un tipo di Branch. Per saperne di più sui tipi di subnet root, branch e leaf, consulta Gerarchia delle subnet.
Per creare una subnet padre globale con una configurazione CIDR statica, aggiungi il blocco CIDR scelto al campo spec.ipv4Request.cidr:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/vpc: default-vpc
name: ILB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
cidr: STATIC_CIDR
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
Sostituisci quanto segue:
GLOBAL_API_SERVER: il percorso kubeconfig del server API di gestione globale. Per saperne di più, consulta Server API globali e di zona. Se non hai ancora generato un file kubeconfig per il server API, consulta Accedi per i dettagli.ILB_PARENT_SUBNET_NAME: il nome scelto per la subnet principale globale per l'ILB.STATIC_CIDR: il blocco CIDR specifico che vuoi allocare per questa subnet principale, ad esempio10.0.10.0/27.PARENT_NAME: il nome della subnet principale esistente da cui viene creata questa nuova subnet.
Per configurare questa subnet in modo che funzioni con gli ILB, devi creare una subnet foglia per l'ILB.
Crea una subnet utilizzando una configurazione CIDR dinamica
La configurazione CIDR dinamica alloca automaticamente un blocco CIDR disponibile di una dimensione specificata dalla subnet principale. In questo modo, la gestione degli indirizzi IP è più semplice, soprattutto in ambienti di grandi dimensioni.
Questa subnet ha un tipo di Branch. Per saperne di più sui tipi di subnet root, branch e leaf, consulta Gerarchia delle subnet.
Per creare una subnet principale globale con un CIDR dinamico, configura il campo spec.ipv4Request.prefixLength con la lunghezza del prefisso scelta:
kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF
apiVersion: ipam.global.gdc.goog/v1
kind: Subnet
metadata:
labels:
ipam.gdc.goog/vpc: default-vpc
name: ILB_PARENT_SUBNET_NAME
namespace: platform
spec:
ipv4Request:
prefixLength: PREFIX_LENGTH
parentReference:
name: PARENT_NAME
namespace: platform
propagationStrategy: None
type: Branch
EOF
Sostituisci quanto segue:
ILB_PARENT_SUBNET_NAME: il nome scelto per la subnet principale dell'ILB, ad esempiolb-global-lancer-ilb-subnet.STATIC_CIDR: il blocco CIDR specifico che vuoi utilizzare, ad esempio10.0.10.0/27. Questa variabile è applicabile solo alla configurazione CIDR statica.PARENT_NAME: il nome della subnet principale esistente da cui viene creata questa nuova subnet, ad esempiodefault-vpc-workload-cidr.PREFIX_LENGTH: la lunghezza del prefisso scelta per il CIDR allocato dinamicamente, ad esempio27. Questa variabile è applicabile solo alla configurazione CIDR dinamica.
Per configurare questa subnet in modo che funzioni con gli ILB, devi creare una subnet foglia per l'ILB.
Crea una subnet foglia per l'ILB
Dopo aver configurato la subnet principale globale, devi creare una subnet secondaria per allocare un singolo indirizzo IP per il servizio ILB globale. Questa subnet foglia deve avere un valore del campo type pari a Leaf e deve risiedere nello stesso spazio dei nomi del progetto delle risorse del bilanciatore del carico, ad esempio ForwardingRule, BackendService e Backend.
Per creare la subnet leaf e collegarla all'ILB, segui questi passaggi:
Crea una subnet foglia con un valore
prefixLengthdi32, poiché è destinata ad allocare un singolo indirizzo IP. Il valoreparentReferencefa riferimento alla subnet globale principale creata in precedenza:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: ipam.global.gdc.goog/v1 kind: Subnet metadata: labels: ipam.gdc.goog/allocation-preference: default ipam.gdc.goog/vpc: default-vpc name: ILB_IP_SUBNET_NAME namespace: PROJECT_NAMESPACE spec: ipv4Request: prefixLength: 32 parentReference: name: PARENT_REF namespace: platform type: Leaf EOFSostituisci quanto segue:
ILB_IP_SUBNET_NAME: il nome scelto per la subnet leaf, ad esempiolb-project-ilb-ip.PROJECT_NAMESPACE: lo spazio dei nomi Kubernetes corrispondente al progetto in cui si trovano gli oggetti ILB, ad esempiolb-project.PARENT_REF: il nome della subnet principale da cui questa subnet foglia ricava il proprio indirizzo IP, ad esempio la subnet globale principale creata in precedenza.
Collega la subnet foglia appena creata, che contiene l'indirizzo IP allocato, alla risorsa
ForwardingRuleInternaldel tuo ILB. Nella risorsaForwardingRuleInternal, aggiorna il campospec.cidrRef.namein modo che faccia riferimento al nome della subnet leaf creata nel passaggio precedente:kubectl --kubeconfig GLOBAL_API_SERVER apply -f - <<EOF apiVersion: networking.global.gdc.goog/v1 kind: ForwardingRuleInternal metadata: name: FRI_NAME namespace: PROJECT_NAMESPACE spec: ports: - port: PORT protocol: PROTOCOL backendServiceRef: name: BES_NAME cidrRef: name: LEAF_SUBNET_NAME EOFSostituisci quanto segue:
FRI_NAME: il nome scelto per l'oggettoForwardingRuleInternal, ad esempionginx-ilb-static-fr.PORT: il numero di porta su cui il bilanciatore del carico interno rimane in ascolto del traffico in entrata, ad esempio80.PROTOCOL: il protocollo di rete utilizzato dal bilanciatore del carico interno, ad esempioTCPoUDP.BES_NAME: il nome dellaBackendServiceassociata a questa risorsaForwardingRuleInternal, ad esempionginx-bes.LEAF_SUBNET_NAME: il nome della subnet foglia che hai creato nel passaggio precedente, ad esempiolb-project-ilb-ip.