Übersicht über DSCP-Tagging für die Dienstqualität

Mit Quality of Service (QoS) wird der Netzwerkverkehr verwaltet und die Leistung wichtiger Anwendungen durch die Steuerung von Faktoren wie Bandbreite, Latenz und Paketverlust sichergestellt. Bei dieser Technologie werden bestimmte Arten von Netzwerkverkehr gegenüber anderen priorisiert, wenn Netzwerkressourcen begrenzt oder überlastet sind. Sie können DSCP-Tagging (Differentiated Services Code Point) verwenden, um Traffic in modernen IP-Netzwerken zu priorisieren.

Informationen zur Verwendung von DSCP-Tagging finden Sie unter DSCP-Tagging konfigurieren.

Funktionsweise des EgressDSCP-Tagging

Die Dienstqualität (Quality of Service, QoS) verwaltet den Netzwerkverkehr, um sicherzustellen, dass kritische Anwendungen auch bei geringer Bandbreite funktionieren. Mit dem DSCP-Tagging für ausgehenden Traffic können Sie Pakete mit einem DSCP-Wert im IP-Header taggen, um das Prioritätsniveau an nachgelagerte Netzwerkgeräte zu kommunizieren.

Unterstützte Arbeitslasten

Das DSCP-Tagging für ausgehenden Traffic unterstützt die Priorisierung von Traffic für die folgenden Google Distributed Cloud-Arbeitslasten:

  • Containerarbeitslasten: Kubernetes-Pods und -Dienste, die im Cluster ausgeführt werden.
  • Virtuelle Maschinen (VMs): VM-Arbeitslasten, die über die VM-Laufzeit ausgeführt werden, sofern sie mit dem Standardnetzwerk verbunden sind.

Ressourcentypen für DSCP-Tagging

Distributed Cloud verwendet bestimmte benutzerdefinierte Ressourcen, um DSCP-Tags zu verwalten. Mit diesen Objekten definieren Sie die Priorität Ihrer Pakete:

  • EgressDSCP: Eine benutzerdefinierte Ressource, die den spezifischen DSCP-Wert definiert, der in den IP-Header ausgewählter Traffic-Pakete eingefügt werden soll. Dieses Objekt akzeptiert einen Ganzzahlwert von 0 bis 63.
  • TrafficSelector: Eine benutzerdefinierte Ressource, mit der Netzwerkverkehrsflüsse genau ausgewählt werden. Diese Ressource akzeptiert eine Prioritäts-Ganzzahl von 0 bis 65535 mit dem Standardwert 1000. Das TrafficSelector-Objekt verweist auf ein EgressDSCP-Objekt, um eine bestimmte Aktion auf den identifizierten Traffic anzuwenden. Auch wenn Sie ein TrafficSelector mit Namespace-Bereich verwenden, müssen Sie einen Namespace-Selektor einfügen, um den Namespace der Pods, die den Ziel-Traffic initiieren, explizit anzugeben.

Konfliktlösung

Wenn mehrere TrafficSelector-Ressourcen für dasselbe Thema gelten, verwendet das System eine bestimmte Hierarchie, um die Priorität zu bestimmen. Das System löst Konflikte anhand der folgenden Prinzipien in der angegebenen Reihenfolge:

  1. Priorität: Das System wendet die TrafficSelector mit dem numerisch niedrigsten Prioritätswert an.
  2. Spezifität des CIDR-Bereichs: Wenn Regeln dieselbe Priorität haben, wendet das System die Regel mit dem spezifischsten CIDR-Limit (dem längsten übereinstimmenden Präfix) an.
  3. Ports: Wenn Regeln dieselbe Priorität und denselben CIDR-Bereich haben, wendet das System die Regel mit dem spezifischsten Port an.

Wenn eine spezifischere CIDR-Regel eine numerisch höhere Priorität (niedrigere Priorität) hat, wendet das System die allgemeinere Regel an und ignoriert die spezifischere Regel.

Beispiel für Shadowing

Sehen Sie sich die folgenden beiden TrafficSelector-Regeln an, die auf dasselbe Ziel angewendet werden:

  • Regel A: Priorität 100, Ziel-CIDR 192.168.1.0/24, DSCP-Markierungen 40.
  • Regel B: Priorität 200, Ziel-CIDR 192.168.1.15/32, DSCP-Markierungen 46.

Obwohl in Regel B ein präziserer Ziel-CIDR (192.168.1.15/32) angegeben ist, wird Regel A vom System priorisiert, da sie einen numerisch niedrigeren Prioritätswert (100) hat. Daher ignoriert das System Regel B und wendet das DSCP-Tag 40 auf den gesamten ausgehenden Traffic an, der an 192.168.1.15 gerichtet ist.

Beschränkungen

Die DSCP-Tagging-Funktion unterliegt in ihrer aktuellen Implementierung mehreren Einschränkungen:

  • Externer Egress-Traffic: Sie können nur Nord-Süd-Traffic taggen, der den Cluster verlässt, z. B. ausgehender Traffic, der von Arbeitslasten initiiert wird, und Rückgabe-Traffic von Kubernetes-Diensten an externe Clients.
  • Keine interne Durchsetzung: Obwohl das System clusterinternen Traffic taggt, setzt Kubernetes QoS-Richtlinien nicht intern auf Grundlage dieser Tags durch.
  • Nur markieren: Das System taggt nur IP-Header. Sie müssen Ihre Upstream-Infrastruktur für das physische Netzwerk so konfigurieren, dass die tatsächliche QoS-Durchsetzung möglich ist.
  • Unterstützte Protokolle: Sie können nur IPv4-Traffic taggen.
  • Unterstützte Dienste: Sie können Traffic nur für die Dienste LoadBalancer und NodePort taggen.
  • VM-Netzwerke: Sie können nur VM-Arbeitslasten taggen, die mit dem Standardnetzwerk verbunden sind.
  • Funktion aktivieren: Sie müssen die Funktion aktivieren, indem Sie der Clusterressource die Annotation preview.baremetal.cluster.gke.io/traffic-selector: "enable" hinzufügen.
  • Standardwerte für den Rückgabepfad: Für den Rückgabepfad-Traffic ist der DSCP-Wert standardmäßig auf 0 festgelegt, sofern nicht anders konfiguriert.

Sicherheitsaspekte

Nicht autorisierte Nutzer könnten nicht essenziellen Traffic mit erhöhten DSCP-Werten kennzeichnen und so kritische Dienste im gesamten Cluster stören.

Um Sicherheitsrisiken zu minimieren, sollten Sie den Zugriff mithilfe der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC) von Kubernetes einschränken:

  • Clusterweite Steuerelemente: Beschränken Sie die Berechtigung zum Erstellen oder Ändern von EgressDSCP-Ressourcen mit Clusterbereich auf vertrauenswürdige Clusteradministratoren.
  • Namespace-Steuerelemente: TrafficSelector-Ressourcen nach Namespace verwalten, damit Nutzer nur ihre spezifischen Arbeitslasten beeinflussen können.

Nächste Schritte