Programmering

Hvordan bruke Kubernetes Ingress API

Kubernetes ser adopsjon over hele teknologibransjen og er på vei til å bli de facto orkestrasjonsplattform for moderne skytjeneste. Kubernetes tilbyr ikke bare primitiver for distribusjon av mikrotjenester i skyen, men går et skritt videre, og hjelper utviklere med å definere interaksjoner og administrere livssyklusen for deres API-er.

Ingress API i Kubernetes lar deg eksponere mikroservicen din for omverdenen og definere rutepolicyer for nord-sør-trafikken, dvs. trafikken som kommer inn i ditt virtuelle datasenter.

Fordelene med å administrere API-livssykluser ved hjelp av kontinuerlig integrasjon og kontinuerlig levering (CI / CD) -rørledninger med Ingress er rikelig, men før vi dekker dette, la oss starte med grunnleggende kunnskap.

Utformingen og formålet med Ingress-ressursen

Den enkleste beskrivelsen av en Kubernetes-klynge vil være et sett med administrerte noder som kjører applikasjoner i containere. I de fleste tilfeller er nodene i en Kubernetes-klynge ikke direkte eksponert for det offentlige internett. Dette er fornuftig, ettersom å eksponere alle tjenestene på en node ville skape utrolig mye risiko. For å gi publikum tilgang til utvalgte tjenester, gir Kubernetes Ingress-ressursen.

Ingress-ressursen eksponerer HTTP- og HTTPS-ruter fra utenfor klyngen til valgte tjenester innenfor. Ingress-ressursen gir også regler for å kontrollere trafikken. Dette gjør Ingress-ressursen til en flott løsning for å håndtere de forskjellige API-ene som tilbys av en stor mengde individuelle tjenester. Det gjør dette ved å gi et enkelt inngangspunkt for alle klienter og deretter håndtere forespørsler til back-end-tjenestene. Dette er ofte kjent som en fanout-konfigurasjon.

Kong

Ingress-ressursen kan også settes opp for navnebasert virtuell hosting, der den vil rute forespørsler basert på vertens overskrift:

Kong

For at Ingress-ressursen skal fungere, må en Ingress-kontroller installeres på Kubernetes-klyngen. Kontrolleren oppretter broen mellom Kubernetes-klyngen og de ulike grensesnittene som finnes mot publikum. For eksempel tilbyr de fleste skyleverandører som er vert for Kubernetes en unik Ingress-kontroller som kan grensesnitt med de foreskrevne metodene som er offentlige. De forskjellige kontrollerne fungerer alle forskjellig fra hverandre og kan gi en varierende mengde tilleggsfunksjonalitet.

Fordelene ved å bruke Ingress til å administrere API-livssyklusen ved hjelp av CI / CD-rørledninger

Ingress-ressursen er definert gjennom en deklarativ konfigurasjonsfil, som vanligvis er beskrevet i YAML. Dette er i samsvar med alle Kubernetes-ressurser og muliggjør enkel integrering i moderne distribusjonsmønstre, slik som kombinert praksis med CI / CD. Dette utgjør evnen til å distribuere Ingress-endringer raskt, ofte og trygt. På denne måten kan Ingress-ressursen innlemmes i samme type livssyklusmønster for programvareutvikling som selve applikasjonene.

Hvordan utviklere kan oppnå Ingress ved å bruke Kong for Kubernetes

En populær åpen kildekode og sky-agnostisk Ingress-kontroller er Kong for Kubernetes. Kong for Kubernetes Ingress Controller er bygget som egendefinerte ressursdefinisjoner (CRDs) i Kubernetes. Dette skaper en Kubernetes-innfødt opplevelse for de som allerede er vant til å definere ressurser innen denne plattformen.

I likhet med appene og tjenestene dine kan Kong for Kubernetes installeres via Manifest, Helm eller Kustomize.

Kong for Kubernetes Ingress Controller utvider funksjonene til Ingress-ressursen ved å tilby et omfattende sett med plugin-moduler som dekker et bredt spekter av funksjoner, inkludert autentisering, analyse, overvåking og forespørsel og responstransformasjoner, for bare å nevne noen. Ved å tilby disse vanlige (og noen ganger ikke så vanlige) kravene til Ingress-kontrolleren, tillater Kong for Kubernetes utviklere å fokusere mer på kjernekravene til tjenestene. Verdien av dette blir spesielt tydelig når en organisasjon flytter fra en håndfull monolitiske applikasjoner til hundrevis, om ikke tusenvis, mikrotjenester.

For en liste over vanlige plugin-moduler, sjekk ut //docs.konghq.com/hub/.

