Personalizzare l'isolamento della rete in GKE


Questa pagina spiega come configurare l'isolamento della rete per i cluster Google Kubernetes Engine (GKE) al momento della loro creazione.

Best practice:

Pianifica e progetta l'isolamento della rete del cluster con gli architetti di rete, gli amministratori di rete o qualsiasi altro team di ingegneri di rete della tua organizzazione responsabile della definizione, dell'implementazione e della manutenzione dell'architettura di rete.

Come funziona l'isolamento della rete del cluster

In un cluster GKE, l'isolamento della rete dipende da chi può accedere ai componenti del cluster e come. Puoi controllare:

  • Accesso al control plane: puoi personalizzare l'accesso esterno, l'accesso limitato o l'accesso senza restrizioni al control plane.
  • Networking del cluster: puoi scegliere chi può accedere ai nodi dei cluster standard o ai carichi di lavoro dei cluster Autopilot.

Prima di creare il cluster, tieni presente quanto segue:

  1. Chi può accedere al control plane e come viene esposto?
  2. Come sono esposti i tuoi nodi o carichi di lavoro?

Per rispondere a queste domande, segui le linee guida per la pianificazione e la progettazione riportate in Informazioni sull'isolamento della rete.

Restrizioni e limitazioni

Per impostazione predefinita, GKE crea i cluster come cluster VPC nativi. I cluster VPC nativi non supportano le reti legacy.

Espandi le seguenti sezioni per visualizzare le regole relative agli intervalli di indirizzi IP e al traffico durante la creazione di un cluster.

Prima di iniziare

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

  • Attiva l'API Google Kubernetes Engine.
  • Attiva 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.

Configurare l'accesso al piano di controllo

Quando crei un cluster GKE in qualsiasi versione utilizzando Google Cloud CLI o nella versione 1.29 e successive utilizzando la console, il piano di controllo è accessibile tramite le seguenti interfacce:

Endpoint basato su DNS

L'accesso al control plane dipende dalla risoluzione DNS del traffico di origine. Attiva l'endpoint basato su DNS per usufruire dei seguenti vantaggi:

  • Crea un criterio di accesso dinamico basato sui criteri IAM.
  • Accedi al piano di controllo da altre reti VPC o posizioni esterne senza dover configurare bastion host o nodi proxy.

Per autenticare e autorizzare le richieste di accesso a questo endpoint, configura l'autorizzazione IAM container.clusters.connect. Per configurare questa autorizzazione, assegna i seguenti ruoli IAM al tuo progetto Google Cloud:

  • roles/container.developer
  • roles/container.viewer

Puoi anche utilizzare i Controlli di servizio VPC per aggiungere un livello di sicurezza all'accesso al piano di controllo. I Controlli di servizio VPC funzionano in modo coerente nelle API Google Cloud.

Endpoint basati su IP

L'accesso agli endpoint del piano di controllo dipende dall'indirizzo IP di origine ed è controllato dalle reti autorizzate. Puoi gestire l'accesso agli endpoint basati su IP del piano di controllo, tra cui:

  • Attiva o disattiva l'endpoint basato su IP.
  • Attiva o disattiva l'endpoint esterno per consentire l'accesso dal traffico esterno. L'endpoint interno viene sempre attivato quando attivi gli endpoint basati su IP del control plane.
  • Aggiungi le reti autorizzate da inserire nella lista consentita o da cui negare l'accesso dagli indirizzi IP pubblici. Se non configuri le reti autorizzate, il piano di controllo è accessibile da qualsiasi indirizzo IP esterno. Sono inclusi gli indirizzi IP esterni di Google Cloud o internet pubblico senza limitazioni.
  • Aggiungi alla lista consentita o nega l'accesso da uno o tutti gli indirizzi IP privati nel cluster.
  • Aggiungi alla lista consentita o nega l'accesso dagli indirizzi IP esterni di Google Cloud, ovvero gli indirizzi IP esterni assegnati a qualsiasi VM utilizzata da qualsiasi cliente ospitato su Google Cloud.
  • Aggiungi alla lista consentita o nega l'accesso da indirizzi IP in altre regioni Google Cloud.

Esamina le limitazioni dell'utilizzo di endpoint basati su IP prima di definire l'accesso al control plane.

Crea un cluster e definisci l'accesso al control plane

