Modifica l'isolamento nei cluster che utilizzano Private Service Connect


Questa pagina mostra come modificare l'isolamento di rete per il piano di controllo e i nodi del cluster. La modifica della modalità di isolamento di un cluster è supportata solo per i cluster che utilizzano Private Service Connect per connettere privatamente il piano di controllo e i nodi.

Perché modificare l'isolamento del cluster

Per impostazione predefinita, quando crei cluster che utilizzano Private Service Connect, GKE assegna un indirizzo IP esterno (endpoint esterno) al piano di controllo. Ciò significa che qualsiasi VM con un indirizzo IP esterno può raggiungere il piano di controllo.

Se configuri reti autorizzate, puoi limitare gli intervalli di indirizzi IP che hanno accesso al piano di controllo del cluster, ma quest'ultimo è ancora accessibile dagli indirizzi IP di proprietà di Google Cloud. Ad esempio, qualsiasi VM con un indirizzo IP esterno assegnato in Google Cloud può raggiungere l'indirizzo IP esterno del tuo piano di controllo. Tuttavia, una VM senza le credenziali corrispondenti non può raggiungere i nodi

Vantaggi

L'isolamento della rete offre i seguenti vantaggi:

  • Nello stesso cluster puoi configurare una combinazione di nodi privati e pubblici. Ciò può ridurre i costi per i nodi che non richiedono un indirizzo IP esterno per accedere a servizi pubblici su internet.
  • Puoi bloccare l'accesso al piano di controllo dagli indirizzi IP di proprietà di Google Cloud o dagli indirizzi IP esterni per isolare completamente il piano di controllo del cluster.

In questa pagina viene mostrato come modificare questo comportamento predefinito intraprendendo le seguenti azioni:

  • Abilitazione o disabilitazione dell'accesso al piano di controllo dagli indirizzi IP di proprietà di Google Cloud. Questa azione impedisce a qualsiasi VM con indirizzi IP di proprietà di Google Cloud di raggiungere il piano di controllo. Per maggiori informazioni, consulta Bloccare l'accesso al piano di controllo dagli indirizzi IP di proprietà di Google Cloud.
  • Abilitazione o disabilitazione dell'accesso pubblico all'endpoint esterno del piano di controllo. Questa azione isola completamente il cluster e il piano di controllo non è accessibile da nessun indirizzo IP pubblico. Per maggiori informazioni, consulta Isolare il piano di controllo del cluster.
  • Rimozione degli indirizzi IP pubblici dai nodi. Questa azione isola completamente i carichi di lavoro. Per maggiori informazioni, consulta Isolare i pool di nodi.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

  • Abilita l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine
  • Se vuoi utilizzare Google Cloud CLI per questa attività, installa e initialize gcloud CLI. Se hai già installato gcloud CLI, scarica la versione più recente eseguendo gcloud components update.

Blocca l'accesso al piano di controllo dalle VM Google Cloud, da Cloud Run e da Cloud Functions

Per impostazione predefinita, se hai creato un cluster in cui Private Service Connect è pubblico, la funzionalità relativa alle reti autorizzate è disabilitata per impostazione predefinita.

Se hai creato un cluster con Private Service Connect predefinito come privato, la funzionalità delle reti autorizzate è abilitata per impostazione predefinita. Per sapere quali indirizzi IP possono sempre accedere al piano di controllo GKE, consulta Accesso agli endpoint del piano di controllo.

Per rimuovere l'accesso al piano di controllo del cluster dalle VM Google Cloud, da Cloud Run e da Cloud Functions, utilizza gcloud CLI o la console Google Cloud:

gcloud

  1. Aggiorna il cluster per utilizzare il flag --no-enable-google-cloud-access:

    gcloud container clusters update CLUSTER_NAME \
        --no-enable-google-cloud-access
    

    Sostituisci CLUSTER_NAME con il nome del cluster.

  2. Conferma che il flag --no-enable-google-cloud-access sia applicato:

    gcloud container clusters describe CLUSTER_NAME | grep "gcpPublicCidrsAccessEnabled"
    

    L'output è simile al seguente:

    gcpPublicCidrsAccessEnabled: false
    

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da modificare.

  3. In Networking, nel campo Reti autorizzate piano di controllo, fai clic su Modifica reti autorizzate piano di controllo.

  4. Deseleziona la casella di controllo Consenti accesso tramite indirizzi IP pubblici di Google Cloud.

  5. Fai clic su Salva modifiche.

