Modificare l'isolamento nei cluster che utilizzano Private Service Connect


Questa pagina mostra come modificare l'isolamento della 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 in modo privato 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 dal piano di controllo.

Se configuri le reti autorizzate, puoi limitare gli intervalli di indirizzi IP che hanno accesso al piano di controllo del cluster, ma il piano di controllo del cluster rimane accessibile dagli indirizzi IP di proprietà di Google Cloud. Ad esempio, qualsiasi Una 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 tuoi nodi

Vantaggi

L'isolamento della rete offre i seguenti vantaggi:

  • Nello stesso cluster puoi configurare un mix di nodi privati e pubblici. In questo modo, puoi ridurre i costi per i nodi che non richiedono un indirizzo IP esterno per accedere ai servizi pubblici su internet.
  • Puoi bloccare l'accesso al piano di controllo da indirizzi IP di proprietà di Google Cloud o da indirizzi IP esterni per isolare completamente il piano di controllo del cluster.

Questa pagina mostra come modificare questo comportamento predefinito adottando le seguenti azioni:

  • Abilitazione o disabilitazione dell'accesso al piano di controllo dall'IP di proprietà di Google Cloud indirizzi IP esterni. Questa azione impedisce qualsiasi VM con indirizzi IP di proprietà di Google Cloud di raggiungere il tuo piano di controllo. Per maggiori informazioni, vedi Bloccare l'accesso al piano di controllo dagli indirizzi IP di proprietà di Google Cloud.
  • Attivare o disattivare l'accesso pubblico all'endpoint esterno del control plane. Questa azione isola completamente il cluster, mentre il piano di controllo accessibile da qualsiasi indirizzo IP pubblico. Per ulteriori informazioni, consulta Isolare il control plane del cluster.
  • Rimozione degli indirizzi IP pubblici dai nodi. Questa azione isola completamente carichi di lavoro con scale out impegnativi. Per ulteriori informazioni, vedi isolare i pool di nodi.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:

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

Bloccare l'accesso al control plane da VM, Cloud Run e funzioni Cloud Run di Google Cloud

Per impostazione predefinita, se hai creato un cluster Private Service Connect predefinito come public, le 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 scoprire cosa Gli 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 tuo cluster dalle VM Google Cloud, Cloud Run Le funzioni di Cloud Run utilizzano 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 del piano di controllo, fai clic su Modifica alle reti autorizzate del 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 control plane da indirizzi IP di proprietà di Google Cloud

Consentire l'accesso da indirizzi IP pubblici di proprietà di Google Cloud al 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.

Disattivare 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 privato, GKE abilita un endpoint privato. L'accesso ai tuoi il piano di controllo dagli indirizzi IP esterni è disabilitato, tranne che da Google Cloud e servizi che eseguono processi di gestione dei cluster. Per ulteriori informazioni sull'endpoint privato abilitato e sulle relative limitazioni, consulta Cluster pubblici con Private Service Connect.

Per modificare l'isolamento del piano di controllo per un cluster creato come pubblico, utilizza l'interfaccia a riga di comando gcloud:

  1. Aggiorna il cluster in modo da 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. Verifica 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 GKE privato, GKE assegna un indirizzo IP esterno (endpoint esterno) e un dall'indirizzo IP interno (endpoint interno) al piano di controllo. Puoi annullare l'assegnazione questo endpoint esterno, ma non puoi annullarne l'assegnazione.

Se indichi a GKE di annullare l'assegnazione dell'endpoint esterno, l'accesso esterno al tuo control plane da indirizzi IP esterni viene disattivato.

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

gcloud

  1. Aggiorna il cluster in modo da 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. Verifica 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 l'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 l'interfaccia a riga di comando gcloud 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 chiedere a GKE di eseguire il provisioning di 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 alla rete internet pubblica potrebbero non riuscire. Prima di cambiare i nodi sull'isolamento dei servizi, consulta i cluster Private Service Connect limitazioni. Puoi modificare questa impostazione sui cluster create come pubbliche o private:

Autopilot

Nei cluster Autopilot, aggiungi un'alterazione ai pod esistenti in modo che GKE li esegui 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 pod su nodi privati. Per evitare interruzioni del carico di lavoro, esegui la migrazione di ogni carico di lavoro in modo indipendente e monitorala.

  2. Se utilizzi un VPC condiviso, abilita Accesso privato Google dopo la modifica 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 in un cluster Kubernetes.

    Se utilizzi un VPC condiviso, abilita Accesso privato Google dopo la modifica la modalità di isolamento del cluster. Se utilizzi Cloud NAT, non devi attivare 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 del nodo pool 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 cambiare la modalità di isolamento del cluster, considera quanto segue limitazioni:

  • La modifica della modalità di isolamento non è supportata sui 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 potrebbe non riuscire nei seguenti scenari:
    • Cluster in una rete VPC condiviso in cui l'accesso privato Google non è abilitato. Attivare manualmente l'accesso privato Google per assicurarti che GKE scarichi l'immagine del nodo assegnata. Per i cluster che non fanno parte di reti VPC condiviso, GKE esegue consente l'accesso privato Google.
    • Carichi di lavoro che richiedono l'accesso a internet se 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 degli webhook nuovi o esistenti che configuri non sono supportati. Per attenuare 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 dalla 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