Questa pagina spiega come configurare l'isolamento della rete per i cluster Google Kubernetes Engine (GKE) al momento della loro creazione.
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:
- Chi può accedere al control plane e come viene esposto?
- 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:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Configura gli attributi del cluster in base alle esigenze del progetto.
Nel menu di navigazione, fai clic su Networking.
In Accesso al piano di controllo, configura gli endpoint del piano di controllo:
- Seleziona la casella di controllo Accedi utilizzando DNS per attivare gli endpoint basati su DNS del control plane.
- 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
- In Accesso al control plane, seleziona Abilita reti autorizzate.
- Fai clic su Aggiungi rete autorizzata.
- Inserisci un nome per la rete.
- In Rete, inserisci un intervallo CIDR a cui vuoi concedere l'accesso al control plane del tuo cluster.
- Fai clic su Fine.
- 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:
- Espandi la sezione Mostra regole firewall per indirizzo IP.
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.
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.
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.
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 flagenable-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 flagenable-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
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster.
Nella scheda Dettagli cluster, fai clic su edit in Networking del piano di controllo.
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.
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 flagenable-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 flagenable-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
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster.
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 edit 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:
- Un intervallo di indirizzi IP esterni da te definito.
- Tutti gli indirizzi IP interni del cluster.
- Indirizzi IP esterni Google Cloud.
Per creare questo cluster, utilizza Google Cloud CLI o la console Google Cloud.
Console
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Configura il cluster in base ai tuoi requisiti.
Nel menu di navigazione, fai clic su Networking.
In Accesso al piano di controllo, configura gli endpoint del piano di controllo:
- Seleziona la casella di controllo Accedi utilizzando il DNS.
- Seleziona la casella di controllo Accedi utilizzando indirizzi IPv4.
Seleziona Abilita reti autorizzate.
Fai clic su Aggiungi rete autorizzata.
Inserisci un nome per la rete.
In Rete, inserisci un intervallo CIDR a cui vuoi concedere l'accesso al control plane del tuo cluster.
Fai clic su Fine.
Se necessario, aggiungi altre emittenti autorizzate.
Espandi la sezione Mostra regole firewall per indirizzo IP.
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.
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
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea.
Configura il cluster in base ai tuoi requisiti.
Nel menu di navigazione, fai clic su Networking.
In Accesso al piano di controllo, configura gli endpoint del piano di controllo:
- Seleziona la casella di controllo Accedi utilizzando il DNS.
- Seleziona la casella di controllo Accedi utilizzando indirizzi IPv4.
Espandi la sezione Mostra regole firewall per indirizzo IP.
Deseleziona Accedi mediante l'indirizzo IP esterno del control plane. Il control plane non è accessibile da nessun indirizzo IP esterno.
In Accesso al control plane, seleziona Abilita reti autorizzate.
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
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Fai clic su add_box Crea e poi sulla sezione Standard o Autopilot e fai clic su Configura.
Configura il cluster in base ai tuoi requisiti.
Nel menu di navigazione, fai clic su Networking.
Nella sezione Networking del cluster, completa quanto segue in base al tuo caso d'uso:
- 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.
- 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.
Nella sezione Opzioni di networking avanzate, configura altri attributi VPC nativi. Per scoprire di più, consulta Creare un cluster nativo di VPC.
Fai clic su Crea.
Aggiornare un cluster esistente
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nell'elenco dei cluster, fai clic sul nome del cluster.
In Nodi privati, fai clic su edit Modifica nodi privati nella scheda Configurazione predefinita del nuovo node pool.
Nella finestra di dialogo Modifica nodi privati, esegui una delle seguenti operazioni:
- 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.
- 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.
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 utilizzaenable-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 inmaster-ipv4-cidr
e utilizza la nuova subnet per eseguire il provisioning dell'indirizzo IP interno per il piano di controllo.
- Il flag
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:
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
Nella pagina Dettagli cluster, fai clic sul nome del cluster da modificare.
Fai clic su add_box Aggiungi pool di nodi.
Configura la casella di controllo Abilita nodi privati in base al tuo caso d'uso:
- Seleziona Abilita nodi privati per eseguire il provisioning di nodi con solo indirizzi IP interni (nodi privati).
- 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.
Configura il nuovo pool di nodi.
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 podnodeSelector
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:
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.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:
- Webhook di ammissione
- Server API aggregati
- Conversione webhook
- Configurazione di audit dinamici
- In genere, qualsiasi API con un campo ServiceReference richiede regole firewall aggiuntive.
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
Vai alla pagina Google Kubernetes Engine nella console Google Cloud.
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
Vai alla pagina Criteri firewall nella console Google Cloud.
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
Vai alla pagina Criteri firewall nella console Google Cloud.
Fai clic su add_box Crea regola firewall.
In Nome, inserisci il nome della regola firewall.
Nell'elenco Rete, seleziona la rete pertinente.
In Direzione del traffico, fai clic su In entrata.
In Azione in caso di corrispondenza, fai clic su Consenti.
Nell'elenco Destinazioni, seleziona Tag di destinazione specificati.
In Tag di destinazione, inserisci il valore target che hai annotato in precedenza.
Nell'elenco Filtro di origine, seleziona Intervalli IPv4.
In Intervalli IPv4 di origine, inserisci il blocco CIDR del piano di controllo del cluster.
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.
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
oudp
.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.