Per creare o aggiornare un cluster Autopilot o Standard, utilizza Google Cloud CLI o la console Google Cloud.

Console

Per creare un cluster, completa i seguenti passaggi:

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

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura gli attributi del cluster in base alle esigenze del progetto.

  4. Nel menu di navigazione, fai clic su Networking.

  5. In Accesso al piano di controllo, configura gli endpoint del piano di controllo:

    1. Seleziona la casella di controllo Accedi utilizzando DNS per attivare gli endpoint basati su DNS del control plane.
    2. Seleziona la casella di controllo Accedi utilizzando indirizzi IPv4 per attivare gli endpoint basati su IP del control plane. Utilizza la configurazione inclusa in Definire gli indirizzi IP che possono accedere al piano di controllo per personalizzare l'accesso agli endpoint basati su IP.

gcloud

Per i cluster Autopilot, esegui il seguente comando:

  gcloud container clusters create-auto CLUSTER_NAME \
    --enable-ip-access  \
    --enable-dns-access

Per i cluster standard, esegui il seguente comando:

  gcloud container clusters create CLUSTER_NAME \
      --enable-ip-access \
      --enable-dns-access

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster.

Entrambi i comandi includono flag che attivano quanto segue:

  • enable-dns-access: consente l'accesso al control plane utilizzando l'endpoint basato su DNS del control plane.
  • enable-ip-access: consente l'accesso al control plane utilizzando indirizzi IPv4. Ometti questo flag se vuoi disattivare sia gli endpoint interni sia quelli esterni del piano di controllo.

Utilizza i flag elencati in Definire gli indirizzi IP che possono accedere al piano di controllo per personalizzare l'accesso agli endpoint basati su IP.

Definisci gli indirizzi IP che possono accedere al piano di controllo

Per definire gli indirizzi IP che possono accedere al piano di controllo:

Console

  1. In Accesso al control plane, seleziona Abilita reti autorizzate.
  2. Fai clic su Aggiungi rete autorizzata.
  3. Inserisci un nome per la rete.
  4. In Rete, inserisci un intervallo CIDR a cui vuoi concedere l'accesso al control plane del tuo cluster.
  5. Fai clic su Fine.
  6. Se necessario, aggiungi altre emittenti autorizzate.
Definisci le regole firewall per l'indirizzo IP del control plane

Per definire le regole del firewall per l'indirizzo IP del control plane:

  1. Espandi la sezione Mostra regole firewall per indirizzo IP.
  2. Seleziona la casella di controllo Accedi mediante l'indirizzo IP esterno del control plane per consentire l'accesso al control plane da indirizzi IP pubblici.

    Best practice:

    Definisci le reti autorizzate del control plane per limitare l'accesso al control plane.

  3. Seleziona la casella di controllo Accedi mediante l'indirizzo IP interno del control plane da qualsiasi regione. Gli indirizzi IP interni di qualsiasi regione Google Cloud possono accedere all'endpoint interno del piano di controllo.

  4. Seleziona Applica le reti autorizzate sull'endpoint interno del control plane. Solo gli indirizzi IP che hai definito nell'elenco Aggiungi reti autorizzate possono accedere all'endpoint interno del piano di controllo. L'endpoint interno è attivo per impostazione predefinita.

  5. Seleziona Aggiungi indirizzi IP esterni di Google Cloud alle reti autorizzate. Tutti gli indirizzi IP pubblici di Google Cloud possono accedere al piano di controllo.

gcloud

Puoi configurare gli indirizzi IP che possono accedere agli endpoint interni ed esterni del control plane utilizzando i seguenti flag:

  • enable-private-endpoint: specifica che l'accesso all'endpoint esterno è disabilitato. Ometti questo flag se vuoi consentire l'accesso al piano di controllo da indirizzi IP esterni. In questo caso, ti consigliamo vivamente di controllare l'accesso all'endpoint esterno con il flag enable-master-authorized-networks.
  • enable-master-authorized-networks: Specifica che l'accesso all'endpoint esterno è limitato agli intervalli di indirizzi IP che autorizzi.
  • master-authorized-networks: elenca i valori CIDR per le reti autorizzate. Questo elenco è delimitato da virgole. Ad esempio, 8.8.8.8/32,8.8.8.0/24.

    Best practice:

    Utilizza il flag enable-master-authorized-networks per limitare l'accesso al piano di controllo.

  • enable-authorized-networks-on-private-endpoint: specifica che l'accesso all'endpoint interno è limitato agli intervalli di indirizzi IP che autorizzi con il flag enable-master-authorized-networks.

  • no-enable-google-cloud-access: nega l'accesso al control plane dagli indirizzi IP esterni di Google Cloud.

  • enable-master-global-access: consente l'accesso da indirizzi IP in altre regioni Google Cloud.

    Puoi continuare a configurare la rete del cluster definendo l'isolamento dei nodi o dei pod a livello di cluster.

