Come utilizzare l'API Kubernetes Ingress

Kubernetes sta assistendo all'adozione in tutto il settore tecnologico ed è sulla buona strada per diventare la piattaforma di orchestrazione de facto per la fornitura di servizi cloud moderni. Kubernetes non solo fornisce le primitive per la distribuzione di microservizi nel cloud, ma fa un ulteriore passo avanti, aiutando gli sviluppatori a definire le interazioni e a gestire il ciclo di vita delle loro API. 

L'API Ingress in Kubernetes ti consente di esporre il tuo microservizio al mondo esterno e definire criteri di routing per il tuo traffico nord-sud, ovvero il traffico in arrivo nel tuo data center virtuale. 

I vantaggi della gestione dei cicli di vita delle API utilizzando pipeline di integrazione continua e distribuzione continua (CI / CD) con Ingress sono numerosi, ma prima di affrontare questo aspetto, iniziamo con alcune conoscenze di base.

Il design e lo scopo della risorsa Ingress

La descrizione più semplice di un cluster Kubernetes sarebbe un insieme di nodi gestiti che eseguono applicazioni in contenitori. Nella maggior parte dei casi, i nodi in un cluster Kubernetes non sono esposti direttamente a Internet pubblico. Ciò ha senso, poiché l'esposizione di tutti i servizi su un nodo creerebbe un'incredibile quantità di rischio. Per fornire l'accesso pubblico a servizi selezionati, Kubernetes fornisce la risorsa Ingress.

La risorsa Ingress espone route HTTP e HTTPS dall'esterno del cluster a servizi selezionati all'interno. La risorsa Ingress fornisce anche regole per controllare il traffico. Ciò rende la risorsa Ingress un'ottima soluzione per la gestione delle varie API fornite da una grande quantità di singoli servizi. Lo fa fornendo un unico punto di ingresso per tutti i client e quindi gestendo le richieste ai servizi di back-end. Questa è comunemente nota come configurazione fanout.

Kong

La risorsa Ingress può anche essere configurata per l'hosting virtuale basato sul nome, dove instraderà le richieste in base all'intestazione dell'host:

Kong

Affinché la risorsa Ingress funzioni, è necessario installare un controller Ingress nel cluster Kubernetes. Il controller crea il ponte tra il cluster Kubernetes e le varie interfacce pubbliche esistenti. Ad esempio, la maggior parte dei provider cloud che ospitano Kubernetes fornisce un controller Ingress unico per interfacciarsi con i metodi di esposizione pubblici prescritti. I vari controller funzionano tutti in modo diverso l'uno dall'altro e possono fornire una quantità variabile di funzionalità aggiuntive.

I vantaggi dell'utilizzo di Ingress per gestire il ciclo di vita delle API utilizzando pipeline CI / CD

La risorsa Ingress viene definita tramite un file di configurazione dichiarativo, solitamente descritto in YAML. Ciò è coerente con tutte le risorse Kubernetes e consente l'integrazione diretta nei modelli di distribuzione moderni come la pratica combinata di CI / CD. Ciò significa la capacità di distribuire le modifiche di Ingress in modo rapido, frequente e sicuro. In questo modo, la risorsa Ingress può essere incorporata nello stesso tipo di pattern del ciclo di vita dello sviluppo software delle applicazioni stesse.

In che modo gli sviluppatori possono realizzare Ingress utilizzando Kong per Kubernetes

Un popolare controller Ingress open source e indipendente dal cloud è Kong per Kubernetes . Kong for Kubernetes Ingress Controller è costruito come definizioni di risorse personalizzate (CRD) all'interno di Kubernetes. Questo crea un'esperienza nativa di Kubernetes per coloro che sono già abituati a definire le risorse all'interno di questa piattaforma.

Come le tue app e i tuoi servizi, Kong for Kubernetes può essere installato tramite Manifest, Helm o Kustomize.

Kong for Kubernetes Ingress Controller espande le capacità della risorsa Ingress fornendo un ampio set di plug-in che copre un'ampia gamma di funzionalità tra cui autenticazione, analisi, monitoraggio e trasformazioni di richieste e risposte, solo per citarne alcuni. Fornendo questi requisiti comuni (e a volte non così comuni) al controller Ingress, Kong per Kubernetes consente agli sviluppatori di concentrarsi maggiormente sui requisiti principali dei servizi. Il valore di ciò diventa particolarmente evidente quando un'organizzazione passa da una manciata di applicazioni monolitiche a centinaia, se non migliaia, di microservizi.

Per un elenco di plug-in comuni, visita //docs.konghq.com/hub/.

