Personalizzare l'isolamento della rete in GKE


Questa pagina spiega come configurare l'isolamento di rete per i cluster Google Kubernetes Engine (GKE) quando crei o aggiorni il cluster.

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 di rete del cluster

In un cluster GKE, l'isolamento di rete dipende da chi può accedere ai componenti del cluster e in che modo. Puoi controllare:

  • Accesso al control plane: puoi personalizzare l'accesso esterno, l'accesso limitato o l'accesso illimitato al control plane.
  • Networking del cluster: puoi scegliere chi può accedere ai nodi nei cluster standard o ai workload nei cluster Autopilot.

Prima di creare il cluster, tieni presente quanto segue:

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

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

Limitazioni e restrizioni

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

Intervalli secondari dei pod a livello di node pool: quando crei un cluster GKE, se specifichi un intervallo secondario dei pod inferiore a /24 per pool di nodi utilizzando la UI, potresti riscontrare il seguente errore:

Getting Pod secondary range 'pod' must have a CIDR block larger or equal to /24

GKE non supporta la specifica di un intervallo inferiore a /24 a livello di pool di nodi. Tuttavia, è supportata la specifica di un intervallo più piccolo a livello di cluster. Questa operazione può essere eseguita utilizzando Google Cloud CLI con l'argomento --cluster-ipv4-cidr. Per saperne di più, consulta la sezione Creazione di un cluster con un intervallo CIDR specifico.

Espandi le sezioni seguenti 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à, installala e poi inizializzala. Se hai già installato gcloud CLI, scarica l'ultima versione eseguendo gcloud components update.

Configura l'accesso al control plane

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

Endpoint basato sul DNS

L'accesso al control plane dipende dalla risoluzione DNS del traffico di origine. Abilita l'endpoint basato su DNS per ottenere i seguenti vantaggi:

  • Crea un criterio di accesso dinamico basato sui criteri IAM.
  • Accedi al control plane da altre reti VPC o da località esterne senza la necessità di configurarebastion hostn o nodi proxy.

Per configurare l'accesso all'endpoint basato su DNS, consulta Definisci l'accesso all'endpoint basato su DNS.

Endpoint basati su IP

L'accesso agli endpoint del control plane dipende dall'indirizzo IP di origine ed è controllato dalle reti autorizzate. Puoi gestire l'accesso agli endpoint basati su IP del control plane, 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 è sempre abilitato quando abiliti gli endpoint basati su IP del control plane.
  • Aggiungi reti autorizzate alla lista consentita o nega l'accesso dagli indirizzi IP pubblici. Se non configuri le reti autorizzate, il control plane è accessibile da qualsiasi indirizzo IP esterno. Ciò include indirizzi IP esterni o di internet pubblico senza restrizioni. Google Cloud
  • Consenti o nega l'accesso da uno o tutti gli indirizzi IP privati nel cluster.
  • Consenti o nega l'accesso da Google Cloud indirizzi IP esterni, ovvero indirizzi IP esterni assegnati a qualsiasi VM utilizzata da qualsiasi cliente ospitato su Google Cloud.
  • Consenti o nega l'accesso da indirizzi IP in altre regioni Google Cloud .

Prima di definire l'accesso al control plane, esamina le limitazioni dell'utilizzo di endpoint basati su IP.

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 control plane, configura gli endpoint del control plane:

    1. Seleziona la casella di controllo Accesso tramite DNS per abilitare gli endpoint basati su DNS del control plane.
    2. Seleziona la casella di controllo Accedi mediante indirizzi IPv4 per abilitare gli endpoint basati su IP del control plane. Utilizza la configurazione inclusa in Definisci gli indirizzi IP che possono accedere al control plane per personalizzare l'accesso agli endpoint basati su IP.

gcloud

Per i cluster Autopilot, esegui questo comando:

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

Per i cluster Standard, esegui questo 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 consentono di:

  • enable-dns-access: consente l'accesso al control plane utilizzando l'endpoint del control plane basato su DNS.
  • enable-ip-access: consente l'accesso al control plane utilizzando indirizzi IPv4. Se vuoi disattivare sia gli endpoint interni che quelli esterni del control plane, utilizza il flag no-enable-ip-access.