Puoi anche creare un cluster e definire gli attributi a livello di cluster, ad esempio la rete e la subnet del nodo, il tipo di stack IP e l'allocazione degli indirizzi IP. Per scoprire di più, consulta Creare un cluster nativo di VPC.

Modificare l'accesso al control plane

Per modificare l'accesso al control plane di un cluster, utilizza gcloud CLI o la console Google Cloud.

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 scheda Dettagli cluster, fai clic su in Networking del piano di controllo.

  4. Nella finestra di dialogo Modifica networking del control plane, modifica l'accesso al piano di controllo in base ai requisiti del tuo caso d'uso.

  5. Verifica la configurazione del control plane.

gcloud

Esegui il seguente comando e aggiungi i flag che soddisfano il tuo caso d'uso. Puoi utilizzare i seguenti flag:

  • enable-dns-access: consente l'accesso al control plane utilizzando l'endpoint basato su DNS del control plane.
  • enable-ip-access: consente l'accesso al control plane utilizzando indirizzi IPv4. Ometti questo flag se vuoi disattivare sia gli endpoint interni sia quelli esterni del piano di controllo.
  • enable-private-endpoint: specifica che l'accesso all'endpoint esterno è disabilitato. Ometti questo flag se vuoi consentire l'accesso al piano di controllo da indirizzi IP esterni. In questo caso, ti consigliamo vivamente di controllare l'accesso all'endpoint esterno con il flag enable-master-authorized-networks.
  • enable-master-authorized-networks: Specifica che l'accesso all'endpoint esterno è limitato agli intervalli di indirizzi IP che autorizzi.
  • master-authorized-networks: elenca i valori CIDR per le reti autorizzate. Questo elenco è delimitato da virgole. Ad esempio, 8.8.8.8/32,8.8.8.0/24.

    Best practice:

    Utilizza il flag enable-master-authorized-networks per limitare l'accesso al piano di controllo.

  • enable-authorized-networks-on-private-endpoint: specifica che l'accesso all'endpoint interno è limitato agli intervalli di indirizzi IP che autorizzi con il flag enable-master-authorized-networks.

  • no-enable-google-cloud-access: nega l'accesso al control plane dagli indirizzi IP esterni di Google Cloud.

  • enable-master-global-access: consente l'accesso da indirizzi IP in altre regioni Google Cloud.

    gcloud container clusters update CLUSTER_NAME
    

    Sostituisci CLUSTER_NAME con il nome del cluster.

Verifica la configurazione del control plane

Puoi visualizzare gli endpoint del cluster utilizzando la gcloud CLI o la console Google Cloud.

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 scheda Dettagli cluster, in Piano di controllo, puoi controllare le seguenti caratteristiche degli endpoint del piano di controllo:

    • Endpoint DNS include il nome dell'endpoint basato su DNS del tuo cluster, se lo hai attivato.
    • Controlla l'accesso al control plane mediante indirizzi IPv4 include lo stato dell'endpoint basato su IP. Se abilitato, puoi vedere le informazioni degli endpoint pubblici e privati.
    • L'opzione Accedi mediante l'indirizzo IP interno del control plane da qualsiasi regione mostra lo stato Attivato quando è possibile accedere al piano di controllo dagli indirizzi IP di Google di altre regioni.
    • Reti autorizzate mostra l'elenco dei CIDR che possono accedere al piano di controllo, se hai attivato le reti autorizzate.
    • L'opzione Applica le reti autorizzate sull'endpoint interno del control plane mostra lo stato Attivato se solo i CIDR nel campo Reti autorizzate possono accedere all'endpoint interno.
    • Aggiungi indirizzi IP esterni di Google Cloud alle reti autorizzate viene visualizzato lo stato Abilitato se gli indirizzi IP esterni di Google Cloud possono accedere al piano di controllo.

