Programmering

Sådan bruges Kubernetes Ingress API

Kubernetes ser vedtagelse på tværs af teknologibranchen og er på vej til at blive den de facto orkestrationsplatform til moderne cloud-levering af tjenester. Kubernetes leverer ikke kun primitiver til implementering af mikrotjenester i skyen, men går et skridt videre og hjælper udviklere med at definere interaktioner og styre livscyklussen for deres API'er.

Ingress API i Kubernetes giver dig mulighed for at eksponere din mikroservice for omverdenen og definere rutepolitikker for din nord-syd trafik, dvs. den trafik, der kommer ind i dit virtuelle datacenter.

Fordelene ved at styre API-livscyklusser ved hjælp af kontinuerlig integration og kontinuerlig levering (CI / CD) -rørledninger med Ingress er rigelige, men inden vi dækker dette, skal vi starte med en grundlæggende viden.

Designet og formålet med Ingress-ressourcen

Den enkleste beskrivelse af en Kubernetes-klynge ville være et sæt administrerede noder, der kører applikationer i containere. I de fleste tilfælde udsættes noderne i en Kubernetes-klynge ikke direkte for det offentlige internet. Dette giver mening, da eksponering af alle tjenester på en node ville skabe en utrolig stor risiko. For at give offentligt adgang til udvalgte tjenester leverer Kubernetes Ingress-ressourcen.

Ingress-ressourcen udsætter HTTP- og HTTPS-ruter uden for klyngen for valgte tjenester inden for. Ingress-ressourcen indeholder også regler til kontrol af trafikken. Dette gør Ingress-ressourcen til en god løsning til håndtering af de forskellige API'er, der leveres af en stor mængde individuelle tjenester. Det gør det ved at give et enkelt indgangspunkt for alle klienter og derefter håndtere anmodninger til back-end-tjenesterne. Dette er almindeligt kendt som en fanout-konfiguration.

Kong

Ingress-ressourcen kan også indstilles til navnebaseret virtuel hosting, hvor den dirigerer anmodninger baseret på værtsoverskriften:

Kong

For at Ingress-ressourcen skal fungere, skal der installeres en Ingress-controller på Kubernetes-klyngen. Controlleren opretter broen mellem Kubernetes-klyngen og de forskellige grænseflader, der findes offentligt. For eksempel leverer de fleste cloud-udbydere, der er vært for Kubernetes, en unik Ingress-controller, der kan interface med deres foreskrevne offentlige ansigtsmetoder. De forskellige controllere fungerer alle forskelligt fra hinanden og kan give en varierende mængde ekstra funktionalitet.

Fordelene ved at bruge Ingress til at styre API-livscyklus ved hjælp af CI / CD-rørledninger

Ingress-ressourcen defineres gennem en deklarativ konfigurationsfil, som normalt er beskrevet i YAML. Dette er i overensstemmelse med alle Kubernetes-ressourcer og giver mulighed for ligefrem integration i moderne implementeringsmønstre såsom den kombinerede praksis med CI / CD. Hvad dette svarer til er evnen til at implementere Ingress-ændringer hurtigt, ofte og sikkert. På denne måde kan Ingress-ressourcen integreres i den samme type softwareudviklings livscyklusmønstre som selve applikationerne.

Hvordan udviklere kan opnå Ingress ved hjælp af Kong for Kubernetes

En populær open source og cloud-agnostisk Ingress-controller er Kong for Kubernetes. Kong for Kubernetes Ingress Controller er bygget som CRD'er (custom resource definitions) inden for Kubernetes. Dette skaber en Kubernetes-native oplevelse for dem, der allerede er vant til at definere ressourcer inden for denne platform.

Ligesom dine apps og tjenester kan Kong for Kubernetes installeres via Manifest, Helm eller Kustomize.

Kong for Kubernetes Ingress Controller udvider kapaciteten af ​​Ingress-ressourcen ved at levere et omfattende sæt plug-ins, der dækker en bred vifte af funktioner, herunder autentificering, analyse, overvågning og anmodning og reaktionstransformationer, for bare at nævne nogle få. Ved at levere disse almindelige (og nogle gange ikke så almindelige) krav til Ingress-controlleren giver Kong for Kubernetes udviklere mulighed for at fokusere mere på kernekravene til tjenesterne. Værdien af ​​dette bliver især tydelig, når en organisation bevæger sig fra en håndfuld monolitiske applikationer til hundreder, hvis ikke tusinder, mikrotjenester.

Se //docs.konghq.com/hub/ for en liste over almindelige plug-ins.

