Informazioni su Private Service Connect


Questo documento fornisce una panoramica di Private Service Connect nei cluster Google Kubernetes Engine (GKE). Prima di continuare a leggere, assicurati di conoscere le reti VPC e le nozioni di base di networking, come l'indirizzamento IP.

Panoramica

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

In un cluster GKE che utilizza l'infrastruttura PSC, tutte le comunicazioni tra il piano di controllo 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 complesse di peering VPC.

Vantaggi dei cluster abilitati con Private Service Connect

Sicurezza: PSC stabilisce connessioni private tra il piano di controllo 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 sottoreti 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 di risorse elevati. 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 piano di controllo del cluster, dei pool di nodi o dei carichi di lavoro, rendendo i cluster più scalabili e sicuri. Puoi configurare una combinazione 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 passare dall'accesso pubblico a quello privato al piano di controllo e modificare l'accessibilità del pool di nodi e del carico di lavoro 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 di tutti gli webhook configurati. Se hai un webhook con un indirizzo IP interno nell'URL, puoi attenuare questa incompatibilità seguendo questi passaggi:

  1. Crea un servizio headless senza un 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 tuo 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 /validate e rimane in ascolto sulla porta 3000.

  4. Verifica il tuo webhook: verifica che il tuo webhook possa continuare a ricevere richieste del server API e possa approvare, rifiutare o modificare la richiesta in base a una logica personalizzata. Se ricevi un errore durante la verifica del webhook, potresti dover creare un nuovo certificato e poi aggiornare la configurazione del webhook con i dettagli del nuovo 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:

Piano di controllo: ogni cluster GKE ha un server API Kubernetes gestito dal piano di controllo. Il piano di controllo viene eseguito su una macchina virtuale (VM) che si trova in una rete VPC in un progetto gestito da Google. Un cluster a livello di regione include più repliche del piano di controllo, ciascuna delle quali viene eseguita su una propria VM.

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

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: si tratta dell'endpoint interno nel piano di controllo del cluster che si trova nella rete VPC del progetto. L'endpoint PSC funge da punto di contatto per accedere al piano di controllo del cluster.

Collegamento di servizio: il collegamento di 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 al collegamento del servizio tramite una connessione privata e consente il flusso del traffico tra i nodi e il piano di controllo.

Configurazione dell'accesso al cluster

Hai a disposizione diverse opzioni per configurare l'accesso al control plane e all'accesso ai nodi nei cluster abilitati per PSC. Puoi modificare queste configurazioni in qualsiasi momento dopo la creazione del cluster. Per configurare l'accesso al cluster, consulta Personalizzare l'isolamento della rete.

Accesso al control plane

  • Accedi al control plane utilizzando solo l'endpoint basato su DNS (opzione consigliata). 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 entrambi gli endpoint esterni e interni del piano di controllo oppure disattivare l'endpoint esterno per consentire l'accesso solo dagli indirizzi IP riservati a Google (a scopo 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 tuo piano di controllo da VM Google Cloud, Cloud Run o funzioni Cloud Run con origine da indirizzi IP esterni di Google Cloud.

  • Accedi al control plane con endpoint basati su DNS e 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 del nodo a seconda del tipo di cluster che utilizzi:

  • Per i cluster Autopilot, puoi configurare alcuni carichi di lavoro in modo che vengano eseguiti su nodi privati e altri su nodi pubblici. Ad esempio, potresti eseguire un mix di carichi di lavoro nel tuo cluster, alcuni dei quali richiedono l'accesso a internet e altri no. Puoi eseguire il deployment di un carico di lavoro su un nodo con indirizzi IP esterni per assicurarti che solo questi carichi di lavoro 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 tuo 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 attivare il cluster con PSC, crealo con la 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 attivare i nodi privati dopo la creazione del cluster.

Passaggi successivi