Per modificare un attributo, fai clic su Controlla l'accesso al control plane mediante indirizzi IPv4 e modificalo in base al tuo caso d'uso.

gcloud

Per verificare la configurazione del piano di controllo, esegui il seguente comando:

gcloud container clusters describe CLUSTER_NAME

L'output contiene un blocco controlPlaneEndpointsConfig che descrive la definizione della rete. Dovresti visualizzare un output simile al seguente:

controlPlaneEndpointsConfig:
dnsEndpointConfig:
  allowExternalTraffic: true
  endpoint: gke-dc6d549babec45f49a431dc9ca926da159ca-518563762004.us-central1-c.autopush.gke.goog
ipEndpointsConfig:
  authorizedNetworksConfig:
    cidrBlocks:
    - cidrBlock: 8.8.8.8/32
    - cidrBlock: 8.8.8.0/24
    enabled: true
    gcpPublicCidrsAccessEnabled: false
    privateEndpointEnforcementEnabled: true
  enablePublicEndpoint: false
  enabled: true
  globalAccess: true
  privateEndpoint: 10.128.0.13

In questo esempio, il cluster ha la seguente configurazione:

  • Sono abilitati sia gli endpoint basati su DNS sia quelli basati su indirizzo IP.
  • Le reti autorizzate sono abilitate e gli intervalli CIDR sono definiti. Queste reti autorizzate vengono applicate per l'indirizzo IP interno.
  • L'accesso al control plane dagli indirizzi IP esterni di Google Cloud è negato.

Esempi di configurazione dell'accesso al control plane

Questa sezione descrive in dettaglio la configurazione dei seguenti esempi di isolamento della rete. Valuta la somiglianza di questi esempi con il tuo caso d'uso:

  • Esempio 1: il control plane è accessibile da determinati indirizzi IP che definisci. Potrebbero essere inclusi indirizzi IP di altre regioni Google Cloud o indirizzi IP riservati a Google.
  • Esempio 2: il piano di controllo non è accessibile da nessun indirizzo IP esterno.
Esempio 1: il piano di controllo è accessibile da determinati indirizzi IP

In questa sezione viene creato un cluster con le seguenti configurazioni di isolamento della rete:

  • Nel control plane è attivato l'endpoint basato su DNS.
  • Il piano di controllo ha l'endpoint esterno abilitato oltre all'endpoint interno abilitato per impostazione predefinita.
  • Il control plane ha reti autorizzate definite, che consentono solo alle seguenti reti autorizzate di raggiungerlo:

Per creare questo cluster, utilizza Google Cloud CLI o la console Google Cloud.

Console

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

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura il cluster in base ai tuoi requisiti.

  4. Nel menu di navigazione, fai clic su Networking.

  5. In Accesso al piano di controllo, configura gli endpoint del piano di controllo:

    1. Seleziona la casella di controllo Accedi utilizzando il DNS.
    2. Seleziona la casella di controllo Accedi utilizzando indirizzi IPv4.
  6. Seleziona Abilita reti autorizzate.

  7. Fai clic su Aggiungi rete autorizzata.

  8. Inserisci un nome per la rete.

  9. In Rete, inserisci un intervallo CIDR a cui vuoi concedere l'accesso al control plane del tuo cluster.

  10. Fai clic su Fine.

  11. Se necessario, aggiungi altre emittenti autorizzate.

  12. Espandi la sezione Mostra regole firewall per indirizzo IP.

  13. Seleziona Accedi mediante l'indirizzo IP interno del control plane da qualsiasi regione. Gli indirizzi IP interni di qualsiasi regione Google Cloud possono accedere al control plane tramite l'indirizzo IP interno.

  14. Seleziona Aggiungi indirizzi IP esterni di Google Cloud alle reti autorizzate. Tutti gli indirizzi IP esterni di Google Cloud possono accedere al piano di controllo.

Puoi continuare a configurare la rete del cluster definendo l'isolamento dei nodi o dei pod a livello di cluster.

gcloud

Esegui questo comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-master-authorized-networks \
    --enable-master-global-access \
    --master-authorized-networks CIDR1,CIDR2,...

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster GKE.
  • CIDR1,CIDR2,...: un elenco separato da virgole di valori CIDR per le reti autorizzate. Ad esempio, 8.8.8.8/32,8.8.8.0/24.
