Netzwerkrichtlinien einrichten

Kf ist eng mit Kubernetes und Istio integriert, um eine zuverlässige Erzwingung von Netzwerkrichtlinien zu gewährleisten.

Standardmäßig werden Kf-Arbeitslasten im Kubernetes-Cluster ausgeführt und Adressen mit Kubernetes DNS aufgelöst. Dieser DNS-Resolver versucht zuerst, Adressen im Cluster aufzulösen und nur dann, wenn keine gefunden werden.

Jede Kf-Anwendung wird mit einem Envoy-Sidecar ausgeführt, der von Istio oder Anthos Service Mesh (ASM) injiziert wird. Dieser Sidecar-Proxy führt den gesamten Netzwerktraffic in den und aus dem Kubernetes-Pod durch.

Jeder Kubernetes-Pod wird auf einem Knoten ausgeführt – einer physischen oder virtuellen Maschine, die für die Verwaltung der Container-Images in einem Pod zuständig ist. Knoten sind in einem physischen oder virtuellen Netzwerk vorhanden.

Gemeinsam bilden diese eine Hierarchie von Systemen, mit denen Sie Netzwerkrichtlinien anwenden können. Diese sind unten aufgeführt (von unten nach unten).

Richtlinien auf Netzwerkebene

Der Arbeitslastschutz beginnt mit dem Netzwerk, in dem Ihr GKE-Cluster installiert ist.

Wenn Sie Kf in einem GKE-Cluster auf der GCP ausführen, empfiehlt Kf Folgendes:

Richtlinien auf Knotenebene

Mithilfe von Kubernetes NetworkPolicies lassen sich Richtlinien für Container einrichten, die auf dem Knoten ausgeführt werden. Diese sind die nächste Zuordnung zu Cloud Foundry-Netzwerkrichtlinien in Kubernetes.

NetworkPolicies werden von einem Kubernetes-Add-on unterstützt. Wenn Sie einen eigenen GKE-Cluster einrichten, müssen Sie NetworkPolicy-Erzwingung aktivieren.

Kf kennzeichnet Anwendungen mit kf.dev/networkpolicy=app und erstellt Builds mit kf.dev/networkpolicy=build. Dadurch können Sie NetworkPolicies direkt auf Pods ausrichten, die Anwendungen oder Builds ausführen.

Jeder Kf-Space erstellt zuerst zwei NetworkPolicies, eine mit Apps und eine für Builds. Sie können die Konfiguration in den Feldern spec.networkConfig.(app|build)NetworkPolicy.(in|e)gress des Space ändern. Für diese Felder kann einer der folgenden Werte festgelegt werden:

Enum Value Beschreibung
PermitAll Lässt den gesamten Traffic zu.
DenyAll Lehnt den gesamte Traffic ab.

Standardmäßig verwendet Kf eine zulässige Netzwerkrichtlinie. Dadurch kann die folgende Funktion von Kf die folgenden Funktionen nutzen:

  • North-South-Routing zum Cluster-Ingress-Gateway
  • Ausgehender Traffic zum Internet, z. B. zum Abrufen von Buildpacks
  • Ost-/West-Routing zwischen Anwendungen
  • Zugriff auf den Kubernetes-DNS-Server
  • Zugriff auf Container Registrys
  • Direkter Zugriff auf das VPC-Netzwerk
  • Zugriff auf Google-Dienste wie Cloud Logging
  • Zugriff auf den Workload Identity-Server für die automatische Rotation von Anmeldedaten

Service Mesh-Richtlinien

Wenn Sie eine fein abgestufte Netzwerksteuerung, Authentifizierung, Autorisierung und Sichtbarkeit benötigen, können Sie Richtlinien mit Anthos Service Mesh anwenden.

Ein Service Mesh ist eine Infrastrukturebene, die eine verwaltete, beobachtbare und sichere Kommunikation zwischen Ihren Diensten ermöglicht. Damit können Sie robuste Unternehmensanwendungen erstellen, die aus vielen Mikrodiensten in der ausgewählten Infrastruktur bestehen.

Hier finden Sie eine Liste der unterstützten Funktionen.