Programavimas

Kaip naudoti „Kubernetes Ingress“ API

„Kubernetes“ mato priėmimą visoje technologijų industrijoje ir eina į kelią į de facto šiuolaikinių debesijos paslaugų teikimo orkestravimo platformą. „Kubernetes“ teikia ne tik primityvias galimybes mikroservėms diegti debesyje, bet ir žengia dar vieną žingsnį toliau, padėdamas kūrėjams apibrėžti sąveikas ir valdyti savo API gyvavimo ciklą.

„Ingress“ API „Kubernetes“ leidžia jums atskleisti savo mikropaslaugas išoriniam pasauliui ir apibrėžti jūsų šiaurės – pietų srauto, t. Y. Srauto, patenkančio į jūsų virtualų duomenų centrą, nukreipimo strategijas.

API gyvavimo ciklų valdymo naudojant nuolatinio integravimo ir nepertraukiamo pristatymo (CI / CD) vamzdynus su „Ingress“ pranašumų yra daug, tačiau, prieš tai aptardami, pradėkime nuo kai kurių pamatinių žinių.

„Ingress“ šaltinio dizainas ir paskirtis

Paprasčiausias „Kubernetes“ sankaupos aprašas būtų valdomų mazgų, vykdančių programas konteineriuose, rinkinys. Daugeliu atvejų „Kubernetes“ sankaupos mazgai nėra tiesiogiai veikiami viešojo interneto. Tai prasminga, nes visų paslaugų atskleidimas mazge sukeltų neįtikėtiną riziką. Siekdama suteikti viešai prieigą prie pasirinktų paslaugų, „Kubernetes“ teikia „Ingress“ šaltinį.

„Ingress“ šaltinis pateikia HTTP ir HTTPS maršrutus iš klasterio ribų į pasirinktas paslaugas. „Ingress“ šaltinyje taip pat pateikiamos eismo valdymo taisyklės. Tai padaro „Ingress“ šaltinį puikiu sprendimu tvarkant įvairias API, kurias teikia daugybė atskirų paslaugų. Tai daro suteikdamas visiems klientams vieną įėjimo tašką ir tada tvarkydamas užklausas antrinėms tarnyboms. Tai paprastai vadinama „fanout“ konfigūracija.

Kongas

„Ingress“ išteklius taip pat galima nustatyti vardais pagrįstam virtualiam prieglobai, kur jis nukreips užklausas pagal pagrindinio kompiuterio antraštę:

Kongas

Kad „Ingress“ išteklius veiktų, „Kubernetes“ grupėje reikia įdiegti „Ingress“ valdiklį. Valdiklis sukuria tiltą tarp „Kubernetes“ sankaupos ir įvairių egzistuojančių visuomenės sąsajų. Pavyzdžiui, dauguma debesies paslaugų teikėjų, talpinančių „Kubernetes“, teikia unikalų „Ingress“ valdiklį, kuris sąveikauja su nustatytais viešo naudojimo metodais. Įvairūs valdikliai veikia skirtingai ir gali suteikti skirtingą papildomų funkcijų kiekį.

„Ingress“ naudojimo pranašumai valdant API gyvavimo ciklą naudojant CI / CD vamzdynus

„Ingress“ išteklius apibrėžiamas per deklaratyvų konfigūracijos failą, kuris paprastai aprašomas YAML. Tai atitinka visus „Kubernetes“ išteklius ir leidžia lengvai integruoti į šiuolaikinius diegimo modelius, tokius kaip kombinuota CI / CD praktika. Tai reiškia galimybę greitai, dažnai ir saugiai pritaikyti „Ingress“. Tokiu būdu „Ingress“ šaltinis gali būti įtrauktas į to paties tipo programinės įrangos kūrimo gyvavimo ciklo modelius, kaip ir pačios programos.

Kaip kūrėjai gali pasiekti „Ingress“ naudodami „Kong for Kubernetes“

Populiarus atvirojo kodo ir „cloud-agnostic Ingress“ valdiklis yra „Kong for Kubernetes“. „Kong for Kubernetes“ patekimo valdiklis yra sukurtas kaip „Kubernetes“ pritaikyti išteklių apibrėžimai (CRD). Tai sukuria „Kubernetes“ gimtąją patirtį tiems, kurie jau įprato apibrėžti šios platformos išteklius.

Kaip ir jūsų programas bei paslaugas, „Kong for Kubernetes“ galima įdiegti per „Manifest“, „Helm“ arba „Kustomize“.

„Kong for Kubernetes Ingress Controller“ išplečia „Ingress“ išteklių galimybes pateikdamas platų papildinių rinkinį, kuris apima daugybę galimybių, įskaitant autentifikavimą, analizę, stebėjimą ir užklausų bei atsakymų transformacijas. Pateikdamas šiuos bendrus (o kartais ir ne tokius įprastus) reikalavimus „Ingress“ valdikliui, „Kong for Kubernetes“ leidžia kūrėjams daugiau dėmesio skirti pagrindiniams paslaugų reikalavimams. To vertė ypač išryškėja, kai organizacija pereina nuo kelių monolitinių programų prie šimtų, jei ne tūkstančių, mikro paslaugų.

Norėdami pamatyti įprastų papildinių sąrašą, apsilankykite //docs.konghq.com/hub/.

