Private Service Connect


Dieses Dokument bietet eine Übersicht über Private Service Connect in Google Kubernetes Engine-Clustern (GKE). Machen Sie sich vor dem Weiterlesen mit VPC-Netzwerken und Netzwerkgrundlagen wie der IP-Adressierung vertraut.

Übersicht

Private Service Connect (PSC) ist Teil der Netzwerkinfrastruktur von Google Cloud. Damit können Ihre GKE-Cluster Dienste, die in Google Cloud oder lokalen Umgebungen gehostet werden, sicher und privat nutzen, ohne dass diese Dienste öffentlich zugänglich gemacht werden müssen. Mit PSC weist Google Cloud der Steuerungsebene eine interne IP-Adresse zu,um Anfragen an die GKE-Cluster Management API weiterzuleiten. So können Sie Ihre Cluster verwalten, ohne dass Traffic über das öffentliche Internet geleitet wird. PSC bietet ein einheitliches Framework, das die Verbindung verschiedener Netzwerke über einen Dienstnetzwerkansatz unterstützt und es Dienstanbietern und ‑abnehmern ermöglicht, über interne IP-Adressen innerhalb eines VPC zu kommunizieren.

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

Vorteile von Clustern, für die Private Service Connect aktiviert ist

Sicherheit: PSC stellt private Verbindungen zwischen der Steuerungsebene und den Knoten Ihres GKE-Cluster her, sodass der Traffic vollständig im Google-Netzwerk und nicht im öffentlichen Internet bleibt. Dadurch wird das Risiko unbefugter Zugriffe 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 innerhalb des Clusternetzwerks, sodass keine komplexen Netzwerkkonfigurationen erforderlich sind.

Skalierbarkeit: Sie können bis zu 1.000 Cluster mit PSC erstellen, um hohe Ressourcenanforderungen zu erfüllen. Im Gegensatz dazu können Sie mit VPC-Netzwerk-Peering nur bis zu 75 Cluster pro Zone oder Region erstellen.

Anpassbare Konfiguration: Mit PSC können Sie die Isolation Ihrer Cluster-Steuerungsebene, Knotenpools oder Arbeitslasten unabhängig steuern und so Ihre Cluster skalierbarer und sicherer machen. 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 Kontrollebene wechseln und die Zugänglichkeit 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 Kontrollebene unterstützt keine internen IP-Adressen in URLs für von Ihnen konfigurierte Webhooks. Wenn Sie einen Webhook mit einer internen IP-Adresse in der URL haben, können Sie diese Inkompatibilität mit den folgenden Schritten beheben:

  1. Erstellen Sie einen headless Dienst ohne Selektor, um die Endpunkte manuell zu verwalten, an die dieser Dienst den Traffic weiterleitet. Das folgende Beispiel zeigt einen Dienst mit einem Webhook, der auf Port 3000 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 der 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 vorherigen Beispiel hat der Webhook den Pfad /validate und wartet auf Port 3000.

  4. Webhook prüfen: Prüfen Sie, ob Ihr Webhook weiterhin API-Serveranfragen empfangen und die Anfrage basierend auf benutzerdefinierter Logik genehmigen, ablehnen oder ändern kann. Wenn bei der Bestätigung 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 Hauptkomponenten 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: 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 Clustersteuerungsebene, der sich im VPC-Netzwerk Ihres Projekts befindet. Der PSC-Endpunkt dient als Einstiegspunkt für den Zugriff auf die Clustersteuerungsebene.

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

Clusterzugriff konfigurieren

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

Zugriff auf die Steuerungsebene

  • Nur über den DNS-basierten Endpunkt auf die Steuerungsebene zugreifen (empfohlen) Sie können Anfragen zum 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 Zugriff von IP-Adressen zuzulassen, die von Google für die Clusterverwaltung reserviert sind, und von internen IP-Adressen des GKE-Cluster.

    Wenn Sie IP-Adressen verwenden, empfehlen wir Ihnen, autorisierte Netzwerke zu verwenden, um den Zugriff auf die Steuerungsebene Ihres Clusters einzuschränken. Mit autorisierten Netzwerken können Sie den Zugriff auf Ihre Steuerungsebene auch von Google Cloud VMs, Cloud Run oder Cloud Run-Funktionen mit Google Cloud externen IP-Adressen blockieren.

  • Sie können über DNS-basierte und IP-basierte Endpunkte auf die Steuerungsebene zugreifen.

Zugriff auf Clusterknoten

Mit PSC-fähigen Clustern können Sie Cluster im gemischten Modus konfigurieren. Sie können Ihren Cluster so konfigurieren, dass er Knoten mit internem oder externem Zugriff hat. Sie können die Netzwerkkonfiguration des Knotens auch je nach 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 beispielsweise eine Mischung aus Arbeitslasten aus, von denen einige einen Internetzugriff erfordern und andere nicht. Sie können eine Arbeitslast auf einem Knoten mit externer IP-Adresse bereitstellen, damit nur solche Arbeitslasten öffentlich zugänglich sind.

  • Bei 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 Ihren Cluster mit PSC verwenden möchten, erstellen Sie ihn mit Version 1.29 oder höher. Andernfalls erstellen Sie bei Version 1.28 und niedriger Ihren Cluster ohne private Knoten. Sie können diese Einstellung jederzeit aktualisieren und private Knoten nach der Clustererstellung aktivieren.

Nächste Schritte