Consenti l'accesso al piano di controllo da indirizzi IP di proprietà di Google Cloud

Per consentire l'accesso dagli indirizzi IP pubblici di proprietà di Google Cloud al piano di controllo del cluster, esegui questo comando:

gcloud

gcloud container clusters update CLUSTER_NAME \
    --enable-google-cloud-access

Sostituisci CLUSTER_NAME con il nome del cluster.

Gli indirizzi IP di proprietà di Google Cloud possono accedere al piano di controllo del cluster.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da modificare.

  3. In Networking, nel campo Reti autorizzate piano di controllo, fai clic su Modifica reti autorizzate piano di controllo.

  4. Seleziona la casella di controllo Consenti accesso tramite indirizzi IP pubblici di Google Cloud.

  5. Fai clic su Salva modifiche.

Disabilita l'accesso esterno al piano di controllo nei cluster che utilizzano Private Service Connect

Cluster creati come pubblici

Per impostazione predefinita, quando crei un cluster pubblico GKE, GKE assegna un indirizzo IP esterno (endpoint esterno) al piano di controllo. Se chiedi a GKE di annullare l'assegnazione di questo endpoint esterno, GKE abilita un endpoint privato. L'accesso al piano di controllo da indirizzi IP esterni è disabilitato, ad eccezione dei servizi Google Cloud che eseguono i processi di gestione dei cluster. Per ulteriori informazioni sull'endpoint privato abilitato e sulle sue limitazioni, consulta la pagina relativa ai cluster pubblici con Private Service Connect.

Per modificare l'isolamento del piano di controllo per un cluster creato come pubblico, utilizza gcloud CLI:

  1. Aggiorna il cluster per utilizzare il flag --enable-private-endpoint:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-endpoint
    

    Sostituisci CLUSTER_NAME con il nome del cluster pubblico.

  2. Conferma che il flag --enable-private-endpoint sia applicato:

    gcloud container clusters describe CLUSTER_NAME | grep "enablePrivateEndpoint"
    

    L'output è simile al seguente:

    enablePrivateEndpoint:true
    

Cluster creati come privati

Per impostazione predefinita, quando crei un cluster privato GKE, GKE assegna un indirizzo IP esterno (endpoint esterno) e un indirizzo IP interno (endpoint interno) al piano di controllo. Puoi annullare l'assegnazione di questo endpoint esterno, ma non puoi annullare l'assegnazione dell'endpoint interno.

Se chiedi a GKE di annullare l'assegnazione dell'endpoint esterno, l'accesso esterno al piano di controllo da indirizzi IP esterni viene disabilitato.

Per rimuovere l'endpoint esterno in un cluster creato come privato, utilizza gcloud CLI o la console Google Cloud:

gcloud

  1. Aggiorna il cluster per utilizzare il flag --enable-private-endpoint:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-endpoint
    

    Sostituisci CLUSTER_NAME con il nome del cluster pubblico.

  2. Conferma che il flag --enable-private-endpoint sia applicato:

    gcloud container clusters describe CLUSTER_NAME | grep "enablePrivateEndpoint"
    

    L'output è simile al seguente:

    enablePrivateEndpoint: true
    

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da modificare.

  3. In Impostazioni di base del cluster, nel campo Endpoint esterno, fai clic su Modifica accesso al piano di controllo esterno.

  4. Deseleziona la casella di controllo Consenti accesso tramite indirizzi IP pubblici di Google Cloud.

  5. Fai clic su Salva modifiche.

Abilita l'accesso esterno al piano di controllo nei cluster che utilizzano Private Service Connect

Per assegnare un indirizzo IP esterno (endpoint esterno) al piano di controllo nei cluster creati come pubblici o privati, utilizza gcloud CLI o la console Google Cloud:

gcloud

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --no-enable-private-endpoint

Sostituisci CLUSTER_NAME con il nome del cluster pubblico.

Gli indirizzi IP esterni possono accedere al piano di controllo del cluster.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Fai clic sul nome del cluster da modificare.

  3. In Impostazioni di base del cluster, nel campo Endpoint esterno, fai clic su Modifica accesso al piano di controllo esterno.

  4. Seleziona la casella di controllo Accedi al piano di controllo utilizzando l'indirizzo IP esterno.

  5. Fai clic su Salva modifiche.

Isola i pool di nodi