Esempio 2: il piano di controllo è accessibile dagli indirizzi IP interni

In questa sezione viene creato un cluster con le seguenti configurazioni di isolamento della rete:

  • Nel control plane è attivato l'endpoint basato su DNS.
  • L'endpoint esterno del control plane è disattivato.
  • Le reti autorizzate sono abilitate nel control plane.
  • È consentito tutto l'accesso al control plane tramite l'indirizzo IP interno da qualsiasi regione Google Cloud.
  • Gli indirizzi IP esterni di Google Cloud non hanno accesso al tuo cluster.

Puoi creare questo cluster utilizzando Google Cloud CLI o la console Google Cloud.

Console

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

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea.

  3. Configura il cluster in base ai tuoi requisiti.

  4. Nel menu di navigazione, fai clic su Networking.

  5. In Accesso al piano di controllo, configura gli endpoint del piano di controllo:

    1. Seleziona la casella di controllo Accedi utilizzando il DNS.
    2. Seleziona la casella di controllo Accedi utilizzando indirizzi IPv4.
  6. Espandi la sezione Mostra regole firewall per indirizzo IP.

  7. Deseleziona Accedi mediante l'indirizzo IP esterno del control plane. Il control plane non è accessibile da nessun indirizzo IP esterno.

  8. In Accesso al control plane, seleziona Abilita reti autorizzate.

  9. Seleziona la casella di controllo Accedi mediante l'indirizzo IP interno del control plane da qualsiasi regione. Gli indirizzi IP interni di qualsiasi regione Google Cloud possono accedere al piano di controllo tramite l'indirizzo IP interno.

Puoi continuare la configurazione della rete del cluster definendo l'isolamento dei nodi o dei pod a livello di cluster.

gcloud

Esegui questo comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --enable-dns-access \
    --enable-ip-access \
    --enable-private-endpoint \
    --enable-master-authorized-networks \
    --master-authorized-networks CIDR1,CIDR2,... \
    --no-enable-google-cloud-access \
    --enable-master-global-access

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del cluster.
  • CIDR1,CIDR2,...: un elenco separato da virgole di valori CIDR per le reti autorizzate. Ad esempio, 8.8.8.8/32,8.8.8.0/24.

Configurare il networking del cluster

In questa sezione, configuri il cluster in modo che abbia nodi con accesso interno (privato) o esterno (pubblico). GKE ti consente di combinare la configurazione di rete dei nodi in base al tipo di cluster che utilizzi:

  • Cluster standard: puoi creare o aggiornare i pool di nodi per eseguire il provisioning di nodi privati o pubblici nello stesso cluster. Ad esempio, se crei un pool di nodi con nodi privati, GKE esegue il provisioning dei nodi solo con indirizzi IP interni. GKE non modifica i pool di nodi esistenti. Puoi anche definire la configurazione di rete predefinita a livello di cluster. GKE applica questa configurazione di rete predefinita solo quando per i nuovi pool di nodi non è stata definita alcuna configurazione di rete.
  • Cluster Autopilot: puoi creare o aggiornare il cluster per definire la configurazione di rete predefinita per tutti i tuoi carichi di lavoro. GKE pianifica i carichi di lavoro nuovi ed esistenti su nodi pubblici o privati in base alla tua configurazione. Puoi anche definire esplicitamente la configurazione della rete del cluster di un singolo carico di lavoro.

Configura il cluster

In questa sezione, configura il networking del cluster a livello di cluster. GKE prende in considerazione questa configurazione quando il pool di nodi o il carico di lavoro non la definisce.

Per definire la configurazione a livello di cluster, utilizza Google Cloud CLI o la console Google Cloud.

Console

Crea un cluster

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

    Vai a Google Kubernetes Engine

  2. Fai clic su Crea e poi sulla sezione Standard o Autopilot e fai clic su Configura.

  3. Configura il cluster in base ai tuoi requisiti.

  4. Nel menu di navigazione, fai clic su Networking.

  5. Nella sezione Networking del cluster, completa quanto segue in base al tuo caso d'uso:

    1. Seleziona Abilita i nodi privati per eseguire il provisioning di nodi con solo indirizzi IP interni (nodi privati) che impediscono ai client esterni di accedere ai nodi. Puoi modificare queste impostazioni in qualsiasi momento.
    2. Deseleziona Abilita nodi privati per eseguire il provisioning dei nodi solo con indirizzi IP esterni (pubblici) che consentono ai client esterni di accedere ai nodi.
  6. Nella sezione Opzioni di networking avanzate, configura altri attributi VPC nativi. Per scoprire di più, consulta Creare un cluster nativo di VPC.

  7. Fai clic su Crea.