Kongo papildiniai apibrėžiami kaip „Kubernetes“ šaltinis, kur konfigūracijos skyriuje pateikiami atskirų papildinių nustatymai.

Toliau pateikiamas greičio ribojimo papildinio, kuris apribos srautą iki penkių užklausų per minutę, pavyzdys:

Kongas

Kongo papildinio pridėjimas prie „Kubernetes“ šaltinio atliekamas naudojant paprastą anotaciją išteklių metaduomenų skyriuje. Tai leidžia papildinius pritaikyti skirtingiems lygiams. Pvz., Galite pritaikyti papildinį visam „Ingress“ ištekliui arba pritaikyti jį smulkiau, atskiram paslaugų ištekliui.

Štai aukščiau nurodyto papildinio, pritaikyto „Ingress“ ištekliui, pavyzdys:

Kongas

„Kong for Kubernetes“ taip pat gali būti integruotas į visą „Kong Enterprise“ produktų rinkinį, įskaitant „Kong Studio“, „Kong Dev Portal“, „Kong Manager“, „Kong Brain“ ir „Kong Immunity“. Tai leidžia naudoti dar pažangesnius „Kong“ papildinius ir pilną API gyvavimo ciklo sprendimą. Šis produktų rinkinys apima API specifikacijų kūrimą ir skelbimą, taip pat Kongo išteklių valdymą ir netgi srauto analizę.

Galite naudoti „spec-first“ požiūrį kurdami savo API naudodami „Kong Studio“, kur rasite įrankius dokumentams rašyti standartinėje „OpenAPI“ specifikacijoje kartu su testavimo įrankiais, kad gautumėte greitą grįžtamąjį ryšį. „Kong Studio“ taip pat pateikia įrankius darbui su „GraphQL“. „Kong Studio“ sinchronizuojama tiesiai į „Git“, o tai leidžia jūsų specifikacijos failus integruoti į CI / CD darbo eigą, kuri gali automatizuoti „Kong Dev“ portalo naujinimus.

„Kong Dev“ portale yra jūsų API dokumentai (kurie gali būti privatūs arba vieši). Tai labai pritaikoma, leidžianti pritaikyti ją jūsų organizacijos stiliui ir prekės ženklui. Gerai dokumentuotų API naudojimas yra svarbus produktyvumui, o gerai valdomas srautas tarp „Kong Studio“ ir „Dev Portal“ gali padėti užtikrinti, kad dokumentai būtų kuo naujesni.

„Kong Manager“ pateikia grafinę sąsają, kad būtų galima stebėti ir valdyti „Kong“ produktų rinkinį kaip visumą. Čia galite stebėti ryšius tarp savo maršrutų, paslaugų ir papildinių. Galite realiuoju laiku stebėti eismą ir stebėti savo vartotojus.

„Kong Brain“ analizuoja srautą, patenkantį per „Ingress“, ir sukuria vizualinių tarnybų priklausomybių žemėlapį. Ji taip pat turi galimybę automatiškai generuoti „OpenAPI“ specifikacinius dokumentus pagal savo sukurtus žemėlapius. Tai yra vertinga funkcija, nes net ir esant geriausiems ketinimams diegiamos paslaugos gali būti netinkamai dokumentuotos.

Kongo imunitetas analizuoja visą srautą, vykstantį per „Ingress“, ir mokosi nustatyti anomalijas. Tai dažnai yra subtilios užklausos, kurios neišsiskiria, tačiau gali būti įdomios, pavyzdžiui, nežinomas parametras, kuris vis bando įveikti. Tai taip pat yra labai vertinga savybė, nes pastebėti šias adatas šimtų tūkstančių žurnalo įrašų šieno kupetoje nėra lengva.

Kongas

Maksimaliai išnaudokite „Ingress“

„Kubernetes Ingress“ šaltinis teikia vieną įėjimo tašką iš išorinių „Kubernetes“ ribų, kad būtų teikiamos galinės paslaugos. Panaudojant deklaratyvaus apibrėžimo failus, „Ingress“ šaltinis gali būti traktuojamas kaip ir visos kitos kodo formos ir gali būti integruotas į bendrus programinės įrangos kūrimo gyvavimo ciklus.

Norint užmegzti ryšį už „Kubernetes“ ribų, reikalingas „Ingress“ valdiklis. „Kong for Kubernetes“ yra valdiklis „Ingress“, kuris naudoja pasirinktinius išteklių apibrėžimus, kad labai išplėstų „Ingress“ išteklių galimybes, suteikdamas daug papildinių, leidžiančių kūrėjams sutelkti dėmesį į pagrindinę verslo vertę. Kongas turi verslo įrankių rinkinį, kuris gali labai padidinti produktyvumą ir saugumą visame jūsų API gyvavimo cikle.

San Franciske įsikūręs išradėjas, programinės įrangos kūrėjas ir interneto verslininkas Marco Palladino yra CTO ir vienas iš Kong Inc.

Naujųjų technologijų forumas suteikia galimybę tyrinėti ir aptarti besiformuojančios įmonės technologijas beprecedentiame gylyje. Atranka yra subjektyvi, atsižvelgiant į mūsų pasirinktas technologijas, kurios, mūsų manymu, yra svarbios ir labiausiai domina skaitytojus. nepriima rinkodaros užtikrinimo priemonės paskelbimui ir pasilieka teisę redaguoti visą pateiktą turinį. Visus klausimus siųskite adresu [email protected].

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