Private Service Connect


Auf dieser Seite erhalten Sie eine Übersicht über Private Service Connect in Google Kubernetes Engine-Clustern (GKE).

Auf dieser Seite wird davon ausgegangen, dass Sie mit Folgendem vertraut sind:

  • Grundlagen der Netzwerktechnik, z. B. IP-Adressierung
  • VPC-Netzwerke

Übersicht

Private Service Connect (PSC) ist Teil der Netzwerkinfrastruktur von Trusted Cloud by S3NS, mit der Ihre GKE-Cluster Dienste, die auf Trusted Cloud by S3NS oder in lokalen Umgebungen gehostet werden, sicher und privat nutzen können, ohne diese Dienste öffentlich verfügbar machen zu müssen. Mit PSC weist Trusted Cloud by S3NS der Steuerungsebene eine interne IP-Adresse zu,um Anfragen an die GKE-Clusterverwaltungs-API weiterzuleiten. So können Sie Ihre Cluster verwalten, ohne dass Traffic über das öffentliche Internet geleitet wird. PSC bietet ein einheitliches Framework, mit dem verschiedene Netzwerke über einen Dienstnetzwerkansatz verbunden werden können. Außerdem können Dienstersteller und ‑nutzer über interne IP-Adressen innerhalb einer VPC kommunizieren.

In einem GKE-Cluster, der die PSC-Infrastruktur verwendet, erfolgt die gesamte Kommunikation zwischen der Clustersteuerungsebene und den Knoten privat. Sie können Ihren Cluster auch auf der Ebene der Steuerungsebene und des Knotenpools isolieren, ohne komplexe VPC-Peering-Konfigurationen verwalten zu müssen.

Vorteile von Clustern mit aktivierter Private Service Connect-Funktion

Sicherheit: PSC stellt private Verbindungen zwischen der Steuerungsebene und den Knoten Ihres GKE-Cluster her. Der Traffic bleibt vollständig im Netzwerk von Google und wird nicht über das öffentliche Internet geleitet. Dadurch wird das Risiko eines unbefugten Zugriffs minimiert.

Vereinfachte Konnektivität: Bei PSC-Clustern müssen Sie keine bestimmten Subnetze für den Endpunkt der Steuerungsebene verwalten. Der PSC-Endpunkt befindet sich vollständig im Clusternetzwerk, sodass keine komplexen Netzwerkkonfigurationen erforderlich sind.

Skalierbarkeit: Sie können bis zu 1.000 Cluster mit aktivierter PSC erstellen, um hohen Ressourcenanforderungen gerecht zu werden. Im Gegensatz dazu können Sie für Cluster mit VPC-Netzwerk-Peering nur bis zu 75 Cluster pro Zone oder Region erstellen.

Anpassbare Konfiguration: Mit PSC können Sie die Isolierung Ihrer Clustersteuerungsebene, Knotenpools oder Arbeitslasten unabhängig voneinander steuern. So werden Ihre Cluster skalierbarer und sicherer. Sie können in Ihrem Cluster eine Mischung aus privaten und öffentlichen Knotenpools konfigurieren.

Flexibilität: Nachdem Sie den Cluster erstellt haben, können Sie die Isolationseinstellungen jederzeit ändern. Sie können zwischen öffentlichem und privatem Zugriff auf die Steuerungsebene wechseln und die Erreichbarkeit von Knotenpools und Arbeitslasten über das Internet ändern, ohne einen neuen Cluster erstellen zu müssen.

Beschränkungen

