Cambia l'isolamento nei cluster che utilizzano Private Service Connect


Questa pagina mostra come modificare l'isolamento della rete per il cluster dal piano di controllo e dai nodi 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é cambiare 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 le gli intervalli di indirizzi IP che hanno accesso al piano di controllo del cluster, ma il controllo del cluster è ancora 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 nodi

Vantaggi

L'isolamento della rete offre i seguenti vantaggi:

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

In questa pagina viene illustrato come modificare questo comportamento predefinito seguendo le istruzioni riportate di seguito. 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.
  • Abilitazione o disabilitazione dell'accesso pubblico all'endpoint esterno del controllo aereo. Questa azione isola completamente il cluster, mentre il piano di controllo accessibile da qualsiasi indirizzo IP pubblico. Per ulteriori informazioni, vedi isola il piano di controllo 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 attività:

  • Attiva l'API Google Kubernetes Engine.
  • Abilita l'API Google Kubernetes Engine .
  • Se vuoi utilizzare Google Cloud CLI per questa attività, install e poi initialize con 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, Cloud Run e Cloud Functions

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 private, 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 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 del piano di controllo, fai clic su Modifica alle reti autorizzate del piano di controllo.

  4. Deseleziona la casella di controllo Consenti l'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

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 del piano di controllo, fai clic su Modifica alle reti autorizzate del piano di controllo.

  4. Seleziona la casella di controllo Consenti l'accesso tramite indirizzi IP pubblici 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 GKE pubblico GKE assegna un indirizzo IP esterno (endpoint esterno) dal piano di controllo. Se chiedi a GKE di annullare l'assegnazione di questo un 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 sui abilitato per l'endpoint privato e i suoi limiti, consulta 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 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 chiedi a GKE di annullare l'assegnazione dell'endpoint esterno, l'accesso al piano di controllo da indirizzi IP esterni è 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 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 in: 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 di pool di nodi solo con IP privato indirizzi IP esterni. Dopo aver aggiornato un pool di nodi pubblico alla modalità privata, i carichi di lavoro la richiesta di accesso a internet pubblico potrebbe 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'incompatibilità sui pod esistenti in modo che GKE ne esegue il provisioning solo su 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 il carico di lavoro le interruzioni, la migrazione di ogni carico di lavoro in modo indipendente e il monitoraggio della migrazione.

  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 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 è necessario abilitare 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 che vuoi modificare.
  • CLUSTER_NAME: il nome del cluster GKE in un cluster Kubernetes.

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.
    • I carichi di lavoro che richiedono l'accesso a internet 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 sono non supportati. Per ridurre 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