Kong-plug-ins er defineret som en Kubernetes-ressource, hvor et konfigurationsafsnit indeholder de individuelle plug-ins indstillinger.

Nedenfor er et eksempel på et hastighedsbegrænsende plug-in, der begrænser trafikken til fem anmodninger pr. Minut:

Kong

Tilføjelse af et Kong-plug-in til en Kubernetes-ressource sker gennem en simpel kommentar i metadata-sektionen af ​​ressourcen. Dette muliggør, at plug-ins kan anvendes på forskellige niveauer. For eksempel kan du anvende et plug-in på hele Ingress-ressourcen eller anvende en på en mere detaljeret måde på en individuel serviceresource.

Her er et eksempel på, at ovenstående plug-in anvendes på en Ingress-ressource:

Kong

Kong for Kubernetes kan også integreres i den fulde serie af Kong Enterprise-produkter, herunder Kong Studio, Kong Dev Portal, Kong Manager, Kong Brain og Kong Immunity. Dette giver mulighed for endnu mere avancerede Kong-plug-ins samt en fuld API-livscyklusløsning. Denne serie af produkter dækker oprettelse og udgivelse af API-specifikationer samt styring af dine Kong-ressourcer og endda analyse af trafik.

Du kan tage en "spec-first" tilgang til at udvikle dine API'er ved hjælp af Kong Studio, hvor du finder værktøjer til at skrive dokumentation i standard OpenAPI-specifikationen sammen med testværktøjer til øjeblikkelig feedback. Kong Studio leverer også værktøjer til at arbejde med GraphQL. Kong Studio synkroniseres direkte i Git, hvilket gør det muligt at integrere dine spec-filer i en CI / CD-arbejdsgang, der kan automatisere opdateringer til Kong Dev Portal.

Kong Dev Portal er vært for din API-dokumentation (som kan være privat eller offentlig). Det kan yderst tilpasses, så du kan tilpasse det til din organisations stil og branding. At have en veldokumenteret API er vigtig for produktiviteten, og at have en veladministreret strøm mellem Kong Studio og Dev Portal kan hjælpe med at sikre, at dokumentationen er så opdateret som muligt.

Kong Manager giver en grafisk grænseflade til at observere og administrere Kong-serien af ​​produkter som helhed. Herfra kan du observere forholdet mellem dine ruter, tjenester og plug-ins. Du kan få øje på trafikken i realtid og spore dine forbrugere.

Kong Brain analyserer trafik, der kommer gennem Ingress og opretter et visuelt servicekort over afhængigheder mellem tjenester. Det har også evnen til automatisk at generere OpenAPI-spec-dokumenter baseret på de kort, den genererer. Dette er en værdifuld funktion, da tjenester, der implementeres, måske ikke med de bedste intentioner dokumenteres korrekt.

Kong Immunity analyserer al trafik gennem Ingress og lærer mønstre til at identificere uregelmæssigheder. Dette er ofte subtile anmodninger, der ikke skiller sig ud, men som kan være af interesse, såsom en ukendt parameter, der fortsat prøver at komme igennem. Dette er også en meget værdifuld funktion, da det ikke er let at spotte disse nåle i høstakken for hundreder af tusinder af logposter.

Kong

Få mest ud af Ingress

Kubernetes Ingress-ressourcen giver et enkelt indgangspunkt fra uden for Kubernetes til back-end-tjenester inden for. Ved at udnytte deklarative definitionsfiler kan Ingress-ressourcen behandles som alle andre former for kode og integreres i almindelige softwareudviklingslivscyklusser.

For at bygge bro over kommunikation uden for Kubernetes kræves en Ingress-controller. Kong for Kubernetes er en Ingress-controller, der bruger brugerdefinerede ressourcedefinitioner til i høj grad at udvide kapaciteten i Ingress-ressourcen ved at levere et stort antal plug-ins, så udviklere kan fokusere på kerneforretningsværdi. Kong har en række virksomhedsværktøjer, der i høj grad kan forbedre produktivitet og sikkerhed i hele din API-livscyklus.

Marco Palladino, en opfinder, softwareudvikler og internetentreprenør med base i San Francisco, er CTO og medstifter af Kong Inc.

New Tech Forum giver et sted at udforske og diskutere nye virksomhedsteknologier i hidtil uset dybde og bredde. Valget er subjektivt baseret på vores valg af de teknologier, som vi mener er vigtige og af største interesse for læserne. accepterer ikke markedsføringssikkerhed til offentliggørelse og forbeholder sig retten til at redigere alt bidraget indhold. Send alle forespørgsler til [email protected]