Die Steuerungsebene hat sowohl einen internen als auch einen externen Endpunkt. Der interne Endpunkt der Steuerungsebene unterstützt keine internen IP-Adressen in URLs für Webhooks, die Sie konfigurieren. Wenn Sie einen Webhook mit einer internen IP-Adresse in der URL haben, können Sie diese Inkompatibilität so beheben:

  1. Erstellen Sie einen monitorlosen Dienst ohne Selektor, um die Endpunkte, an die dieser Dienst Traffic weiterleitet, manuell zu verwalten. Das folgende Beispiel zeigt einen Dienst mit einem Webhook, der an Port 3000 auf Anfragen wartet:

    apiVersion: v1
    kind: Service
    metadata:
      name: <service-name>
    spec:
      clusterIP: None
      ports:
      - port: 3000
        targetPort: 3000
    
  2. Erstellen Sie einen entsprechenden Endpunkt für das erforderliche Ziel. Wenn Ihr Webhook beispielsweise die interne IP-Adresse 10.0.0.1 in der URL verwendet, können Sie den folgenden Endpunkt erstellen:

    apiVersion: v1
    kind: Endpoints
    metadata:
      name: <service-name>
    subsets:
    - addresses:
      - ip: 10.0.0.1
      ports:
      - port: 3000
    
  3. Webhook-Konfiguration aktualisieren: Löschen Sie in Ihrer Webhook-Konfiguration die URL mit der internen IP-Adresse und fügen Sie den Dienst hinzu, den Sie im ersten Schritt erstellt haben. Beispiel:

    ...
    kind: ValidatingWebhookConfiguration
    ...
    webhooks:
    - name: <webhook-name>
    ...
      clientConfig:
        service:
          name: <service-name>
          namespace: <namespace>
          path: "/validate"
          port: 3000
    

    Im obigen Beispiel hat der Webhook den Pfad /validate und überwacht Port 3000.

  4. Webhook überprüfen: Prüfen Sie, ob Ihr Webhook weiterhin API-Serveranfragen empfangen und die Anfrage anhand benutzerdefinierter Logik genehmigen, ablehnen oder ändern kann. Wenn beim Bestätigen des Webhooks ein Fehler auftritt, müssen Sie möglicherweise ein neues Zertifikat erstellen und dann die Webhook-Konfiguration mit den neuen Zertifikatsdetails aktualisieren. Beispiel:

    ...
    kind: ValidatingWebhookConfiguration
    ...
    webhooks:
    - name: <webhook-name>
    ...
      clientConfig:
        ...
        caBundle: <new-certificate>
    ...
    

Architektur

Das folgende Diagramm bietet einen Überblick über die Architektur eines Clusters mit PSC:

Architektur von Private Service Connect in GKE.
Abbildung: Private Service Connect-Architektur

Die folgenden Komponenten sind die Kernkomponenten eines Clusters, für den PSC aktiviert ist:

Steuerungsebene: Jeder GKE-Cluster hat einen Kubernetes API-Server, der von der Steuerungsebene verwaltet wird. Die Steuerungsebene wird auf einer VM (virtuelle Maschine) ausgeführt, die sich in einem VPC-Netzwerk in einem von Google verwalteten Projekt befindet. Ein regionaler Cluster hat mehrere Replikate der Steuerungsebene, die jeweils auf einer eigenen VM ausgeführt werden.

Die Steuerungsebene hat sowohl einen internen Endpunkt (Private Service Connect-Endpunkt) für die interne Clusterkommunikation als auch einen externen Endpunkt. Sie können den externen Endpunkt deaktivieren. Der Traffic zwischen den Knoten und der Steuerungsebene wird ausschließlich über interne IP-Adressen weitergeleitet. Informationen zur Clusterkonfiguration finden Sie unter Konfiguration der Steuerungsebene überprüfen.

VPC-Netzwerk: Dies ist ein virtuelles Netzwerk, in dem Sie Subnetze mit internen IP-Adressbereichen speziell für die Knoten und Pods des Clusters erstellen.

Private Service Connect-Endpunkt: Dies ist der interne Endpunkt in der Steuerungsebene des Clusters, der sich im VPC-Netzwerk Ihres Projekts befindet. Der PSC-Endpunkt dient als Einstiegspunkt für den Zugriff auf die Steuerungsebene des Clusters.

