La disabilitazione di queste regole firewall create automaticamente per i servizi LoadBalancer può essere utile nelle seguenti situazioni:
- Se hai più servizi LoadBalancer in due o più cluster GKE, la gestione manuale delle regole firewall può essere più efficiente. Ad esempio, anziché fare in modo che GKE crei una regola firewall univoca per ogni servizio LoadBalancer, le regole firewall create manualmente possono consentire il traffico in entrata per più servizi LoadBalancer.
- Puoi utilizzare criteri firewall gerarchici, criteri firewall di rete globali, o criteri firewall di rete regionali anziché regole firewall VPC. Le regole in questi criteri firewall supportano azioni aggiuntive, target più flessibili, e funzionalità come geolocalizzazione, Threat Intelligence, gruppi di indirizzi, e FQDN.
Per disabilitare le regole firewall create automaticamente per i servizi LoadBalancer, devi specificare il flag --disable-l4-lb-firewall-reconciliation quando crei o aggiorni un cluster. Il flag --disable-l4-lb-firewall-reconciliation non influisce su altre regole firewall VPC create automaticamente, ad esempio quelle che facilitano la comunicazione tra i nodi o quelle che consentono i controlli di integrità per i tuoi servizi.
Requisiti
- Per utilizzare le regole firewall gestite dall'utente per i servizi LoadBalancer, i cluster GKE devono utilizzare la versione 1.31.3-gke.105600 o successive.
Limitazioni
GKE supporta la disabilitazione della creazione automatica delle regole firewall per questi tipi di servizi LoadBalancer:
- Servizi LoadBalancer interni che utilizzano il sottoinsieme GKE
- Servizi LoadBalancer esterni basati su servizi di backend
Non puoi disabilitare la creazione automatica delle regole firewall per questi tipi di servizi LoadBalancer:
- Servizi LoadBalancer interni che non utilizzano il sottoinsieme GKE
- Servizi LoadBalancer esterni basati su pool di destinazione
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à,
installala e poi
inizializza gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Strategie per la gestione manuale delle regole firewall
Prima di disabilitare la creazione automatica delle regole firewall VPC per i servizi LoadBalancer nel cluster GKE, collabora con un amministratore della sicurezza per sviluppare una strategia per la configurazione manuale delle regole firewall.
Decidi quale tipo di criterio firewall utilizzare: un criterio firewall gerarchico, un criterio firewall di rete globale o un criterio firewall di rete regionale. Per i passaggi per creare una policy del firewall, consulta:
- Utilizzo di criteri e regole firewall gerarchici
- Utilizzo di criteri e regole firewall di rete globali
- Utilizzo di criteri e regole firewall di rete regionali
Puoi anche utilizzare le regole firewall VPC, che non utilizzano alcun criterio.
Le regole firewall create manualmente devono essere regole di autorizzazione in entrata perché la regola firewall di negazione implicita in entrata impedisce il traffico in entrata. Quando hai disabilitato la creazione automatica delle regole firewall VPC, il traffico in entrata non raggiungerà i nodi a meno che tu non abbia creato regole firewall di autorizzazione in entrata che corrispondano al traffico per i tuoi servizi LoadBalancer.
A seconda dei parametri della regola firewall, una singola regola firewall di autorizzazione in entrata può essere applicata a uno o più servizi LoadBalancer. Per ogni regola firewall di autorizzazione in entrata che crei, definisci i seguenti parametri:
Parametro target: assicurati che la regola firewall includa almeno tutti i nodi di il cluster che contiene i servizi LoadBalancer. I target supportati dipendono dal tipo di policy del firewall in cui si trova una regola o se utilizzi una regola firewall VPC. Per informazioni sul parametro target di una regola in una policy del firewall, consulta Target.
Protocolli e porte: includi tutti i protocolli e le porte di destinazione utilizzati dai servizi LoadBalancer a cui deve essere applicata la regola firewall.
Parametro di destinazione: puoi utilizzare una delle seguenti strategie per il parametro di destinazione:
- Includi gli indirizzi IP di tutti i servizi LoadBalancer a cui deve essere applicata la regola firewall nel parametro di destinazione. Per trovare l'indirizzo IP di un servizio LoadBalancer, utilizza il seguente comando:
kubectl get svc LOADBALANCER_NAME \ -n NAMESPACE_NAME \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}- Puoi scegliere di omettere il parametro di destinazione. Quando il parametro di destinazione viene omesso, il parametro target definisce implicitamente le destinazioni. Per saperne di più, consulta Target e indirizzi IP per le regole in entrata.
Parametro di origine: specifica le origini (ad esempio, gli indirizzi IP) utilizzate dai client che devono connettersi ai servizi LoadBalancer a cui deve essere applicata la regola firewall.
Per i passaggi per creare regole firewall, consulta:
Per assicurarti che le regole firewall create manualmente funzionino correttamente, esegui un test di connettività del Network Intelligence Center (NIC). Quando esegui il test di connettività:
- Imposta la destinazione sull'indirizzo IP del servizio LoadBalancer.
- Imposta l'origine sull'indirizzo IP del client.
Per saperne di più, consulta Risoluzione dei problemi di connettività issues.
Disabilitazione della creazione di regole firewall VPC per i servizi LoadBalancer
Questa sezione descrive i passaggi per disabilitare la creazione automatica delle regole firewall VPC per i servizi LoadBalancer.
Creazione di un nuovo cluster GKE con la creazione di regole firewall VPC disabilitata
Per disabilitare le regole firewall VPC create automaticamente per i servizi LoadBalancer in un cluster appena creato, crea il cluster con il flag
--disable-l4-lb-firewall-reconciliation:Autopilot:
gcloud container clusters create-auto CLUSTER_NAME \ --disable-l4-lb-firewall-reconciliation \ --cluster-version=VERSIONStandard:
gcloud container clusters create CLUSTER_NAME \ --disable-l4-lb-firewall-reconciliation \ --enable-l4-ilb-subsetting \ --cluster-version=VERSIONSostituisci quanto segue:
CLUSTER_NAME: il nome del nuovo cluster.VERSION: la versione di GKE.
Crea un servizio LoadBalancer esterno o interno:
Verifica che GKE non crei una regola firewall di autorizzazione in entrata per il servizio LoadBalancer. (Le regole firewall di autorizzazione in entrata create automaticamente hanno nomi nel seguente formato:
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]).Il seguente comando restituisce un elenco di regole firewall che contengono
k8s2:gcloud compute firewall-rules list --format="value(name)" | grep "k8s2"La risposta deve restituire solo la regola firewall del controllo di integrità nel formato
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fwse il parametroexternalTrafficPolicyè impostato suLocal. Utilizza la porta TCP definita dal parametrospec.healthCheckNodePort. Se non specificato, il control plane Kubernetes assegna una porta del controllo di integrità dall'intervallo di porte dei nodi.k8s2-rkdld6go-default-ilb-svc-dluvsefq-fw default INGRESS 1000 tcp:30868 FalseSe il parametro
externalTrafficPolicyè impostato suCluster, viene restituita la seguente regola firewall del controllo di integrità.k8s2-rkdld6go-l4-shared-hc-fw default INGRESS 1000 tcp:10256 FalsePer saperne di più sulle regole firewall generate per i servizi GKE, consulta Regole firewall create automaticamente.
Aggiornamento di un cluster GKE esistente per disabilitare la creazione di regole firewall VPC
Prima di disabilitare la creazione di regole firewall VPC, tieni presente i seguenti punti relativi all'aggiornamento di un cluster esistente:
- Quando aggiorni un cluster esistente per disabilitare la creazione di regole firewall VPC, GKE non elimina le regole firewall esistenti create automaticamente da GKE per i servizi LoadBalancer.
- GKE interrompe l'aggiornamento delle regole esistenti e non ne crea di nuove per i nuovi servizi LoadBalancer.
- Per riattivare la creazione di regole firewall VPC, puoi utilizzare il
--enable-l4-lb-firewall-reconciliationflag con ilgcloud_name container clusters updatecomando.
Per disabilitare la creazione automatica di regole firewall in un cluster esistente:
Aggiorna il cluster per disabilitare la creazione e la gestione automatiche delle regole firewall per i servizi LoadBalancer:
gcloud container clusters update CLUSTER_NAME \ --disable-l4-lb-firewall-reconciliation \ --cluster-version=supported_versionSostituisci quanto segue:
CLUSTER_NAME: il nome del nuovo cluster.VERSION: la versione di GKE.
Crea un servizio LoadBalancer esterno o interno:
Verifica che GKE non crei una regola firewall di autorizzazione in entrata per il servizio LoadBalancer. (Le regole firewall di autorizzazione in entrata create automaticamente hanno nomi nel seguente formato:
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]).Il seguente comando restituisce un elenco di regole firewall che contengono
k8s2:gcloud compute firewall-rules list --format="value(name)" | grep "k8s2"La risposta deve restituire solo la regola firewall del controllo di integrità nel formato
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fwse il parametroexternalTrafficPolicyè impostato suLocal. Utilizza la porta TCP definita dal parametrospec.healthCheckNodePort. Se non specificato, il control plane Kubernetes assegna una porta del controllo di integrità dall'intervallo di porte dei nodi.k8s2-rkdld6go-default-ilb-svc-dluvsefq-fw default INGRESS 1000 tcp:30868 FalseSe il parametro
externalTrafficPolicyè impostato suCluster, viene restituita la seguente regola firewall del controllo di integrità.k8s2-rkdld6go-l4-shared-hc-fw default INGRESS 1000 tcp:10256 FalsePer saperne di più sulle regole firewall generate per i servizi GKE, consulta Regole firewall create automaticamente.
Risoluzione dei problemi di connettività
I seguenti esempi illustrano come utilizzare i test di connettività del Network Intelligence Center per testare la connettività a un servizio LoadBalancer esterno:cluster:
Network Intelligence Center:
- Nella Google Cloud console, vai al Network Intelligence Center e avvia un nuovo test di connettività.
- Dal menu a discesa, scegli Qualsiasi indirizzo IP pubblico esterno come origine e seleziona il bilanciatore del carico dalla destinazione.
- Esegui di nuovo il test di connettività.
Da gcloud CLI:
Il seguente comando di esempio crea ed esegue un test con l'indirizzo IP pubblico della workstation locale come origine e l'indirizzo IP esterno del bilanciatore del carico esterno come destinazione:
gcloud network-management connectivity-tests create TEST_NAME \ --source-ip-address=SOURCE_IP_ADDRESS \ --source-network-type=NON_GCP_NETWORK \ --destination-ip-address=$(kubectl get svc LOADBALANCER_NAME -o jsonpath='{.status.loadBalancer.ingress[0].ip}') \ --destination-port=$(kubectl get svc LOADBALANCER_NAME -o jsonpath='{.spec.ports[0].targetPort}') \ --destination-network=projects/PROJECT_ID/global/networks/NETWORK_NAMESostituisci quanto segue:
TEST_NAME: un nome per il test di connettività.SOURCE_IP_ADDRESS: l'indirizzo IP del sistema che deve connettersi al servizio LoadBalancer esterno. Ad esempio:LOADBALANCER_NAME: il nome del servizio LoadBalancer esterno.PROJECT_ID: l'ID progetto del progetto che contiene la rete VPC del cluster. Se il cluster utilizza una rete VPC condiviso, utilizza l'ID progetto del progetto host.NETWORK_NAME: il nome della rete VPC del cluster.
Controlla i risultati del test:
gcloud network-management connectivity-tests describe TEST_NAME
Passaggi successivi
- Scopri di più sui criteri firewall.
- Leggi Regole firewall create automaticamente regole per una panoramica delle regole firewall VPC di autorizzazione in entrata che GKE crea automaticamente per impostazione predefinita.
- Leggi Parametri del servizio LoadBalancer per una descrizione dei parametri dei servizi LoadBalancer.
- Scopri di più sulle altre regole firewall precompilate in Google Cloud.
- Scopri di più sulla creazione di regole firewall nei progetti che utilizzano il VPC condiviso.