Informazioni su Private Service Connect


Questa pagina fornisce una panoramica di Private Service Connect nei cluster Google Kubernetes Engine (GKE).

Questa pagina presuppone che tu conosca quanto segue:

  • Nozioni di base sul networking, ad esempio l'indirizzamento IP
  • Reti VPC

Panoramica

Private Service Connect (PSC) fa parte dell'infrastruttura di rete di Trusted Cloud by S3NSche consente ai cluster GKE di utilizzare in modo sicuro e privato i servizi ospitati su Trusted Cloud by S3NS o in ambienti on-premise, senza dover esporre pubblicamente questi servizi. Con PSC, Trusted Cloud by S3NS assegna un indirizzo IP interno al control plane per inoltrare le richieste all'API di gestione dei cluster GKE, consentendoti di gestire i cluster senza che il traffico passi mai su internet pubblico. PSC fornisce un framework coerente che consente di connettere diverse reti tramite un approccio di networking dei servizi e consente a produttori e consumer di servizi di comunicare utilizzando indirizzi IP interni a un VPC.

In un cluster GKE che utilizza l'infrastruttura PSC, tutte le comunicazioni tra il control plane del cluster e i nodi avvengono in modo privato. Puoi anche isolare il cluster a livello di piano di controllo e pool di nodi senza dover gestire configurazioni di peering VPC complesse.

Vantaggi dei cluster abilitati con Private Service Connect

Sicurezza: PSC stabilisce connessioni private tra il control plane e i nodi del cluster GKE, mantenendo il traffico interamente all'interno della rete di Google e lontano dalla rete internet pubblica. In questo modo si riduce al minimo il rischio di accessi non autorizzati.

Connettività semplificata: per i cluster PSC, non devi gestire subnet specifiche per l'endpoint del piano di controllo. L'endpoint PSC si trova interamente all'interno della rete del cluster, eliminando la necessità di configurazioni di rete complesse.

Scalabilità: puoi creare fino a 1000 cluster abilitati con PSC per soddisfare requisiti elevati di risorse. Al contrario, puoi creare fino a 75 cluster per zona o regione per i cluster che utilizzano il peering di rete VPC.

Configurazione personalizzabile: PSC ti consente di controllare in modo indipendente l'isolamento del control plane, dei pool di nodi o dei carichi di lavoro del cluster, rendendo i cluster più scalabili e sicuri. Puoi configurare un mix di pool di nodi privati e pubblici nel tuo cluster.

Flessibilità: dopo aver creato il cluster, puoi modificare le impostazioni di isolamento in qualsiasi momento. Puoi alternare l'accesso pubblico e privato al piano di controllo e modificare l'accessibilità del pool di nodi e dei workload da internet senza dover creare un nuovo cluster.

Limitazioni

Il control plane ha sia un endpoint interno che uno esterno. L'endpoint interno del control plane non supporta gli indirizzi IP interni negli URL per gli webhook che configuri. Se hai un webhook con un indirizzo IP interno nell'URL, puoi mitigare questa incompatibilità seguendo questi passaggi:

  1. Crea un servizio headless senza selettore per gestire manualmente gli endpoint a cui questo servizio indirizza il traffico. L'esempio seguente mostra un servizio con un webhook in ascolto sulla porta 3000:

    apiVersion: v1
    kind: Service
    metadata:
      name: <service-name>
    spec:
      clusterIP: None
      ports:
      - port: 3000
        targetPort: 3000
    
  2. Crea un endpoint corrispondente per la destinazione richiesta. Ad esempio, se il webhook utilizza l'indirizzo IP interno 10.0.0.1 nell'URL, puoi creare il seguente endpoint:

    apiVersion: v1
    kind: Endpoints
    metadata:
      name: <service-name>
    subsets:
    - addresses:
      - ip: 10.0.0.1
      ports:
      - port: 3000
    
  3. Aggiorna la configurazione del webhook: nella configurazione del webhook, elimina l'URL con l'indirizzo IP interno e aggiungi il servizio che hai creato nel primo passaggio. Ad esempio:

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

    Nell'esempio precedente, il webhook ha un percorso di /validate ed è in ascolto sulla porta 3000.

  4. Verifica il webhook: conferma che il webhook possa continuare a ricevere richieste del server API e possa approvare, rifiutare o modificare la richiesta in base alla logica personalizzata. Se si verifica un errore durante la verifica del webhook, potrebbe essere necessario creare un nuovo certificato e poi aggiornare la configurazione del webhook con i nuovi dettagli del certificato. Ad esempio:

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

Architettura