Aggiornare un cluster esistente

  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. In Nodi privati, fai clic su Modifica nodi privati nella scheda Configurazione predefinita del nuovo node pool.

  4. Nella finestra di dialogo Modifica nodi privati, esegui una delle seguenti operazioni:

    1. Seleziona Abilita i nodi privati per eseguire il provisioning di nodi con solo indirizzi IP interni (nodi privati) che impediscono ai client esterni di accedere ai nodi. Puoi modificare queste impostazioni in qualsiasi momento.
    2. Deseleziona Abilita nodi privati per eseguire il provisioning dei nodi solo con indirizzi IP esterni (pubblici) che consentono ai client esterni di accedere ai nodi.
  5. Fai clic su Salva modifiche.

gcloud

Utilizza uno dei seguenti flag per definire la rete del cluster:

  • enable-private-nodes: per eseguire il provisioning dei nodi utilizzando solo indirizzi IP interni (nodi privati). Tieni presenti le seguenti condizioni quando utilizzi questo flag:
    • Il flag enable-ip-alias è obbligatorio quando si utilizza enable-private-nodes.
    • Il flag master-ipv4-cidr è facoltativo per creare subnet private. Se utilizzi questo flag, GKE crea una nuova subnet che utilizza i valori definiti in master-ipv4-cidr e utilizza la nuova subnet per eseguire il provisioning dell'indirizzo IP interno per il piano di controllo.
  • no-enable-private-nodes: per eseguire il provisioning dei nodi utilizzando solo indirizzi IP esterni (nodi pubblici).

Nei cluster Autopilot, create o aggiorna il cluster con il flag enable-private-nodes.

  • Per creare un cluster, utilizza il seguente comando:

    gcloud container clusters create-auto CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Per aggiornare un cluster, utilizza il seguente comando.

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    L'aggiornamento del cluster viene applicato solo dopo che tutti i pool di nodi sono stati nuovamente pianificati. Questa procedura potrebbe richiedere diverse ore.

Nei cluster standard, create o aggiorna il cluster con il flag enable-private-nodes.

  • Per creare un cluster, utilizza il seguente comando:

    gcloud container clusters create CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    
  • Per aggiornare un cluster, utilizza il seguente comando:

    gcloud container clusters update CLUSTER_NAME \
        --enable-private-nodes \
        --enable-ip-alias
    

    L'aggiornamento del cluster viene applicato solo ai nuovi node pool. GKE non aggiorna questa configurazione nei pool di nodi esistenti.

La configurazione del cluster viene sovrascritta dalla configurazione di rete nel pool di nodi o a livello di workload.

Configura i pool di nodi o i carichi di lavoro

Per configurare i nodi privati o pubblici a livello di workload per i cluster Autopilot o i pool di nodi per i cluster standard, utilizza Google Cloud CLI o la console Google Cloud. Se non definisci la configurazione di rete a livello di workload o pool di nodi, GKE applica la configurazione predefinita a livello di cluster.

Console

Nei cluster standard, completa i seguenti passaggi:

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

    Vai a Google Kubernetes Engine

  2. Nella pagina Dettagli cluster, fai clic sul nome del cluster da modificare.

  3. Fai clic su Aggiungi pool di nodi.

  4. Configura la casella di controllo Abilita nodi privati in base al tuo caso d'uso:

    1. Seleziona Abilita nodi privati per eseguire il provisioning di nodi con solo indirizzi IP interni (nodi privati).
    2. Deseleziona Abilita nodi privati per eseguire il provisioning dei nodi solo con indirizzi IP esterni (pubblici) che consentono ai client esterni di accedere ai nodi. Puoi modificare questa configurazione in qualsiasi momento.
  5. Configura il nuovo pool di nodi.

  6. Fai clic su Crea.

Per scoprire di più sulla gestione dei pool di nodi, consulta Aggiungere e gestire i pool di nodi.