Dienstanhang: Der Dienstanhang ist eine Ressource, mit der eine sichere und private Verbindung zwischen Ihrem VPC-Netzwerk und dem VPC-Netzwerk des Diensterstellers hergestellt wird. Wie im vorherigen Diagramm dargestellt, greift der PSC-Endpunkt über eine private Verbindung auf den Dienstanhang zu und ermöglicht den Datenverkehr zwischen Knoten und der Steuerungsebene.

Clusterzugriff konfigurieren

Sie haben mehrere Möglichkeiten, den Zugriff auf die Steuerungsebene und den Knotenzugriff in PSC-fähigen Clustern zu konfigurieren. Sie können diese Konfigurationen jederzeit nach der Clustererstellung ändern. Informationen zum Konfigurieren des Clusterzugriffs finden Sie unter Netzwerkisolation anpassen.

Zugriff auf die Steuerungsebene

  • Greifen Sie nur über einen DNS-basierten Endpunkt auf die Steuerungsebene zu (empfohlen). Sie können Anfragen für den Zugriff auf die Steuerungsebene autorisieren, indem Sie IAM-Zulassungsrichtlinien erstellen.

  • Greifen Sie nur über IP-basierte Endpunkte auf die Steuerungsebene zu. Sie können sowohl den externen als auch den internen Endpunkt der Steuerungsebene verwenden oder den externen Endpunkt deaktivieren, um nur den Zugriff von Google-reservierten IP-Adressen (für die Clusterverwaltung) und internen IP-Adressen des GKE-Cluster zuzulassen.

    Wenn Sie IP-Adressen verwenden, empfehlen wir, den Zugriff auf die Steuerungsebene Ihres Clusters mit autorisierten Netzwerken einzuschränken. Mit autorisierten Netzwerken können Sie auch den Zugriff auf Ihre Steuerungsebene von Trusted Cloud by S3NS -VMs, Cloud Run oder Cloud Run Functions mit Trusted Cloud by S3NS externen IPs blockieren.

  • Zugriff auf die Steuerungsebene mit DNS-basierten und IP-basierten Endpunkten.

Zugriff auf Clusterknoten

Mit PSC-fähigen Clustern können Sie Cluster im gemischten Modus konfigurieren. Sie können Ihren Cluster so konfigurieren, dass Knoten mit internem oder externem Zugriff vorhanden sind. Sie können die Netzwerkkonfiguration des Knotens auch je nach verwendetem Clustertyp ändern:

  • Bei Autopilot-Clustern können Sie einige Arbeitslasten so konfigurieren, dass sie auf privaten Knoten ausgeführt werden, und andere Arbeitslasten so, dass sie auf öffentlichen Knoten ausgeführt werden. Möglicherweise führen Sie in Ihrem Cluster eine Mischung aus Arbeitslasten aus, von denen einige Internetzugriff benötigen und andere nicht. Sie können eine Arbeitslast auf einem Knoten mit externer IP-Adressierung bereitstellen, um dafür zu sorgen, dass nur solche Arbeitslasten öffentlich zugänglich sind.

  • In Standardclustern können Sie einige Ihrer Knoten mit internen IP-Adressen und andere mit externen IP-Adressen bereitstellen.

Cluster mit Private Service Connect

Führen Sie den Befehl gcloud container clusters describe aus, um zu prüfen, ob der Cluster Private Service Connect verwendet. Wenn Ihr Cluster Private Service Connect verwendet, hat die Ressource privateClusterConfig die folgenden Werte:

  • Das Feld peeringName ist leer oder nicht vorhanden.
  • Dem Feld privateEndpoint ist ein Wert zugewiesen.

Wenn Sie PSC für Ihren Cluster aktivieren möchten, erstellen Sie den Cluster mit Version 1.29 oder höher. Andernfalls erstellen Sie für Versionen 1.28 und früher Ihren Cluster, ohne private Knoten zu aktivieren. Sie können diese Einstellung jederzeit aktualisieren und private Knoten nach der Clustererstellung aktivieren.

Nächste Schritte