Utilizza i tag di rete per applicare regole firewall ai nodi


Questa pagina mostra come applicare dinamicamente i tag di rete ai nodi nei cluster Google Kubernetes Engine (GKE) senza interrompere i carichi di lavoro in esecuzione.

Informazioni sui tag di rete

I tag di rete sono metadati su macchine virtuali (VM) Compute Engine che consentono di applicare route e regole firewall a istanze VM specifiche. In GKE, puoi utilizzare i tag di rete per rendere le route o le regole firewall VPC applicabili ai nodi nel tuo cluster.

Puoi utilizzare l'API GKE per applicare e aggiornare i tag di rete sui tuoi cluster GKE senza interrompere i carichi di lavoro in esecuzione. I tag di rete specificati vengono applicati anche a tutti i nuovi nodi di cui GKE esegue automaticamente il provisioning.

Utilizza tag anziché tag di rete

I tag di rete sono stringhe semplici non soggette ai controlli di accesso di Identity and Access Management. Chiunque abbia accesso ai tuoi nodi nell'API GKE può aggiungere tag di rete a quei nodi.

Se utilizzi GKE versione 1.28 o successiva, ti consigliamo di utilizzare i tag con una designazione firewall per applicare criteri firewall di rete a livello di regione o globale, che migliorano le capacità delle regole firewall VPC.

I tag sono coppie chiave-valore che colleghi alle VM di Compute Engine. Puoi utilizzare IAM per controllare chi può interagire con tag specifici.

Opzioni della riga di comando per l'applicazione di tag di rete

La tabella seguente descrive i flag che puoi specificare con Google Cloud CLI per applicare tag di rete ai tuoi cluster, nonché i relativi casi d'uso.

Flag Modalità di funzionamento Livello Descrizione
--autoprovisioning-network-tags
  • Autopilot
  • Standard
Cluster

Applica i tag di rete specificati a tutti i nodi Autopilot e a tutti i pool di nodi Standard di cui è stato eseguito il provisioning automatico.

--tags
  • Standard
Pool di nodi

Applica manualmente i tag di rete a pool di nodi Standard specifici.

Limitazioni

L'uso di --autoprovisioning-network-tags ti impedisce di usare --tags per aggiornare i tag di rete per i pool di nodi Standard di cui è stato eseguito il provisioning automatico.

Ti consigliamo di utilizzare --autoprovisioning-network-tags per i pool di nodi di cui è stato eseguito il provisioning automatico e di utilizzare --tags solo per i pool di nodi creati manualmente.

Prima di iniziare

Prima di iniziare, assicurati di aver eseguito le seguenti attività:

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

Aggiungi tag di rete ai nuovi cluster

Puoi aggiungere tag di rete quando crei un nuovo cluster.

Aggiungi tag di rete ai nuovi cluster Autopilot

Esegui questo comando:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=LOCATION \
    --autoprovisioning-network-tags=TAG1,TAG2,...

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo nuovo cluster Autopilot.
  • LOCATION: la località di Compute Engine per il nuovo cluster.
  • TAG1,TAG2, ...: un elenco separato da virgole dei tag di rete che vuoi applicare.

Aggiungi tag di rete ai nuovi cluster Standard

Per Standard, puoi anche specificare tag di rete specifici per il provisioning automatico dei nodi.

Applica i tag di rete al pool di nodi predefinito

Esegui questo comando per creare un nuovo cluster Standard e applicare i tag di rete al pool di nodi predefinito:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --tags=NETWORK_TAG1,NETWORK_TAG2,...

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo nuovo cluster Standard.
  • COMPUTE_REGION: la località di Compute Engine per il nuovo cluster.
  • NETWORK_TAG1,NETWORK_TAG2, ...: un elenco separato da virgole dei tag di rete che vuoi applicare.

Applica i tag di rete ai pool di nodi di cui è stato eseguito il provisioning automatico

Puoi applicare automaticamente i tag di rete a tutti i pool di nodi creati dal provisioning automatico dei nodi.

Esegui questo comando:

gcloud container clusters create CLUSTER_NAME \
    --location=LOCATION \
    --enable-autoprovisioning \
    --autoprovisioning-network-tags=TAG1,TAG2,...

