Questa pagina descrive le funzionalità di networking di Google Distributed Cloud connected, tra cui subnet e bilanciamento del carico.
Abilitare l'API Distributed Cloud Edge Network
Prima di poter configurare il networking in un deployment connesso di Distributed Cloud, devi abilitare l'API Distributed Cloud Edge Network. Per farlo, completa i passaggi descritti in questa sezione. Per impostazione predefinita, i server Distributed Cloud connected vengono forniti con l'API Distributed Cloud Edge Network già abilitata.
Console
Nella Google Cloud console, vai alla pagina API Distributed Cloud Edge Network.
Fai clic su Attiva.
gcloud
Utilizza il seguente comando:
gcloud services enable edgenetwork.googleapis.com
Configurare il networking su Distributed Cloud connected
Questa sezione descrive come configurare i componenti di networking nel deployment di Distributed Cloud connected.
Si applicano le seguenti limitazioni ai server Distributed Cloud connected:
- Puoi configurare solo le subnet.
- Le subnet supportano solo gli ID VLAN. Le subnet basate su CIDR non sono supportate.
Una configurazione di rete tipica per Distributed Cloud connected è costituita dai seguenti passaggi:
(Facoltativo) Inizializza la configurazione di rete della zona di destinazione, se necessario.
Crea una rete.
Crea una o più subnet all'interno della rete.
Testa la configurazione.
Collega i pod alla rete.
Inizializzare la configurazione di rete della zona Distributed Cloud
Devi inizializzare la configurazione di rete della zona Distributed Cloud connected immediatamente dopo l'installazione dell'hardware Distributed Cloud connected on-premise. L'inizializzazione della configurazione di rete di una zona è una procedura una tantum.
L'inizializzazione della configurazione di rete di una zona crea una rete predefinita denominata default.
Questa configurazione fornisce al deployment di Distributed Cloud connected la connettività uplink di base alla rete locale.
Per le istruzioni, vedi Inizializzare la configurazione di rete di una zona.
Creare una rete
Per creare una nuova rete, segui le istruzioni riportate in Creare una rete. Devi anche creare almeno una subnet all'interno della rete per consentire ai nodi Distributed Cloud connected di connettersi alla rete.
Creare una o più subnet
Per creare una subnet, segui le istruzioni riportate in Creare una subnet. Devi creare almeno una subnet nella rete per consentire ai nodi di accedere alla rete. La VLAN corrispondente a ogni subnet creata è disponibile automaticamente per tutti i nodi della zona.
Testare la configurazione
Per testare la configurazione dei componenti di rete che hai creato:
Collegare i pod alla rete
Per collegare i pod alla rete e configurare le funzioni di rete avanzate, segui le istruzioni riportate in Operatore della funzione di rete. Questa funzionalità non è disponibile per i carichi di lavoro delle macchine virtuali.
(Facoltativo) Configurare l'isolamento della rete del cluster
Distributed Cloud connected supporta l'isolamento della rete del cluster. I nodi assegnati a un cluster con isolamento di rete non possono comunicare con altri nodi all'interno della stessa zona Distributed Cloud connected. Per abilitare l'isolamento della rete del cluster, utilizza il flag --enable-cluster-isolation quando crei o modifichi un cluster.
Per saperne di più, consulta Creare e gestire cluster.
(Facoltativo) Configurare la modalità isola
Distributed Cloud connected supporta la modalità isola per il sottosistema di rete virtuale. La modalità isola consente di specificare un intervallo di indirizzi IP isolato sull'interfaccia di rete secondaria di un pod. Questo intervallo di indirizzi isolato è indipendente dall'intervallo di indirizzi della VLAN dell'interfaccia di rete principale. Ai pod configurati per la modalità isola vengono assegnati solo indirizzi da questo intervallo di indirizzi "isola" isolato. Per saperne di più, consulta Modelli di rete in modalità flat e isola.
L'intervallo di indirizzi IP isolato specificato per la modalità isola non deve entrare in conflitto con i seguenti intervalli di indirizzi IP:
- Il CIDR VLAN principale per qualsiasi rete configurata nel cluster
- L'intervallo di indirizzi IP virtuali del bilanciatore del carico specificato nell'annotazione
networking.gke.io/gdce-lb-service-vip-cidrsnella risorsaNetwork - Gli intervalli di indirizzi IP utilizzati per la modalità isola per qualsiasi altra rete nel cluster
Configurare la modalità isola
Per configurare la modalità isola a livello di pod, aggiungi l'annotazione networking.gke.io/gdce-pod-cidr alla risorsa personalizzata Network corrispondente. Imposta il valore dell'annotazione sull'intervallo di indirizzi IP isolato di destinazione e applica la risorsa Network modificata al cluster. Ad esempio:
networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
Devi anche impostare i seguenti parametri:
typedeve essere impostato suL3.IPAMModedeve essere impostato suInternal.
Ad esempio:
apiVersion: networking.gke.io/v1
kind: Network
metadata:
name: my-network
annotations:
# Enable island mode and specify the isolated address range.
networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
# Specify the VLAN ID for this secondary network.
networking.gke.io/gdce-vlan-id: "561"
# Specify the CIDR block for load balancer services on this network.
networking.gke.io/gdce-lb-service-vip-cidrs: 172.20.5.180/30
spec:
# Network type must be L3 for island mode.
type: L3
# IPAMMode must be Internal for island mode.
IPAMMode: Internal
nodeInterfaceMatcher:
interfaceName: gdcenet0.561 # The name for the target network interface.
gateway4: 172.20.5.177 # Gateway IP address; must be unique in this CR.
externalDHCP4: false
dnsConfig:
nameservers:
- 8.8.8.8
Per verificare che la modalità isola sia abilitata:
Crea un pod di test e applicalo al cluster. Ad esempio:
apiVersion: v1 kind: Pod metadata: name: island-pod-tester annotations: networking.gke.io/interfaces: '[{"interfaceName":"eth1","network":"test-network-vlan561"}]' networking.gke.io/default-interface: "eth1" spec: containers: - name: sample-container image: busybox command: ["/bin/sh", "-c", "sleep 3600"]Recupera l'indirizzo IP del pod:
kubectl get pod island-pod-tester -o wideIl comando restituisce l'indirizzo IP del pod, che rientra nell'intervallo di indirizzi isolato specificato.
Configurare la modalità isola con il servizio ClusterIP
Per configurare la modalità isola con il servizio ClusterIP, completa i passaggi della sezione precedente, quindi aggiungi l'annotazione networking.gke.io/gke-gateway-clusterip-cidr alla risorsa Network e imposta il relativo valore in base alle tue esigenze aziendali. Gli intervalli di indirizzi specificati nella risorsa Network non devono sovrapporsi. Ad esempio:
apiVersion: networking.gke.io/v1
kind: Network
metadata:
annotations:
networking.gke.io/gdce-lb-service-vip-cidrs: 172.20.5.180/30
networking.gke.io/gdce-pod-cidr: 172.15.10.32/27
networking.gke.io/gdce-vlan-id: "561"
networking.gke.io/gke-gateway-clusterip-cidr: 10.20.1.0/28
name: test-network-vlan561
spec:
IPAMMode: Internal
dnsConfig:
nameservers:
- 8.8.8.8
externalDHCP4: false
gateway4: 172.20.5.177
nodeInterfaceMatcher:
interfaceName: gdcenet0.561
type: L3
Bilanciamento del carico
Distributed Cloud viene fornito con una soluzione di bilanciamento del carico di rete in bundle basata su MetalLB in modalità di livello 2. Puoi utilizzare questa soluzione per esporre i servizi eseguiti nella zona Distributed Cloud al mondo esterno utilizzando indirizzi IP virtuali (VIP) come segue:
- L'amministratore di rete pianifica la topologia di rete e specifica la subnet dell'indirizzo IPv4 virtuale richiesta quando ordina Distributed Cloud. Google configura l'hardware Distributed Cloud di conseguenza prima della consegna.
Tieni presente quanto segue:
- Questa subnet VIP è condivisa tra tutti i cluster Kubernetes eseguiti nella zona Distributed Cloud.
- Il primo indirizzo (ID di rete), il secondo (gateway predefinito) e l'ultimo (indirizzo di trasmissione ) della subnet sono riservati alla funzionalità di sistema principale. Non assegnare questi indirizzi ai pool di indirizzi delle configurazioni MetalLB.
- Ogni cluster deve utilizzare un intervallo VIP separato che rientra nella subnet VIP configurata.
- Quando crei un cluster nella zona Distributed Cloud, l'amministratore del cluster specifica i pool di indirizzi dei pod e dei servizi ClusterIP utilizzando la notazione CIDR. L'amministratore di rete fornisce la subnet VIP
LoadBalancerappropriata all'amministratore del cluster. Dopo la creazione del cluster, l'amministratore del cluster configura i pool VIP corrispondenti. Devi specificare i pool VIP utilizzando il flag
--external-lb-address-poolsquando crei il cluster. Il flag accetta un file con un payload YAML o JSON nel seguente formato:addressPools: - name: foo addresses: - 10.2.0.212-10.2.0.221 - fd12::4:101-fd12::4:110 avoid_buggy_ips: true manual_assign: false - name: bar addresses: - 10.2.0.202-10.2.0.203 - fd12::4:101-fd12::4:102 avoid_buggy_ips: true manual_assign: falsePer specificare un pool di indirizzi VIP, fornisci le seguenti informazioni nel payload:
name: un nome descrittivo che identifica in modo univoco questo pool di indirizzi VIP.addresses: un elenco di indirizzi IPv4, intervalli di indirizzi e subnet da includere in questo pool di indirizzi.avoid_buggy_ips: esclude gli indirizzi IP che terminano con.0o.255.manual_assign: consente di assegnare manualmente gli indirizzi da questo pool nella configurazione del servizio di destinazioneLoadBalanceranziché farli assegnare automaticamente dal controller MetalLB.
Per saperne di più sulla configurazione dei pool di indirizzi VIP, consulta Specificare i pool di indirizzi nella documentazione di MetalLB.
L'amministratore del cluster crea i servizi Kubernetes
LoadBalancerappropriati.
I nodi Distributed Cloud in un singolo pool di nodi condividono un dominio di livello 2 comune e sono quindi anche nodi del bilanciatore del carico MetalLB. Quando segui questi passaggi, il bilanciamento del carico di livello 2 con MetalLB viene configurato automaticamente.
Risorsa ClusterDNS
Distributed Cloud connected supporta la risorsa ClusterDNS di Google Distributed Cloud per la configurazione dei server dei nomi upstream per domini specifici utilizzando la sezione spec.domains. Per saperne di più sulla configurazione di questa
risorsa, consulta
spec.domains.