I plug-in Kong sono definiti come una risorsa Kubernetes, dove una sezione di configurazione fornisce le impostazioni del singolo plug-in.

Di seguito è riportato un esempio di plug-in di limitazione della velocità che limiterà il traffico a cinque richieste al minuto:

Kong

L'aggiunta di un plug-in Kong a una risorsa Kubernetes viene eseguita tramite una semplice annotazione nella sezione dei metadati della risorsa. Ciò consente di applicare i plug-in a livelli diversi. Ad esempio, potresti applicare un plug-in all'intera risorsa Ingress o applicarne uno in modo più dettagliato a una singola risorsa del servizio.

Di seguito è riportato un esempio del plug-in precedente applicato a una risorsa Ingress:

Kong

Kong for Kubernetes può anche essere integrato nella suite completa di prodotti Kong Enterprise, tra cui Kong Studio, Kong Dev Portal, Kong Manager, Kong Brain e Kong Immunity. Ciò consente plug-in Kong ancora più avanzati e una soluzione completa per il ciclo di vita delle API. Questa suite di prodotti copre la creazione e la pubblicazione di specifiche API, nonché la gestione delle risorse Kong e persino l'analisi del traffico.

Puoi adottare un approccio "spec-first" per lo sviluppo delle tue API utilizzando Kong Studio, dove troverai strumenti per la scrittura di documentazione nella specifica OpenAPI standard insieme a strumenti di test per un feedback immediato. Kong Studio fornisce anche strumenti per lavorare con GraphQL. Kong Studio si sincronizza direttamente in Git, il che consente di integrare i file delle specifiche in un flusso di lavoro CI / CD in grado di automatizzare gli aggiornamenti a Kong Dev Portal.

Kong Dev Portal ospita la tua documentazione API (che può essere privata o pubblica). È estremamente personalizzabile, permettendoti di adattarlo allo stile e al marchio della tua organizzazione. Disporre di un'API ben documentata è importante per la produttività e disporre di un flusso ben gestito tra Kong Studio e il portale di sviluppo può aiutare a garantire che la documentazione sia il più aggiornata possibile.

Kong Manager fornisce un'interfaccia grafica per osservare e gestire la suite di prodotti Kong nel suo complesso. Da qui puoi osservare le relazioni tra i tuoi percorsi, servizi e plug-in. Puoi tenere d'occhio il traffico in tempo reale e monitorare i tuoi consumatori.

Kong Brain analizza il traffico proveniente da Ingress e crea una mappa visiva dei servizi delle dipendenze tra i servizi. Ha anche la capacità di generare automaticamente i documenti delle specifiche OpenAPI in base alle mappe che genera. Questa è una caratteristica preziosa, poiché anche con le migliori intenzioni, i servizi implementati potrebbero non essere documentati correttamente. 

Kong Immunity analizza tutto il traffico proveniente da Ingress e apprende i modelli per identificare le anomalie. Spesso si tratta di richieste impercettibili che non si distinguono ma che potrebbero interessare, come un parametro sconosciuto che continua a tentare di andare avanti. Questa è anche una caratteristica molto preziosa poiché individuare questi aghi nel pagliaio di centinaia di migliaia di voci di registro non è facile.

Kong

Ottieni il massimo da Ingress

La risorsa Kubernetes Ingress fornisce un unico punto di ingresso dall'esterno di Kubernetes ai servizi di back-end interni. Sfruttando i file di definizione dichiarativa, la risorsa Ingress può essere trattata come tutte le altre forme di codice ed essere integrata nei cicli di vita di sviluppo software comuni.

Per collegare la comunicazione al di fuori di Kubernetes, è necessario un controller Ingress. Kong for Kubernetes è un controller Ingress che utilizza definizioni di risorse personalizzate per espandere notevolmente le capacità della risorsa Ingress fornendo un gran numero di plug-in, consentendo agli sviluppatori di concentrarsi sul valore aziendale principale. Kong dispone di una suite di strumenti aziendali in grado di migliorare notevolmente la produttività e la sicurezza per l'intero ciclo di vita delle API.

Marco Palladino, inventore, sviluppatore di software e imprenditore di Internet con sede a San Francisco, è il CTO e co-fondatore di Kong Inc.

-

Il New Tech Forum offre un luogo per esplorare e discutere la tecnologia aziendale emergente in profondità e ampiezza senza precedenti. La selezione è soggettiva, in base alla nostra scelta delle tecnologie che riteniamo importanti e di maggiore interesse per i lettori. non accetta materiale di marketing per la pubblicazione e si riserva il diritto di modificare tutti i contenuti forniti. Invia tutte le richieste a [email protected]