Informazioni sugli indirizzi IP permanenti per i pod

Questo documento spiega come configurare una comunicazione affidabile assegnando uno o più indirizzi IP permanenti a pod specifici nei cluster Google Kubernetes Engine (GKE). Per le applicazioni che richiedono un'alta disponibilità, puoi anche configurare questi indirizzi IP permanenti per supportare il failover rapido o utilizzare il bilanciamento del carico basato sul controllo di integrità.

In alcuni casi, quando esegui una soluzione NAT (Network Address Translation) personalizzata, potresti voler utilizzare un indirizzo IP permanente statico per le connessioni in uscita e in entrata, sia quando la soluzione NAT avvia la connessione sia quando la riceve. Potresti anche voler controllare gli indirizzi IP allocati all'applicazione per gestire il modo in cui interagisce con altri sistemi o gestisce tipi specifici di richieste in base ai requisiti aziendali.

Per impostazione predefinita, il pod utilizza gli indirizzi IP dell'interfaccia per il traffico in uscita. Gli indirizzi IP dell'interfaccia cambiano quando il pod viene riavviato o spostato. Per avere un maggiore controllo sulla comunicazione di routing, puoi configurare manualmente gli indirizzi IP permanenti per i pod in GKE.

Questi indirizzi IP possono essere indirizzi IP esterni per comunicare su internet o indirizzi IP interni per comunicare all'interno della Google Cloud rete. Puoi utilizzare gli indirizzi IP forniti da Google o portare i tuoi indirizzi IP (BYOIP).

Configurando gli indirizzi IP permanenti per i pod in GKE, puoi mappare la logica di business applicativa per consentire a pod specifici di inviare e ricevere traffico da o verso uno qualsiasi degli indirizzi IP permanenti.

Il seguente diagramma mostra come un pod con più interfacce di rete può utilizzare un indirizzo IP permanente da una rete secondaria continuando a comunicare sulla rete predefinita:

Multi network architecture
Architettura multi-rete

Terminologia e concetti

Questa pagina utilizza i seguenti concetti:

Bilanciamento del carico basato sul controllo di integrità

Utilizza il bilanciamento del carico basato sul controllo di integrità quando vuoi distribuire il traffico da un indirizzo IP permanente a più pod attivi che corrispondono a un selettore di etichette specifico. Questa funzionalità utilizza i controlli di integrità a livello di regione che crei per monitorare costantemente i pod e assicurarti che il traffico venga instradato solo agli endpoint integri. Puoi anche configurare i pod di riserva (di backup) per l'indirizzo IP permanente. GKE distribuisce automaticamente il traffico a questi pod di riserva solo se tutti i pod attivi primari non superano i controlli di integrità. Questa configurazione impedisce che i singoli pod vengano sovraccaricati durante un errore e garantisce la disponibilità continua del servizio.

Classi gateway

Classi gateway, che gestiscono le assegnazioni degli indirizzi IP permanenti, sono disponibili nelle seguenti classi:

  • gke-persistent-regional-external-managed per gli indirizzi IP esterni
  • gke-persistent-regional-internal-managed per gli indirizzi IP interni (Google Cloud-solo interni)
  • gke-persistent-fast-regional-external-managed per gli indirizzi IP esterni con failover rapido
  • gke-persistent-fast-regional-internal-managed per gli indirizzi IP interni (Google Cloud-solo interni) con failover rapido

Le seguenti classi gateway si applicano al bilanciamento del carico basato sul controllo di integrità:

  • gke-passthrough-lb-internal-managed per gli indirizzi IP permanenti interni (Google Cloud-solo) condivisi tra più pod.
  • gke-passthrough-lb-external-managed per gli indirizzi IP permanenti esterni condivisi tra più pod.

    Le classi gateway funzionano all'interno di regioni specifiche. Le classi gateway offrono una gestione di base degli indirizzi IP e sono incentrate sul routing di rete di livello 3 (L3).

La seguente tabella confronta le funzionalità di ogni classe gateway:

Funzionalità Classi gateway gke-persistent-* Classi gateway gke-passthrough-lb-*
Obiettivo principale Indirizzo IP permanente per un singolo workload. Bilanciamento del carico tra più workload.
Mapping dei pod 1:1 (instrada al pod corrispondente creato più di recente). 1:N (distribuisce il traffico a tutti i pod corrispondenti integri).
Controlli di integrità Non supportati per le decisioni di routing. Obbligatori (utilizzano i controlli di integrità a livello di regione).
Pod di backup Non supportati. Supportati (utilizzano i pod di riserva per il failover).
Velocità di failover Standard o rapida (utilizza le classi *-fast-*). Configurabile con i parametri del controllo di integrità

