Panoramica del tagging DSCP della qualità del servizio

La qualità del servizio (QoS) gestisce il traffico di rete e garantisce le prestazioni delle applicazioni critiche controllando fattori quali larghezza di banda, latenza e perdita di pacchetti. Questa tecnologia assegna la priorità a determinati tipi di traffico di rete rispetto ad altri quando le risorse di rete sono limitate o congestionate. Puoi utilizzare il tagging DSCP (Differentiated Services Code Point) per dare la priorità al traffico sulle moderne reti IP.

Per informazioni su come utilizzare il tagging DSCP, consulta Configurare il tagging DSCP.

Come funziona il tagging EgressDSCP

La qualità del servizio (QoS) gestisce il traffico di rete per garantire che le applicazioni critiche funzionino in situazioni con larghezza di banda ridotta. Il tagging DSCP in uscita consente di contrassegnare i pacchetti con un valore DSCP nell'intestazione IP per comunicare il livello di priorità ai dispositivi di rete downstream.

Workload supportati

Il tagging DSCP in uscita supporta la definizione delle priorità del traffico per i seguenti carichi di lavoro Google Distributed Cloud:

  • Carichi di lavoro dei container: pod e servizi Kubernetes in esecuzione sul cluster.
  • Macchine virtuali (VM): carichi di lavoro VM eseguiti tramite il runtime VM, a condizione che siano connessi alla rete predefinita.

Tipi di risorse per il tagging DSCP

Distributed Cloud utilizza risorse personalizzate specifiche per gestire i tag DSCP. Definisci la priorità dei pacchetti utilizzando questi oggetti:

  • EgressDSCP: una risorsa personalizzata che definisce il valore DSCP specifico da inserire nell'intestazione IP dei pacchetti di traffico selezionati. Questo oggetto accetta un valore intero compreso tra 0 e 63.
  • TrafficSelector: una risorsa personalizzata che seleziona con precisione i flussi di traffico di rete. Questa risorsa accetta un numero intero di priorità da 0 a 65535, con un valore predefinito di 1000. L'oggetto TrafficSelector fa riferimento a un oggetto EgressDSCP per applicare un'azione specifica al traffico identificato. Anche quando utilizzi un TrafficSelector con ambito spazio dei nomi, devi includere un selettore dello spazio dei nomi per identificare esplicitamente lo spazio dei nomi dei pod che avviano il traffico mirato.

Risoluzione dei conflitti

Quando più risorse TrafficSelector si applicano allo stesso soggetto, il sistema utilizza una gerarchia specifica per determinare la precedenza. Il sistema risolve i conflitti utilizzando i seguenti principi in ordine:

  1. Priorità: il sistema applica TrafficSelector con il valore di priorità numericamente più basso.
  2. Specificità dell'intervallo CIDR: se le regole condividono la stessa priorità, il sistema applica la regola con il limite CIDR più specifico (la corrispondenza del prefisso più lungo).
  3. Specificità della porta: se le regole condividono la stessa priorità e lo stesso intervallo CIDR, il sistema applica la regola con la porta più specifica.

Se una regola CIDR più specifica ha una priorità numericamente più alta (precedenza inferiore), il sistema applica la regola più ampia e ignora quella più specifica.

Esempio di shadowing

Considera le seguenti due regole TrafficSelector applicate alla stessa destinazione:

  • Regola A: priorità 100, CIDR di destinazione 192.168.1.0/24, contrassegna DSCP 40.
  • Regola B: priorità 200, CIDR di destinazione 192.168.1.15/32, contrassegna DSCP 46.

Anche se la regola B specifica un CIDR di destinazione più preciso (192.168.1.15/32), il sistema assegna la priorità alla regola A perché ha un valore di priorità numericamente inferiore (100). Di conseguenza, il sistema ignora la regola B e applica il tag DSCP 40 a tutto il traffico in uscita diretto a 192.168.1.15.

Limitazioni

La funzionalità di tagging DSCP include diversi vincoli per la sua attuale implementazione:

  • Traffico di uscita esterno: puoi taggare solo il traffico nord-sud in uscita dal cluster, come il traffico in uscita avviato dai carichi di lavoro e il traffico di ritorno dai servizi Kubernetes ai client esterni.
  • Nessuna applicazione interna: sebbene il sistema tagghi il traffico intra-cluster, Kubernetes non applica internamente i criteri QoS in base a questi tag.
  • Solo contrassegno: il sistema contrassegna solo le intestazioni IP. Devi configurare l'infrastruttura di rete fisica upstream per gestire l'applicazione effettiva del QoS.
  • Protocolli supportati: puoi taggare solo il traffico IPv4.
  • Servizi supportati: puoi taggare il traffico solo per i servizi LoadBalancer e NodePort.
  • Reti di macchine virtuali: puoi taggare solo i workload delle VM connessi alla rete predefinita.
  • Attivazione della funzionalità: devi attivare la funzionalità aggiungendo l'annotazione preview.baremetal.cluster.gke.io/traffic-selector: "enable" alla risorsa cluster.
  • Valori predefiniti del percorso di ritorno: per il traffico del percorso di ritorno, il valore DSCP è impostato su 0 per impostazione predefinita, a meno che non sia configurato diversamente.

Considerazioni sulla sicurezza

Gli utenti non autorizzati potrebbero contrassegnare il traffico non essenziale con valori DSCP elevati, interrompendo i servizi critici nel cluster.

Per ridurre i rischi per la sicurezza, limita l'accesso utilizzando il controllo dell'accesso basato sui ruoli (RBAC) di Kubernetes:

  • Controlli a livello di cluster: limita l'autorizzazione a creare o modificare risorse EgressDSCP con ambito cluster agli amministratori del cluster attendibili.
  • Controlli dello spazio dei nomi: gestisci le risorse TrafficSelector per spazio dei nomi in modo che gli utenti possano influire solo sui propri workload specifici.

Passaggi successivi