Puoi indicare a GKE di eseguire il provisioning dei pool di nodi solo con indirizzi IP privati. Dopo aver aggiornato un pool di nodi pubblico alla modalità privata, i carichi di lavoro che richiedono l'accesso a internet pubblico potrebbero non riuscire. Prima di modificare l'isolamento dei nodi, consulta le limitazioni dei cluster Private Service Connect. Puoi modificare questa impostazione sui cluster creati come pubblici o privati:

Autopilot

Nei cluster Autopilot, aggiungi un'incompatibilità sui pod esistenti in modo che GKE ne esegua il provisioning solo sui nodi privati:

  1. Per richiedere che GKE pianifichi un pod su nodi privati, aggiungi il seguente nodeSelector alla specifica del pod:

     cloud.google.com/private-node=true
    

    GKE ricrea i tuoi pod su nodi privati. Per evitare interruzioni dei carichi di lavoro, esegui la migrazione di ogni carico di lavoro in modo indipendente e monitora la migrazione.

  2. Se utilizzi un VPC condiviso, abilita l'accesso privato Google dopo aver modificato la modalità di isolamento del cluster. Se utilizzi Cloud NAT, non è necessario abilitare l'accesso privato Google.

Standard

gcloud

Per eseguire il provisioning dei nodi tramite indirizzi IP privati in un pool di nodi esistente, esegui questo comando:

  gcloud container node-pools update NODE_POOL_NAME \
      --cluster=CLUSTER_NAME \
      --enable-private-nodes

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi che vuoi modificare.
  • CLUSTER_NAME: il nome del cluster GKE.

    Se utilizzi un VPC condiviso, abilita l'accesso privato Google dopo aver modificato la modalità di isolamento del cluster. Se utilizzi Cloud NAT, non è necessario abilitare l'accesso privato Google.

Console

  1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud.

    Vai a Google Kubernetes Engine

  2. Nell'elenco dei cluster, fai clic sul nome del cluster.

  3. Nella pagina Cluster, fai clic sulla scheda Nodi.

  4. In Pool di nodi, fai clic sul nome del pool di nodi.

  5. Fai clic su Modifica.

  6. Seleziona la casella di controllo Abilita nodi privati.

  7. Fai clic su Salva.

Ripristina isolamento del pool di nodi

Nei cluster Standard, per indicare a GKE di eseguire il provisioning dei pool di nodi con indirizzi IP pubblici, esegui questo comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --no-enable-private-nodes

Sostituisci quanto segue:

  • NODE_POOL_NAME: il nome del pool di nodi che vuoi modificare.
  • CLUSTER_NAME: il nome del cluster GKE.

Gli indirizzi IP pubblici possono accedere ai nodi del cluster.

Limitazioni

Prima di modificare la modalità di isolamento del cluster, considera le seguenti limitazioni:

  • La modifica della modalità di isolamento non è supportata nei cluster pubblici in esecuzione su reti legacy.
  • Dopo aver aggiornato un pool di nodi pubblico alla modalità privata, i carichi di lavoro che richiedono l'accesso a internet pubblico potrebbero non riuscire nei seguenti scenari:
    • Cluster in una rete VPC condiviso in cui l'accesso privato Google non è abilitato. Abilita manualmente l'accesso privato Google per assicurarti che GKE scarichi l'immagine del nodo assegnata. Per i cluster che non sono in reti VPC condiviso, GKE abilita automaticamente l'accesso privato Google.
    • Carichi di lavoro che richiedono l'accesso a internet dove Cloud NAT non è abilitato o non è definita una soluzione NAT personalizzata. Per consentire il traffico in uscita verso internet, abilita Cloud NAT o una soluzione NAT personalizzata.

Cluster Private Service Connect creati come pubblici o privati

Per i cluster creati come pubblici e che utilizzano Private Service Connect è abilitato un endpoint privato. In questo endpoint privato, gli indirizzi IP interni negli URL per i webhook nuovi o esistenti che configuri non sono supportati. Per mitigare questa incompatibilità:

  1. Configura un webhook con un indirizzo privato tramite URL.
  2. Crea un servizio headless senza un selettore.
  3. Crea un endpoint corrispondente per la destinazione richiesta.

Cluster Private Service Connect creati come pubblici

Solo nei cluster Private Service Connect creati come pubblici, tutti gli indirizzi IP privati della rete del cluster possono sempre raggiungere l'endpoint privato del cluster. Per scoprire di più sull'accesso al piano di controllo, consulta Reti autorizzate per l'accesso al piano di controllo.

Passaggi successivi