gcloud

  • Nei cluster Autopilot, per richiedere a GKE di pianificare un pod su nodi privati, aggiungi il seguente nodeSelector alla specifica del pod:

    cloud.google.com/private-node=true
    

    Utilizza private-node=true nel pod nodeSelector per pianificare un pod su nodi con solo indirizzi IP interni (nodi privati).

    GKE ricrea i pod su nodi privati o pubblici, in base alla configurazione. Per evitare interruzioni del carico di lavoro, esegui la migrazione di ogni carico di lavoro in modo indipendente e monitorala.

  • Nei cluster standard, per eseguire il provisioning dei nodi tramite indirizzi IP privati in un pool di nodi esistente, esegui il seguente comando:

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

    Sostituisci quanto segue:

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

    Utilizza uno dei seguenti flag per definire la configurazione della rete del pool di nodi:

    • enable-private-nodes: per eseguire il provisioning dei nodi utilizzando solo indirizzi IP interni (nodi privati).
    • no-enable-private-nodes: per eseguire il provisioning dei nodi utilizzando solo indirizzi IP esterni (nodi pubblici).

Configurazioni avanzate

Le sezioni seguenti descrivono le configurazioni avanzate che potresti voler utilizzare per configurare l'isolamento della rete del cluster.

Utilizzo di Cloud Shell per accedere a un cluster con l'endpoint esterno disattivato

Se l'endpoint esterno del control plane del cluster è disabilitato, non puoi accedere al control plane GKE con Cloud Shell. Se vuoi utilizzare Cloud Shell per accedere al tuo cluster, ti consigliamo di abilitare l'endpoint basato su DNS.

Per verificare l'accesso al cluster, completa i seguenti passaggi:

  1. Se hai attivato l'endpoint basato su DNS, esegui il seguente comando per ottenere le credenziali per il cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --dns-endpoint
    

    Se hai attivato l'endpoint basato su IP, esegui il seguente comando per ottenere le credenziali per il cluster:

    gcloud container clusters get-credentials CLUSTER_NAME \
        --project=PROJECT_ID \
        --internal-ip
    

    Sostituisci PROJECT_ID con l'ID progetto.

  2. Utilizza kubectl in Cloud Shell per accedere al tuo cluster:

    kubectl get nodes
    

    L'output è simile al seguente:

    NAME                                               STATUS   ROLES    AGE    VERSION
    gke-cluster-1-default-pool-7d914212-18jv   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-3d9p   Ready    <none>   104m   v1.21.5-gke.1302
    gke-cluster-1-default-pool-7d914212-wgqf   Ready    <none>   104m   v1.21.5-gke.1302
    

Il comando get-credentials utilizza automaticamente l'endpoint basato su DNS se l'accesso all'endpoint basato su IP è disattivato.

Aggiungere regole firewall per casi d'uso specifici

Questa sezione spiega come aggiungere una regola firewall a un cluster. Per impostazione predefinita, le regole del firewall limitano il control plane del cluster a iniziare solo connessioni TCP ai nodi e ai pod sulle porte 443 (HTTPS) e 10250 (kubelet). Per alcune funzionalità di Kubernetes, potrebbe essere necessario aggiungere regole del firewall per consentire l'accesso su porte aggiuntive. Non creare regole firewall o regole dei criteri firewall gerarchici che hanno una priorità più alta rispetto alle regole firewall create automaticamente.

Le funzionalità Kubernetes che richiedono regole firewall aggiuntive includono:

L'aggiunta di una regola firewall consente il traffico dal piano di controllo del cluster a tutti i seguenti elementi:

  • La porta specificata di ogni nodo (hostPort).
  • La porta specificata di ogni pod in esecuzione su questi nodi.
  • La porta specificata di ogni servizio in esecuzione su questi nodi.

Per informazioni sulle regole firewall, consulta la sezione Regole firewall nella documentazione di Cloud Load Balancing.

Per aggiungere una regola firewall in un cluster, devi registrare il blocco CIDR del control plane del cluster e il target utilizzato. Dopo aver registrato questa azione, puoi creare la regola.

Visualizza il blocco CIDR del piano di controllo

Per aggiungere una regola firewall, devi disporre del blocco CIDR del piano di controllo del cluster.

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.

