Funzionalità di networking di Distributed Cloud connesso

Questa pagina descrive le funzionalità di networking di Google Distributed Cloud connesso, incluse le subnet e il bilanciamento del carico.

Abilita 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 connesso vengono spediti con l'API Distributed Cloud Edge Network già abilitata.

Console

  1. Nella console Google Cloud , vai alla pagina API Distributed Cloud Edge Network.

    Abilitare l'API

  2. Fai clic su Attiva.

gcloud

Utilizza il seguente comando:

gcloud services enable edgenetwork.googleapis.com

Configura il networking su Distributed Cloud connesso

Questa sezione descrive come configurare i componenti di rete nel deployment connesso a Distributed Cloud.

Ai server Distributed Cloud connesso si applicano le seguenti limitazioni:

  • Puoi configurare solo le subnet e
  • Le subnet supportano solo gli ID VLAN; le subnet basate su CIDR non sono supportate.

Una tipica configurazione di rete per Distributed Cloud Connected è costituita dai seguenti passaggi:

  1. (Facoltativo) Inizializza la configurazione di rete della zona di destinazione, se necessario.

  2. Creare una rete.

  3. Crea una o più subnet all'interno della rete.

  4. Testa la configurazione.

  5. Collega i pod alla rete.

Inizializza la configurazione di rete della zona Distributed Cloud

Devi inizializzare la configurazione di rete della zona connessa a Distributed Cloud immediatamente dopo l'installazione dell'hardware connesso a Distributed Cloud nei tuoi locali. 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 connesso a Distributed Cloud la connettività uplink di base alla tua rete locale.

Per le istruzioni, vedi Inizializzare la configurazione di rete di una zona.

Crea 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 connessi di Distributed Cloud di connettersi alla rete.

Crea una o più subnet

Per creare una subnet, segui le istruzioni riportate in Creare una subnet. Devi creare almeno una subnet nella tua rete per consentire ai nodi di accedere alla rete. La VLAN corrispondente a ogni subnet che crei è disponibile automaticamente per tutti i nodi nella zona.

Test della configurazione

Per testare la configurazione dei componenti di rete che hai creato, segui questi passaggi:

  1. Controlla lo stato operativo della rete.

  2. Controlla lo stato del provisioning di ogni subnet.

Connettere i pod alla rete

Per connettere i pod alla rete e configurare le funzioni di rete avanzate, segui le istruzioni riportate in Operatore di funzioni di rete. Questa funzionalità non è disponibile per i workload 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 isolato dalla rete non possono comunicare con altri nodi all'interno della stessa zona connessa a Distributed Cloud. Per abilitare l'isolamento della rete del cluster, utilizza il flag --enable-cluster-isolation durante la creazione o la modifica di un cluster. Per saperne di più, consulta Creare e gestire cluster.

(Facoltativo) Configurare la modalità Isola

Distributed Cloud connesso supporta la modalità isolata per il sottosistema di rete virtuale. La modalità isolata 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à isolata vengono assegnati solo indirizzi di questo intervallo di indirizzi "isolato". Per saperne di più, consulta Modelli di rete flat e isolati.

L'intervallo di indirizzi IP isolato che specifichi per la modalità isolata 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-cidrs nella risorsa Network
  • Gli intervalli di indirizzi IP utilizzati per la modalità isolata per qualsiasi altra rete nel cluster

Configurare la modalità Isola

Per configurare la modalità isolata 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 isolati di destinazione e applica la risorsa Network modificata al tuo cluster. Ad esempio:

networking.gke.io/gdce-pod-cidr: 172.15.10.32/27

Devi anche impostare i seguenti parametri:

  • type deve essere impostato su L3.
  • IPAMMode deve essere impostato su Internal.

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:

  1. 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"]
    
  2. Recupera l'indirizzo IP del pod:

    kubectl get pod island-pod-tester -o wide
    

    Il comando restituisce l'indirizzo IP del pod, che rientra nell'intervallo di indirizzi isolato che hai specificato.

Configurare la modalità Isola con il servizio ClusterIP

Per configurare la modalità isolata con il servizio ClusterIP, completa i passaggi della sezione precedente, poi 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à Layer 2. Puoi utilizzare questa soluzione per esporre i servizi eseguiti nella tua zona Distributed Cloud al mondo esterno utilizzando indirizzi IP virtuali (VIP) nel seguente modo:

  1. 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 in esecuzione all'interno della zona Distributed Cloud.
    • Il primo (ID rete), il secondo (gateway predefinito) e l'ultimo (indirizzo di broadcast) indirizzo della subnet sono riservati per la funzionalità di base del sistema. Non assegnare questi indirizzi ai pool di indirizzi delle configurazioni di MetalLB.
    • Ogni cluster deve utilizzare un intervallo VIP separato che rientri nella subnet VIP configurata.
  2. Quando crei un cluster nella tua zona Distributed Cloud, l'amministratore del cluster specifica i pool di indirizzi dei servizi pod e ClusterIP utilizzando la notazione CIDR. L'amministratore di rete fornisce la subnet VIP LoadBalancer appropriata all'amministratore del cluster.
  3. Dopo la creazione del cluster, l'amministratore del cluster configura i pool VIP corrispondenti. Quando crei il cluster, devi specificare i pool VIP utilizzando il flag --external-lb-address-pools. 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: false
    

    Per 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 .0 o .255.
    • manual_assign: consente di assegnare manualmente gli indirizzi di questo pool nella configurazione del servizio LoadBalancer di destinazione anziché farli assegnare automaticamente dal controller MetalLB.

    Per ulteriori informazioni sulla configurazione dei pool di indirizzi VIP, consulta Specifica i pool di indirizzi nella documentazione di MetalLB.

  4. L'amministratore del cluster crea i servizi Kubernetes LoadBalancer appropriati.

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.

ClusterDNS risorsa

Distributed Cloud connesso supporta la risorsa Google Distributed Cloud ClusterDNS per configurare i server dei nomi upstream per domini specifici utilizzando la sezione spec.domains. Per ulteriori informazioni sulla configurazione di questa risorsa, consulta spec.domains.

Passaggi successivi