Utilizza i flag elencati in Definisci gli indirizzi IP che possono accedere al control plane per personalizzare l'accesso agli endpoint basati su IP.

Definisci l'accesso all'endpoint basato su DNS

Puoi gestire l'autenticazione e l'autorizzazione all'endpoint basato su DNS configurando l'autorizzazione IAM container.clusters.connect. Per configurare questa autorizzazione, assegna uno dei seguenti ruoli IAM al tuo progettoGoogle Cloud :

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

Se vuoi, puoi gestire la raggiungibilità dell'endpoint basato su DNS utilizzando le seguenti funzionalità:

  • Controlli di servizio VPC: l'endpoint basato su DNS supporta 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 in tutte le Google Cloud API.

  • Accesso all'endpoint basato su DNS da client senza accesso a internet pubblico: l'endpoint basato su DNS è accessibile tramite le API Google Cloud disponibili su internet pubblico. Per accedere all'endpoint basato su DNS da client privati, puoi utilizzare l'accesso privato Google, il gateway Cloud NAT o Private Service Connect per le Google Cloud API.

    Quando utilizzi Private Service Connect per le API, GKE reindirizza le richieste per gli indirizzi gke.goog all'indirizzo IP interno aggiunto da Private Service Connect per le API di Google, non all'indirizzo IP pubblico predefinito di Google. Google Cloud Per configurare Private Service Connect per le Google Cloud API, completa i passaggi descritti in Accedere alle API di Google tramite endpoint.

  • Accesso all'endpoint basato su DNS dai client on-premise: l'endpoint basato su DNS è accessibile dai client on-premise tramite l'accesso privato Google. Per configurare l'accesso privato Google, completa i passaggi descritti in Configurazione dell'accesso privato Google per gli host on-premise.

Definisci gli indirizzi IP che possono accedere al control plane

Per definire gli indirizzi IP che possono accedere al control plane:

Console

  1. Nella sezione 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 cluster.
  5. Fai clic su Fine.
  6. Se necessario, aggiungi altre reti autorizzate.
Definisci le regole firewall per l'indirizzo IP del control plane

Per definire le regole firewall dell'indirizzo IP del control plane, completa i seguenti passaggi:

  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 Google Cloud regione possono accedere all'endpoint interno del control plane.

  4. Seleziona Applica le reti autorizzate sull'endpoint interno del control plane. Solo gli indirizzi IP definiti nell'elenco Aggiungi reti autorizzate possono accedere all'endpoint interno del control plane. L'endpoint interno è abilitato per impostazione predefinita.

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

gcloud

Puoi configurare gli indirizzi IP che possono accedere agli endpoint esterni e interni 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 control plane 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 in modo che l'accesso al control plane sia limitato.

  • 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 da Google Cloud indirizzi IP esterni.

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

    Puoi continuare a configurare la rete del cluster definendo l'isolamento di nodi o 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 dei nodi, il tipo di stack IP e l'allocazione degli indirizzi IP. Per saperne di più, consulta Crea un cluster nativo di VPC.

Modifica 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, in Networking del control plane, fai clic su .

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

  5. Verifica la configurazione del control plane.

gcloud

Esegui questo 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 del control plane basato su DNS.
  • enable-ip-access: consente l'accesso al control plane utilizzando indirizzi IPv4. Se vuoi disattivare sia gli endpoint interni che quelli esterni del control plane, utilizza il flag no-enable-ip-access.
  • enable-private-endpoint: specifica che l'accesso all'endpoint esterno è disabilitato. Ometti questo flag se vuoi consentire l'accesso al control plane 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 in modo che l'accesso al control plane sia limitato.

  • 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 da Google Cloud indirizzi IP esterni.

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

    gcloud container clusters update CLUSTER_NAME
    

    Sostituisci CLUSTER_NAME con il nome del cluster.

Verificare la configurazione del control plane

Puoi visualizzare gli endpoint del cluster utilizzando gcloud CLI o la consoleGoogle 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, che include lo stato dell'endpoint basato su IP. Se abilitata, puoi visualizzare le informazioni degli endpoint pubblici e privati.
    • Accedi mediante l'indirizzo IP interno del control plane da qualsiasi regione mostra lo stato Attivato quando è possibile accedere al control plane tramite indirizzi IP Google di altre regioni.
    • Reti autorizzate mostra l'elenco dei CIDR che possono accedere al control plane, se hai abilitato 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 Google Cloud indirizzi IP esterni alle reti autorizzate mostra lo stato Attivato se gli indirizzi IP esterni di Google Cloud possono accedere al control plane.

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 control plane, esegui questo comando:

gcloud container clusters describe CLUSTER_NAME

L'output ha un blocco controlPlaneEndpointsConfig che descrive la definizione di rete. Puoi vedere 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 all'indirizzo IP interno.
  • L'accesso al control plane da Google Cloud indirizzi IP esterni è negato.

Esempi di configurazione dell'accesso al control plane

Questa sezione descrive in dettaglio la configurazione dei seguenti esempi di isolamento di rete. Valuta questi esempi per verificare se sono simili al tuo caso d'uso:

  • Esempio 1: il control plane è accessibile da determinati indirizzi IP che definisci. Questi potrebbero includere indirizzi IP di altre Google Cloud regioni o indirizzi IP riservati a Google.
  • Esempio 2: il control plane non è accessibile da alcun indirizzo IP esterno.
Esempio 1: il control plane è accessibile da determinati indirizzi IP

In questa sezione, crea un cluster con le seguenti configurazioni di isolamento di rete:

  • Il control plane ha l'endpoint basato su DNS abilitato.
  • Il control plane ha l'endpoint esterno abilitato oltre all'endpoint interno abilitato per impostazione predefinita.
  • Il control plane ha reti autorizzate definite, consentendo solo alle seguenti reti autorizzate di raggiungere il control plane:

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 control plane, configura gli endpoint del control plane:

    1. Seleziona la casella di controllo Accesso tramite DNS.
    2. Seleziona la casella di controllo Accesso mediante 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 cluster.

  10. Fai clic su Fine.

  11. Se necessario, aggiungi altre reti 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 Google Cloud regione possono accedere al control plane tramite l'indirizzo IP interno.

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

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 control plane è accessibile dagli indirizzi IP interni

In questa sezione, crea un cluster con le seguenti configurazioni di isolamento di rete:

  • Il control plane ha l'endpoint basato su DNS abilitato.
  • L'endpoint esterno del control plane è disattivato.
  • Le reti autorizzate del control plane sono abilitate.
  • È consentito l'accesso al control plane tramite l'indirizzo IP interno da qualsiasi regioneGoogle Cloud .
  • Gli Google Cloud indirizzi IP esterni 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 control plane, configura gli endpoint del control plane:

    1. Seleziona la casella di controllo Accesso tramite DNS.
    2. Seleziona la casella di controllo Accesso mediante 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 alcun indirizzo IP esterno.

  8. Nella sezione 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 Google Cloud regione possono accedere al control plane tramite l'indirizzo IP interno.

Puoi continuare la configurazione della rete del cluster definendo l'isolamento di nodi o 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.

Configura il networking per il 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 a seconda del 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 node pool esistenti. Puoi anche definire la configurazione di rete predefinita a livello di cluster. GKE applica questa configurazione di rete predefinita solo quando i nuovi node pool non hanno alcuna configurazione di rete definita.
  • 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 workload non la definiscono.

Per definire la configurazione a livello di cluster, utilizza Google Cloud CLI o la consoleGoogle 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, poi fai clic su Configura nella sezione Standard o Autopilot.

  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 nodi privati per eseguire il provisioning dei nodi solo con 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 con solo indirizzi IP esterni (pubblici), il che consente ai client esterni di accedere ai nodi.
  6. Nella sezione Opzioni di networking avanzate, configura attributi VPC nativi aggiuntivi. Per saperne di più, consulta Crea 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, nella scheda Configurazione predefinita del nuovo node pool, fai clic su Modifica nodi privati.

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

    1. Seleziona Abilita nodi privati per eseguire il provisioning dei nodi solo con 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 con solo indirizzi IP esterni (pubblici), il che consente ai client esterni di accedere ai nodi.
  5. Fai clic su Salva modifiche.

gcloud

