Questa pagina descrive come disabilitare le regole firewall VPC in entrata che GKE crea per i servizi LoadBalancer.
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, invece di 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 le policy firewall gerarchiche, le policy firewall di rete globali o le policy firewall di rete regionali anziché le regole firewall VPC. Le regole di queste policy 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 sul servizio 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 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
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima versione
eseguendo
gcloud components update
.
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 configurare manualmente le regole firewall.
Decidi quale tipo di policy firewall utilizzare: una policy firewall gerarchica, una policy firewall di rete globale o una policy firewall di rete regionale. Per i passaggi per creare una policy firewall, consulta:
- Utilizzare criteri e regole firewall gerarchici
- Utilizzare regole e policy firewall di rete globali
- Utilizzare 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 implicita per il traffico in entrata vieta il traffico in entrata. Quando hai disabilitato la creazione automatica delle regole firewall VPC, il traffico in entrata non raggiungerà i tuoi 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 di destinazione: assicurati che la regola firewall includa almeno tutti i nodi del cluster che contiene i servizi LoadBalancer. I target supportati dipendono dal tipo di criterio firewall in cui si trova una regola o se utilizzi una regola firewall VPC. Per informazioni sul parametro target di una regola in un criterio firewall, vedi 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 questo comando:
kubectl get svc LOADBALANCER_NAME \ -n NAMESPACE_NAME \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}
- Puoi scegliere di omettere il parametro di destinazione. Se il parametro di destinazione viene omesso, il parametro target definisce le destinazioni in modo implicito. Per saperne di più, consulta Destinazioni e indirizzi IP per le regole di ingresso.
Parametro di origine: specifica le origini (ad esempio, gli indirizzi IP) utilizzate dai client che devono connettersi ai servizi di bilanciamento del carico a cui deve essere applicata la regola firewall.
Per i passaggi per creare regole firewall, vedi:
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ù, vedi Risolvere i problemi di connettività.
Disabilita la 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.
Crea un nuovo cluster GKE con la creazione di regole firewall VPC disattivata
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=VERSION
Standard:
gcloud container clusters create CLUSTER_NAME \ --disable-l4-lb-firewall-reconciliation \ --enable-l4-ilb-subsetting \ --cluster-version=VERSION
Sostituisci 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 in entrata create automaticamente hanno nomi del seguente modulo:
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]
.Il comando seguente 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 per il controllo di integrità del modulo
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw
se il parametroexternalTrafficPolicy
è impostato suLocal
. Utilizza la porta TCP definita dal parametrospec.healthCheckNodePort
. Se non specificata, il control plane Kubernetes assegna una porta di controllo di integrità dall'intervallo di porte del nodo.k8s2-rkdld6go-default-ilb-svc-dluvsefq-fw default INGRESS 1000 tcp:30868 False
Se il parametro
externalTrafficPolicy
è impostato suCluster
, viene restituita la seguente regola firewall di controllo di integrità.k8s2-rkdld6go-l4-shared-hc-fw default INGRESS 1000 tcp:10256 False
Per ulteriori informazioni sulle regole firewall generate per i servizi GKE, consulta Regole firewall create automaticamente.
Aggiorna un cluster GKE esistente per disabilitare la creazione di regole firewall VPC
Prima di disattivare la creazione di regole firewall VPC, tieni presente quanto segue sull'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 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
flag
--enable-l4-lb-firewall-reconciliation
con il comandogcloud_name container clusters update
.
Per disabilitare la creazione automatica delle regole firewall su 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_version
Sostituisci 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 in entrata create automaticamente hanno nomi nel seguente formato:
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]
.Il comando seguente 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 per il controllo di integrità del modulo
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw
se il parametroexternalTrafficPolicy
è impostato suLocal
. Utilizza la porta TCP definita dal parametrospec.healthCheckNodePort
. Se non specificata, il control plane Kubernetes assegna una porta di controllo di integrità dall'intervallo di porte del nodo.k8s2-rkdld6go-default-ilb-svc-dluvsefq-fw default INGRESS 1000 tcp:30868 False
Se il parametro
externalTrafficPolicy
è impostato suCluster
, viene restituita la seguente regola firewall di controllo di integrità.k8s2-rkdld6go-l4-shared-hc-fw default INGRESS 1000 tcp:10256 False
Per ulteriori informazioni sulle regole firewall generate per i servizi GKE, consulta Regole firewall create automaticamente.
Risolvere i problemi di connettività
Gli esempi seguenti illustrano come utilizzare i test di connettività di Network Intelligence Center per testare la connettività a un servizio LoadBalancer esterno:cluster:
Network Intelligence Center:
- Nella console Trusted Cloud , vai a 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à.
gcloud CLI:
Il seguente comando di esempio crea ed esegue un test con l'indirizzo IP pubblico della tua 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_NAME
Sostituisci 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 tuo 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 per una panoramica delle regole firewall VPC in entrata consentite che GKE crea automaticamente per impostazione predefinita.
- Leggi Parametri del servizio LoadBalancer per una descrizione dei parametri per i servizi LoadBalancer.
- Scopri di più sulle altre regole firewall precompilate in Trusted Cloud.
- Scopri di più sulla creazione di regole firewall nei progetti che utilizzano il VPC condiviso.