Il seguente diagramma fornisce una panoramica dell'architettura di un cluster che utilizza PSC:

Architettura di Private Service Connect in GKE.
Figura: architettura di Private Service Connect

Di seguito sono riportati i componenti principali di un cluster abilitato con PSC:

Control plane: ogni cluster GKE ha un server API Kubernetes gestito dal control plane. Il control plane viene eseguito su una macchina virtuale (VM) che si trova in una rete VPC in un progetto gestito da Google. Un cluster regionale include più repliche del control plane, ognuna delle quali viene eseguita sulla propria VM.

Il control plane ha sia un endpoint interno (endpoint Private Service Connect) per la comunicazione interna del cluster sia un endpoint esterno. Puoi scegliere di disattivare l'endpoint esterno. Il traffico tra i nodi e il control plane viene instradato interamente utilizzando indirizzi IP interni. Per informazioni sulla configurazione del cluster, consulta Verificare la configurazione del control plane.

Rete VPC: si tratta di una rete virtuale in cui crei subnet con intervalli di indirizzi IP interni specifici per i nodi e i pod del cluster.

Endpoint di Private Service Connect: questo è l'endpoint interno nel control plane del cluster che si trova nella rete VPC del tuo progetto. L'endpoint PSC funge da punto di accesso per accedere al control plane del cluster.

Collegamento del servizio: il collegamento del servizio è una risorsa che stabilisce una connessione sicura e privata tra la tua rete VPC e la rete VPC del producer. Come mostrato nel diagramma precedente, l'endpoint PSC accede all'allegato del servizio tramite una connessione privata e consente il flusso di traffico tra i nodi e il control plane.

Configurazione dell'accesso al cluster

Sono disponibili diverse opzioni per configurare l'accesso al control plane e ai nodi sui cluster abilitati a PSC. Puoi modificare queste configurazioni in qualsiasi momento dopo la creazione del cluster. Per configurare l'accesso al cluster, vedi Personalizzare l'isolamento di rete.

Accesso al control plane

  • Accedi al control plane utilizzando solo l'endpoint basato su DNS (consigliato). Puoi autorizzare le richieste di accesso al piano di controllo creando criteri di autorizzazione IAM.

  • Accedi al control plane utilizzando solo endpoint basati su IP. Puoi scegliere di utilizzare sia gli endpoint esterni che quelli interni del control plane oppure disattivare l'endpoint esterno per consentire l'accesso solo dagli indirizzi IP riservati a Google (per scopi di gestione del cluster) e dagli indirizzi IP interni del cluster GKE.

    Se utilizzi indirizzi IP, ti consigliamo di utilizzare le reti autorizzate per limitare l'accesso al piano di controllo del cluster. Con le reti autorizzate, puoi anche bloccare l'accesso al control plane da VM, Cloud Run o Cloud Run Functions provenienti da IP esterni. Trusted Cloud by S3NS Trusted Cloud by S3NS

  • Accedi al control plane con l'endpoint basato su DNS e gli endpoint basati su IP.

Accesso ai nodi del cluster

Con i cluster abilitati per PSC, puoi configurare cluster in modalità mista. Puoi configurare il cluster in modo che abbia nodi con accesso interno o esterno. Puoi anche modificare la configurazione di rete dei nodi a seconda del tipo di cluster che utilizzi:

  • Per i cluster Autopilot, puoi configurare alcuni carichi di lavoro per l'esecuzione su nodi privati e altri carichi di lavoro per l'esecuzione su nodi pubblici. Ad esempio, potresti eseguire un mix di workload nel tuo cluster in cui alcuni richiedono l'accesso a internet e altri no. Puoi eseguire il deployment di un workload su un nodo con indirizzamento IP esterno per assicurarti che solo questi workload siano accessibili pubblicamente.

  • Per i cluster Standard, puoi eseguire il provisioning di alcuni nodi con indirizzi IP interni, mentre altri nodi possono utilizzare indirizzi IP esterni.

Cluster con Private Service Connect

Per verificare se il cluster utilizza Private Service Connect, esegui il comando gcloud container clusters describe. Se il tuo cluster utilizza Private Service Connect, la risorsa privateClusterConfig ha i seguenti valori:

  • Il campo peeringName è vuoto o non esiste.
  • Al campo privateEndpoint è stato assegnato un valore.

Per abilitare il cluster con PSC, crealo sulla versione 1.29 o successive. In caso contrario, per le versioni 1.28 e precedenti, crea il cluster senza attivare i nodi privati. Puoi sempre aggiornare questa impostazione e abilitare i nodi privati dopo la creazione del cluster.

Passaggi successivi