Utilizza uno dei seguenti flag per definire il networking del cluster:

  • enable-private-nodes: per eseguire il provisioning dei nodi solo con indirizzi IP interni (nodi privati). Quando utilizzi questo flag, tieni presenti le seguenti condizioni:
    • Il flag enable-ip-alias è obbligatorio quando utilizzi 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 che hai definito in master-ipv4-cidr e utilizza la nuova subnet per eseguire il provisioning dell'indirizzo IP interno per il control plane.
  • no-enable-private-nodes: per eseguire il provisioning dei nodi con solo indirizzi IP esterni (nodi pubblici).

Nei cluster Autopilot, crea 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 comando seguente.

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

    L'aggiornamento del cluster ha effetto solo dopo che tutti i pool di nodi sono stati ripianificati. Questa procedura potrebbe richiedere diverse ore.

Nei cluster standard, crea 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 comando seguente:

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

    L'aggiornamento del cluster ha effetto solo sui nuovi node pool. GKE non aggiorna questa configurazione sui pool di nodi esistenti.

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

Configura i pool di nodi o i workload

Per configurare 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 consoleGoogle 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 dei nodi solo con indirizzi IP interni (nodi privati).
    2. Deseleziona Abilita nodi privati per eseguire il provisioning dei nodi con solo indirizzi IP esterni (pubblici), il che consente 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 pool di nodi, consulta Aggiungere e gestire i node pool.

gcloud

  • Nei cluster Autopilot e nei pool di nodi Standard che utilizzano il provisioning automatico dei nodi, aggiungi il seguente nodeSelector alla specifica del pod:

    cloud.google.com/private-node=true
    

    Utilizza private-node=true per pianificare un pod sui nodi che hanno 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 monitora la migrazione.

  • Nei cluster Standard, 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 \
        --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 di rete del pool di nodi:

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

Configurazioni avanzate

Le sezioni seguenti descrivono le configurazioni avanzate che potresti voler utilizzare quando configuri l'isolamento di rete del cluster.

Utilizzo di Cloud Shell per accedere a un cluster con endpoint esterno disabilitato

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 cluster, ti consigliamo di abilitare l'endpoint basato su DNS.

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

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

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

    Se hai abilitato 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 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.

Aggiungi 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 piano di controllo del cluster all'avvio di connessioni TCP ai nodi e ai pod sulle porte 443 (HTTPS) e 10250 (kubelet). Per alcune funzionalità di Kubernetes, potrebbe essere necessario aggiungere regole firewall per consentire l'accesso su porte aggiuntive. Non creare regole firewall o regole dei criteri firewall gerarchici con una priorità più alta rispetto alle regole firewall create automaticamente.

Le funzionalità di Kubernetes che richiedono regole firewall aggiuntive includono:

L'aggiunta di una regola firewall consente il traffico dal control plane 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 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 la destinazione utilizzata. Dopo aver registrato questo valore, puoi creare la regola.

Visualizza il blocco CIDR del control plane

Per aggiungere una regola firewall, devi disporre del blocco CIDR del control plane 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, nella sezione Networking, prendi nota del valore nel campo Intervallo di indirizzi del control plane.

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.

Visualizzare le regole firewall esistenti

Devi specificare la destinazione (in questo caso, i nodi di destinazione) utilizzata dalle regole firewall esistenti del cluster.

Console

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

    Vai a Criteri firewall

  2. Per Tabella filtri per 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.

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 Policy firewall nella console Google Cloud .

    Vai a Criteri 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 control plane 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 che scegli per la regola firewall.
  • CONTROL_PLANE_RANGE: l'intervallo di indirizzi IP del control plane del cluster (masterIpv4CidrBlock) che hai raccolto in precedenza.
  • PROTOCOL:PORT: la porta e il relativo protocollo, tcp o udp.
  • TARGET: il valore target (Targets) che hai raccolto in precedenza.

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

--project HOST_PROJECT_ID
--network NETWORK_ID

Concessione dell'accesso a internet in uscita ai nodi privati

Per fornire l'accesso a internet in uscita per i nodi privati, ad esempio per eseguire il pull delle immagini da un registro 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 nella regione di utilizzare Cloud NAT per tutti gli intervalli IP primari e alias. Inoltre, 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 container Windows Server in un cluster con nodi privati, consulta la documentazione sul pool di nodi Windows.

Passaggi successivi