Oggetti gateway

Gli oggetti gateway fungono da punto centrale per la gestione e la configurazione degli indirizzi IP permanenti. Gli oggetti gateway in GKE gestiscono un pool di indirizzi IP permanenti. Elencano questi indirizzi e definiscono le regole per l'assegnazione di questi indirizzi IP a GKEIPRoute.

Listener

Un listener fa parte della configurazione del gateway GKE e controlla quali pod negli spazi dei nomi del gateway possono utilizzare gli indirizzi IP permanenti gestiti dal gateway. Il listener ti consente di personalizzare l'accesso per flessibilità e sicurezza. Ogni listener richiede un nome univoco e ti consente di filtrare l'accesso per spazio dei nomi (tutti, basati su etichette o solo lo spazio dei nomi del gateway).

Oggetto GKEIPRoute

L'oggetto GKEIPRoute è una risorsa personalizzata che configuri per assegnare un indirizzo IP permanente a un pod specifico nel cluster GKE. Puoi utilizzare la sezione dello stato dell'oggetto GKEIPRoute per monitorare la configurazione dell'indirizzo IP permanente, che fornisce informazioni chiave tramite i seguenti campi:

  • Pod

    Il campo Pod mostra il nome esatto del pod collegato agli indirizzi IP permanenti. Un singolo pod può utilizzare più indirizzi IP permanenti.

  • Condizioni

    Il campo Condizioni indica se la configurazione dell'indirizzo IP esterno funziona correttamente e può anche aiutarti a diagnosticare i problemi se la configurazione non è valida. Esistono quattro condizioni:

    • Accepted: indica se la specifica della risorsa GKEIPRoute è valida. Se la configurazione presenta errori, la condizione Accepted è False con un motivo.
    • GCPReady: indica che Google Cloud ha preparato tutte le risorse necessarie. Gli errori durante il processo di provisioning della Google Cloud risorsa vengono visualizzati nello stato della GCPReady condizione.
    • DPV2Ready: indica lo stato della programmazione del datapath, ad esempio se il datapath è pronto e programmato per consentire le connessioni di rete sugli indirizzi IP permanenti configurati.
    • Ready: indica che la configurazione dell'indirizzo IP permanente è valida e funzionale. I pod sono raggiungibili sugli indirizzi IP permanenti a condizione che tu abbia configurato l'applicazione per utilizzarli. Questa opzione è impostata su True quando anche le altre tre condizioni precedenti sono True.
  • nodeSelector

    Quando utilizzi il failover rapido, devi utilizzare il campo nodeSelector per specificare i nodi preconfigurati per il failover rapido. In questo modo, quando si verifica un failover, puoi mettere rapidamente online il nuovo pod su un nodo designato con l'indirizzo IP permanente. Assicurati di pianificare i pod con indirizzi IP permanenti su questi nodi. In genere, questa operazione viene eseguita utilizzando nodeSelector del pod per trovare le etichette sui nodi. Utilizza il campo nodeSelector quando configuri il failover rapido e assicurati che le etichette specificate non selezionino più di 64 nodi.

I seguenti campi sono applicabili solo al bilanciamento del carico basato sul controllo di integrità:

  • loadBalancing: specifica il nome del controllo di integrità a livello di regione che monitora l'integrità dei pod.
  • backupPodSelector: definisce l'insieme di pod che ricevono il traffico se tutti i pod primari non sono integri.

Modalità di reazione

Le modalità di reazione determinano il comportamento del sistema quando il pod collegato a un indirizzo IP permanente subisce modifiche, ad esempio quando viene spostato tra i nodi o quando diventa disponibile un pod corrispondente appena creato. Puoi utilizzare le modalità di reazione per mantenere utilizzabili gli indirizzi IP permanenti anche quando i pod cambiano.