Nella scheda Dettagli, in Networking, prendi nota del valore nel campo Intervallo di indirizzi del piano di controllo.

gcloud

Esegui questo comando:

gcloud container clusters describe CLUSTER_NAME

Sostituisci CLUSTER_NAME con il nome del tuo cluster.

Nell'output del comando, prendi nota del valore nel campo masterIpv4CidrBlock.

Visualizza le regole firewall esistenti

Devi specificare il target (in questo caso, i nodi di destinazione) utilizzato dalle regole firewall esistenti del cluster.

Console

  1. Vai alla pagina Criteri firewall nella console Google Cloud.

    Vai a Policy del firewall

  2. Per Tabella dei filtri per le regole firewall VPC, inserisci gke-CLUSTER_NAME.

Nei risultati, prendi nota del valore nel campo Target.

gcloud

Esegui questo comando:

gcloud compute firewall-rules list \
    --filter 'name~^gke-CLUSTER_NAME' \
    --format 'table(
        name,
        network,
        direction,
        sourceRanges.list():label=SRC_RANGES,
        allowed[].map().firewall_rule().list():label=ALLOW,
        targetTags.list():label=TARGET_TAGS
    )'

Nell'output del comando, prendi nota del valore nel campo Targets (Destinazioni).

Per visualizzare le regole firewall per un VPC condiviso, aggiungi il flag --project HOST_PROJECT_ID al comando.

Aggiungere una regola firewall

Console

  1. Vai alla pagina Criteri firewall nella console Google Cloud.

    Vai a Policy del firewall

  2. Fai clic su Crea regola firewall.

  3. In Nome, inserisci il nome della regola firewall.

  4. Nell'elenco Rete, seleziona la rete pertinente.

  5. In Direzione del traffico, fai clic su In entrata.

  6. In Azione in caso di corrispondenza, fai clic su Consenti.

  7. Nell'elenco Destinazioni, seleziona Tag di destinazione specificati.

  8. In Tag di destinazione, inserisci il valore target che hai annotato in precedenza.

  9. Nell'elenco Filtro di origine, seleziona Intervalli IPv4.

  10. In Intervalli IPv4 di origine, inserisci il blocco CIDR del piano di controllo del cluster.

  11. In Protocolli e porte, fai clic su Protocolli e porte specificati, seleziona la casella di controllo per il protocollo pertinente (tcp o udp) e inserisci il numero di porta nel campo del protocollo.

  12. Fai clic su Crea.

gcloud

Esegui questo comando:

gcloud compute firewall-rules create FIREWALL_RULE_NAME \
    --action ALLOW \
    --direction INGRESS \
    --source-ranges CONTROL_PLANE_RANGE \
    --rules PROTOCOL:PORT \
    --target-tags TARGET

Sostituisci quanto segue:

  • FIREWALL_RULE_NAME: il nome scelto per la regola firewall.
  • CONTROL_PLANE_RANGE: l'intervallo di indirizzi IP (masterIpv4CidrBlock) del piano di controllo del cluster che hai raccolto in precedenza.
  • PROTOCOL:PORT: la porta e il suo protocollo, tcp o udp.
  • TARGET: il valore target (Targets) raccolto in precedenza.

Per aggiungere una regola firewall per una VPC condiviso, aggiungi i seguenti flag al comando:

--project HOST_PROJECT_ID
--network NETWORK_ID

Concedere l'accesso a internet in uscita ai nodi privati

Per fornire l'accesso a internet in uscita per i tuoi nodi privati, ad esempio per estrarre le immagini da un registry esterno, utilizza Cloud NAT per creare e configurare un router cloud. Cloud NAT consente ai nodi privati di stabilire connessioni in uscita su internet per inviare e ricevere pacchetti.

Il router cloud consente a tutti i nodi della regione di utilizzare Cloud NAT per tutti gli intervalli IP principali e gli alias IP. Allo stesso modo, alloca automaticamente gli indirizzi IP esterni per il gateway NAT.

Per istruzioni su come creare e configurare un router Cloud, consulta Creare una configurazione Cloud NAT utilizzando il router Cloud nella documentazione di Cloud NAT.

Deployment di un'applicazione container Windows Server

Per scoprire come eseguire il deployment di un'applicazione contenitore Windows Server in un cluster con nodi privati, consulta la documentazione del pool di nodi Windows.

Passaggi successivi