Kong-plugin-moduler er definert som en Kubernetes-ressurs, hvor en konfigurasjonsdel inneholder innstillingene for den enkelte plugin-modulen.

Nedenfor er et eksempel på en hastighetsbegrensende plugin-modul som vil begrense trafikken til fem forespørsler per minutt:

Kong

Å legge til en Kong-plugin-modul til en Kubernetes-ressurs gjøres gjennom en enkel kommentar i metadata-delen av ressursen. Dette gjør at plug-ins kan brukes på forskjellige nivåer. For eksempel kan du bruke en plugin-modul til hele Ingress-ressursen eller bruke en på en mer detaljert måte på en individuell tjenestressurs.

Her er et eksempel på at plugin-modulet ovenfor brukes på en Ingress-ressurs:

Kong

Kong for Kubernetes kan også integreres i hele pakken med Kong Enterprise-produkter, inkludert Kong Studio, Kong Dev Portal, Kong Manager, Kong Brain og Kong Immunity. Dette gir enda mer avanserte Kong-plugin-moduler samt en full API-livssyklusløsning. Denne produktserien dekker redigering og publisering av API-spesifikasjoner, samt administrasjon av Kong-ressurser og til og med analyse av trafikk.

Du kan ta en "spesifikke først" tilnærming mot å utvikle API-ene dine ved hjelp av Kong Studio, hvor du finner verktøy for å skrive dokumentasjon i standard OpenAPI-spesifikasjonen sammen med testverktøy for umiddelbar tilbakemelding. Kong Studio tilbyr også verktøy for å jobbe med GraphQL. Kong Studio synkroniseres direkte i Git, som lar spesifikasjonsfilene dine integreres i en CI / CD-arbeidsflyt som kan automatisere oppdateringer til Kong Dev Portal.

Kong Dev Portal er vert for API-dokumentasjonen din (som kan være privat eller offentlig). Den er ekstremt tilpassbar, slik at du kan tilpasse den til organisasjonens stil og merkevarebygging. Å ha et godt dokumentert API er viktig for produktiviteten, og å ha en godt administrert flyt mellom Kong Studio og Dev Portal kan bidra til at dokumentasjonen er så oppdatert som mulig.

Kong Manager gir et grafisk grensesnitt for å observere og administrere Kong-serien av produkter som helhet. Herfra kan du observere forholdet mellom rutene, tjenestene og plugin-modulene dine. Du kan få et sanntids øye med trafikken og spore forbrukerne.

Kong Brain analyserer trafikk som kommer gjennom Ingress og lager et visuelt tjenestekart over avhengigheter mellom tjenestene. Den har også muligheten til å automatisk generere OpenAPI-spesifikasjonsdokumenter basert på kartene den genererer. Dette er en verdifull funksjon, ettersom selv med de beste intensjonene, kan det hende at tjenester som distribueres ikke blir dokumentert riktig.

Kong Immunity analyserer all trafikken som kommer gjennom Ingress og lærer mønstre for å identifisere avvik. Dette er ofte subtile forespørsler som ikke skiller seg ut, men som kan være av interesse, for eksempel en ukjent parameter som prøver å komme gjennom. Dette er også en veldig verdifull funksjon, da det ikke er lett å få øye på disse nålene i høystakken til hundretusener av loggoppføringer.

Kong

Få mest mulig ut av Ingress

Kubernetes Ingress-ressursen gir et enkelt inngangspunkt fra utenfor Kubernetes til back-end-tjenester innen. Ved å utnytte deklarative definisjonsfiler, kan Ingress-ressursen behandles som alle andre former for kode og integreres i vanlige livssykluser for programvareutvikling.

For å bygge bro over kommunikasjon utenfor Kubernetes, kreves en Ingress-kontroller. Kong for Kubernetes er en Ingress-kontroller som bruker egendefinerte ressursdefinisjoner for å utvide kapasiteten til Ingress-ressursen sterkt ved å tilby et stort antall plugin-moduler, slik at utviklere kan fokusere på kjernevirksomhetsverdien. Kong har en rekke bedriftsverktøy som kan forbedre produktiviteten og sikkerheten i løpet av hele API-livssyklusen din.

Marco Palladino, en oppfinner, programvareutvikler og internettgründer basert i San Francisco, er CTO og medstifter av Kong Inc.

New Tech Forum er et sted for å utforske og diskutere ny teknologi i enestående dybde og bredde. Valget er subjektivt, basert på vårt valg av teknologiene vi mener er viktige og av størst interesse for leserne. godtar ikke markedsføringssikkerhet for publisering og forbeholder seg retten til å redigere alt bidratt innhold. Send alle henvendelser til [email protected].

$config[zx-auto] not found$config[zx-overlay] not found