Sostituisci TAG1,TAG2,... con un elenco separato da virgole di tag di rete da applicare a tutti i pool di nodi di cui è stato eseguito il provisioning automatico.

Aggiorna i tag di rete sui cluster esistenti

Puoi aggiornare i tag di rete sui cluster esistenti.

Aggiorna i tag di rete sui cluster Autopilot esistenti

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --autoprovisioning-network-tags=TAG1,TAG2,...

Aggiorna i tag di rete sui cluster standard esistenti

Esegui questo comando per aggiornare i tag di rete su un pool di nodi Standard specifico. Non puoi utilizzare questo comando per aggiornare i pool di nodi di cui è stato eseguito il provisioning automatico se hai utilizzato --autoprovisioning-network-tags.

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --tags=NETWORK_TAG1,NETWORK_TAG2,...

Se --autoprovisioning-network-tags è impostato per il cluster, questo comando restituisce un errore.

Aggiorna i tag di rete per i pool di nodi di cui è stato eseguito il provisioning automatico

Puoi aggiornare i tag di rete applicati dal provisioning automatico dei nodi ai pool di nodi di cui è stato eseguito il provisioning automatico, nuovi ed esistenti.

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --autoprovisioning-network-tags=TAG1,TAG2,...

Aggiungere tag di rete ai nuovi pool di nodi Standard

Per creare un nuovo pool di nodi in un cluster Standard con tag di rete specifici, esegui questo comando:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --tags=NETWORK_TAG1,NETWORK_TAG2,...

Sostituisci NODE_POOL_NAME con il nome del nuovo pool di nodi.

Visualizza i tag di rete esistenti

Questa sezione mostra come visualizzare i tag di rete esistenti.

Visualizza i tag di rete esistenti in Autopilot

Esegui questo comando:

gcloud container clusters describe CLUSTER_NAME \
    --flatten=nodePoolAutoConfig.networkTags

Se il cluster contiene tag di rete, l'output è simile al seguente:

---
tags:
- example-tag

Visualizza i tag di rete esistenti in Standard

Puoi visualizzare i tag di rete nei pool di nodi di cui è stato eseguito il provisioning automatico o nei pool di nodi che hai creato.

Visualizza i tag di rete nei pool di nodi di cui è stato eseguito il provisioning automatico

Esegui questo comando:

gcloud container clusters describe CLUSTER_NAME \
    --flatten=nodePoolAutoConfig.networkTags

Se il cluster contiene tag di rete, l'output è simile al seguente:

---
tags:
- example-tag

Visualizza i tag di rete nei pool di nodi senza provisioning automatico dei nodi

Per visualizzare i tag di rete per uno specifico pool di nodi Standard in cui sono stati applicati i tag utilizzando il flag --tags, esegui questo comando:

gcloud container node-pools describe NODE_POOL_NAME\
    --cluster=CLUSTER_NAME \
    --format='value(config.tags)'

Sostituisci NODE_POOL_NAME con il nome del pool di nodi.

Se il pool di nodi contiene tag, l'output è simile al seguente:

example-tag

Rimuovi tag di rete

Puoi rimuovere i tag di rete da GKE.

Rimuovi i tag di rete dai cluster Autopilot

Esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --autoprovisioning-network-tags=""

Rimuovi i tag di rete dai cluster standard e dai pool di nodi

Puoi rimuovere i tag da tutti i pool di nodi di cui è stato eseguito il provisioning automatico o da pool di nodi specifici.

Rimuovi i tag di rete dai pool di nodi di cui è stato eseguito il provisioning automatico

Per rimuovere i tag di rete da tutti i pool di nodi di cui è stato eseguito il provisioning automatico, esegui questo comando:

gcloud container clusters update CLUSTER_NAME \
    --autoprovisioning-network-tags=""

Questo comando ripristina anche la possibilità di utilizzare l'opzione --tags per specificare manualmente i tag di rete per i pool di nodi di cui è stato eseguito il provisioning automatico.

Rimuovi i tag di rete da pool di nodi specifici

Per rimuovere i tag di rete da pool di nodi specifici, esegui questo comando:

gcloud container node-pools update NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --tags=""

Passaggi successivi