In Kubernetes, ingress ed egress si riferiscono al modo in cui il traffico di rete entra ed esce da un ambiente applicativo containerizzato cloud-native.
Questi flussi di traffico sono fondamentali per l'esecuzione di applicazioni moderne all'interno dell'infrastruttura cloud. La loro gestione efficace supporta un'ampia gamma di casi d'uso, come l'indirizzamento del traffico dei clienti verso le app web o l'accesso sicuro alle API di terze parti.
Nel mondo odierno basato sul cloud computing, Kubernetes alimenta workload sempre più critici. Di conseguenza, la capacità granulare di controllare il traffico è diventata essenziale per mantenere le prestazioni, applicare le misure di sicurezza e soddisfare i requisiti di conformità.
Resta al passo con le tendenze più importanti e interessanti del settore relative ad AI, automazione, dati e oltre con la newsletter Think. Leggi l' Informativa sulla privacy IBM.
Kubernetes, nota anche come k8s o kube, è una piattaforma di orchestrazione di container che automatizza l'implementazione, il ridimensionamento e la manutenzione delle applicazioni per un pool di risorse. Invece di gestire direttamente i server, i team DevOps e IT utilizzano Kubernetes per eseguire applicazioni in container, ovvero unità software leggere e autonome che includono tutto il necessario per eseguire un'applicazione.
Secondo un report di CNCF, Kubernetes è il secondo progetto open source più grande al mondo (dopo Linux) e lo strumento di orchestrazione dei container primario per il 71% delle aziende Fortune 100.
Docker è lo strumento più utilizzato per creare immagini di container. In Kubernetes, i contenitori sono raggruppati in unità chiamate pod, che sono le unità implementabili più piccole e possono contenere uno o più contenitori. Kubernetes pianifica questi pod su un cluster di macchine note come nodi.
I pod e le relative risorse sono organizzati in namespace, che forniscono una separazione logica per la gestione di team, progetti o ambienti diversi all'interno dello stesso cluster. Kubernetes gestisce le funzionalità chiave dei cluster, come il bilanciamento del carico, il failover, la scalabilità e l'ingegneria della piattaforma, eliminando gran parte della complessità dell'infrastruttura di basso livello.
All'interno di un cluster Kubernetes, i servizi spesso devono comunicare tra loro e talvolta con sistemi esterni. Kubernetes gestisce e controlla il traffico in modo da isolare i componenti interni per migliorare le prestazioni e la sicurezza. Di conseguenza, sia il traffico in entrata che quello in uscita devono essere definiti, gestiti e configurati in modo esplicito.
Nell'informatica di base, i termini ingress/egress si riferiscono al traffico in entrata rispetto a quello in uscita in una rete o in un sistema. L'ingress e l'egress di Kubernetes forniscono ai team della piattaforma un framework controllato per governare il modo in cui il traffico fluisce in entrata e in uscita dal cluster Kubernetes. Questo aspetto è essenziale per il funzionamento di ambienti di produzione sicuri e scalabili.
Ingress si riferisce al traffico in entrata da utenti o sistemi esterni verso un cluster Kubernetes, in genere tramite HTTP o HTTPS (entrambi eseguiti con il protocollo TCP). Anziché esporre ogni servizio direttamente a Internet, le organizzazioni definiscono le regole di ingress tramite una risorsa Ingress. Questa risorsa è in genere scritta in YAML, che indica a Kubernetes come indirizzare il traffico in base a criteri come percorsi URL o nomi di dominio.
Le regole di ingress vengono applicate da un ingress controller, ovvero un software (spesso basato su NGINX o un altro reverse proxy) che funge da punto di ingresso effettivo. Il controller riceve le richieste in arrivo, decrittografa il traffico se necessario e lo inoltra al servizio corretto all'interno del cluster.
Ad esempio, le regole di ingress potrebbero essere configurate per:
Kubernetes fornisce diversi metodi integrati per esporre i servizi all'esterno del cluster. La risorsa Ingress funziona con determinati tipi di servizi, tuttavia offre un approccio più flessibile e centralizzato, soprattutto per il traffico basato sul web.
Ecco alcuni dei tipi di servizi più comuni:
Al contrario, la risorsa Ingress consente di accedere a più servizi tramite un singolo indirizzo IP esterno utilizzando regole di routing intelligenti, basate su nomi di dominio o percorsi. Centralizza la gestione HTTP(S) e il controllo del traffico, rendendolo una scelta ottimale per i workload di produzione.
L'egress si riferisce al traffico in uscita, quando i servizi all'interno del cluster devono comunicare con destinazioni o sistemi di traffico esterni (ad esempio, API, cloud service, database e così via). Sebbene Kubernetes consenta il traffico in uscita senza restrizioni per impostazione predefinita, questa policy aperta è raramente adatta per gli ambienti di produzione.
In genere, le organizzazioni vogliono controllare e monitorare quali servizi possono connettersi agli endpoint esterni, sia per motivi di sicurezza che di conformità. Ad esempio, un'azienda retail potrebbe volere che il suo servizio di pagamento raggiunga solo i gateway di pagamento approvati e blocchi tutte le altre destinazioni.
Kubernetes offre diversi metodi per gestire in modo efficace e sicuro l'egress. Implementando questi controlli, le organizzazioni possono garantire che solo il traffico autorizzato possa fluire verso le reti esterne, migliorando così la sicurezza e la conformità.
Le politiche di rete Kubernetes possono limitare i pod autorizzati a effettuare connessioni in uscita e specificare gli indirizzi o i domini che possono raggiungere, spesso utilizzando la notazione CIDR per gli intervalli IP. Queste politiche supportano modelli zero-trust, consentendo solo comunicazioni esplicitamente autorizzate. Le regole di egress all'interno di queste politiche di rete definiscono le restrizioni del traffico in uscita, controllando a quali pod di destinazioni esterne possono accedere.
I gateway di egress, spesso implementati come parte di una rete di servizi, possono indirizzare tutto il traffico in uscita attraverso un punto di controllo monitorato, consentendo un controllo avanzato del traffico, la crittografia e l'osservabilità.
I nodi di uscita dedicati o i gateway NAT possono essere utilizzati anche per centralizzare e registrare le connessioni in uscita, fornendo tracciabilità e un migliore isolamento delle prestazioni.
Red Hat OpenShift on IBM Cloud è una OpenShift Container Platform (OCP) completamente gestita.
Le soluzioni basate su container eseguono e scalano workload containerizzati con sicurezza, innovazione open source e implementazione rapida.
Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.