Le modalità di reazione sono una delle seguenti:

  • ReadyCondition

    Nella modalità ReadyCondition, il sistema di indirizzi IP permanenti dà la priorità all'integrità dei pod. Il sistema di indirizzi IP permanenti assegna indirizzi IP solo ai pod che corrispondono alle etichette specificate e che hanno superato i probe di integrità di Kubernetes, segnalando il loro stato Ready come True. Questa modalità è ideale per le applicazioni in cui è fondamentale che il pod che riceve l'indirizzo IP permanente sia completamente preparato a gestire il traffico in entrata e in uscita.

  • Exists

    La modalità Exists dà la priorità alla presenza di un pod. L'indirizzo IP permanente viene collegato a un pod se questo corrisponde alle etichette nella configurazione ed è stato pianificato su un nodo specifico nel cluster. Ciò significa che il pod esiste e ha un luogo designato per l'esecuzione. Questa modalità è adatta agli scenari in cui l'assegnazione rapida dell'indirizzo IP permanente ha la priorità rispetto alla disponibilità rigorosa o in ambienti come lo sviluppo e il test in cui la connettività immediata potrebbe essere più importante dell'integrità completa dell'applicazione.

StatefulSets

StatefulSets sono un tipo di workload Kubernetes progettato per le applicazioni che richiedono identificatori stabili e spazio di archiviazione permanente. I pod all'interno di uno StatefulSet hanno nomi prevedibili (ad esempio: my-app-0, my-app-1).

Deployment

I deployment sono un tipo di workload Kubernetes per la gestione di applicazioni stateless in cui i pod sono generalmente intercambiabili. I nomi dei pod all'interno dei deployment non sono completamente prevedibili.

Casi d'uso

Gli indirizzi IP permanenti per i pod GKE risolvono diversi casi d'uso per i fornitori di servizi di rete e sicurezza che eseguono applicazioni correlate alla rete su GKE.

Gli indirizzi IP permanenti per i pod GKE risolvono i seguenti casi d'uso:

  • Controllo del NAT: assegnando indirizzi IP permanenti ai pod che eseguono funzioni di rete, ottieni un controllo granulare sugli indirizzi IP di origine utilizzati per il traffico in uscita. In questo modo puoi integrare la tua logica NAT proprietaria.
  • Pool di indirizzi IP dedicati: gli indirizzi IP dedicati ti consentono di abbinare indirizzi specifici a singoli pod 5G Core, garantendo la compatibilità con il software specializzato del fornitore.
  • Flussi di traffico affidabili: poiché il traffico di ritorno deve essere instradato di nuovo tramite la stessa funzione di rete, gli indirizzi IP permanenti garantiscono che i sistemi esterni riconoscano e rispondano al pod corretto senza interruzioni nella comunicazione.
  • Alta affidabilità per applicazioni sensibili al tempo: per le applicazioni con requisiti di uptime rigorosi, come nel settore delle telecomunicazioni, puoi utilizzare indirizzi IP permanenti con failover rapido per reindirizzare rapidamente il traffico a un pod integro in caso di errore, riducendo al minimo i tempi di inattività a pochi secondi.
  • Distribuzione del carico: quando utilizzi il bilanciamento del carico basato sul controllo di integrità, GKE distribuisce il traffico tra più pod attivi per evitare di sovraccaricare una singola istanza. Se non sono disponibili pod integri, puoi configurare i pod di backup in spazi dei nomi o nodi diversi.

Vantaggi

Gli indirizzi IP permanenti per i pod GKE offrono i seguenti vantaggi:

  • Identità esterna: se assegni a un pod un indirizzo IP permanente esterno, i sistemi esterni possono raggiungere costantemente quel pod, anche se viene riavviato o spostato all'interno del cluster. Questo è utile per i servizi che richiedono un endpoint rilevabile esternamente.
  • Comunicazione affidabile: le applicazioni che dipendono da altre risorse con indirizzi IP specifici possono stabilire connessioni in modo affidabile utilizzando indirizzi IP permanenti. Gli indirizzi IP permanenti sono importanti per i sistemi legacy o le applicazioni con dipendenze di indirizzi IP hardcoded.
  • Migrazioni legacy: le migrazioni legacy possono aiutarti a eseguire la migrazione delle applicazioni che si basano su indirizzi IP specifici durante il processo di transizione.
  • BYOIP: BYOIP ti consente di mantenere il controllo su intervalli di indirizzi IP specifici di tua proprietà utilizzandoli all'interno dei cluster GKE.
  • Uptime dell'applicazione migliorato: con la funzionalità di failover rapido, puoi migliorare significativamente l'uptime delle applicazioni critiche riducendo al minimo i tempi di inattività a pochi secondi in caso di errore del pod.
  • Alta affidabilità con failover automatico: ottieni la disponibilità del servizio reindirizzando automaticamente il traffico ai pod di riserva integri quando i pod primari non superano i controlli di integrità.

Passaggi successivi