Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Kubernetes geriausia praktika. Mažų konteinerių kūrimas
Kubernetes geriausia praktika. Kubernetes organizavimas su vardų erdve
Kubernetes geriausia praktika. „Kubernetes“ gyvumo patvirtinimas naudojant parengties ir gyvumo testus
Kubernetes geriausia praktika. Išteklių užklausų ir apribojimų nustatymas
Kubernetes geriausia praktika. Teisingas išjungimas Nutraukti

Jei esate kaip ir dauguma žmonių, tikriausiai naudojate išteklius, kurie nepriklauso jūsų klasteriui. Galbūt naudojate Taleo API tekstiniams pranešimams siųsti arba vaizdams analizuoti naudodami Google Cloud Vision API.

Jei naudojate tą patį serverio pusės užklausos galinį tašką visose savo aplinkose ir neplanuojate perkelti serverių į „Kubernetes“, tada visiškai gerai, kad paslaugos galinis taškas yra tiesiai jūsų kode. Tačiau yra daug kitų įvykių raidos scenarijų. Šioje „Kubernetes“ geriausios praktikos serijoje sužinosite, kaip naudoti įtaisytuosius „Kubernetes“ mechanizmus, kad atrastumėte paslaugas tiek klasteryje, tiek už jos ribų.

Įprastos išorinės paslaugos pavyzdys yra duomenų bazė, veikianti už Kubernetes klasterio ribų. Skirtingai nuo debesų duomenų bazių, pvz., „Google Cloud Data Store“ ar „Google Cloud Spanner“, kurios visai prieigai naudoja vieną galutinį tašką, dauguma duomenų bazių turi atskirus galutinius taškus skirtingoms aplinkybėms.
Geriausia tradicinių duomenų bazių, tokių kaip MySQL ir MongoDB, naudojimo praktika paprastai reiškia, kad jungiatės prie skirtingų komponentų skirtingoms aplinkoms. Galite turėti didelę mašiną gamybos duomenims ir mažesnę mašiną bandymo aplinkai. Kiekvienas iš jų turės savo IP adresą arba domeno pavadinimą, tačiau tikriausiai nenorėsite keisti savo kodo pereinant iš vienos aplinkos į kitą. Taigi, užuot koduodami šiuos adresus, galite naudoti „Kubernetes“ integruotą DNS pagrįstą išorinių paslaugų aptikimą taip pat, kaip ir vietines „Kubernetes“ paslaugas.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Tarkime, kad naudojate „MongoDB“ duomenų bazę „Google Compute Engine“. Jūs būsite įstrigę šiame hibridiniame pasaulyje, kol pavyks jį perkelti į klasterį.

Laimei, galite naudoti statines Kubernetes paslaugas, kad šiek tiek palengvintumėte savo gyvenimą. Šiame pavyzdyje sukūriau MongoDB serverį naudodamas „Google Cloud Launcher“. Kadangi jis sukurtas tame pačiame tinkle (arba Kubernetes klasterio VPC), jis pasiekiamas naudojant didelio našumo vidinį IP adresą.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Tai yra numatytasis „Google Cloud“ nustatymas, todėl jums nereikia nieko konfigūruoti. Dabar, kai turite IP adresą, pirmas žingsnis yra sukurti paslaugą. Galite pastebėti, kad šiai paslaugai nėra pogrupių parinkėjų. Tai yra, sukūrėme paslaugą, kuri nežinos, kur siųsti srautą. Tai leis jums rankiniu būdu sukurti galutinio taško objektą, kuris gaus srautą iš šios paslaugos.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Šis kodo pavyzdys rodo, kad galutiniai taškai nustato duomenų bazės IP adresą naudodami tą patį mongo pavadinimą kaip ir paslauga.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

„Kubernetes“ naudos visus IP adresus, kad surastų galinius taškus, tarsi jie būtų įprasti „Kubernetes Pod“, todėl dabar galite pasiekti duomenų bazę naudodami paprastą ryšio eilutę su aukščiau nurodytu pavadinimu mongodb://mongo. Kode visai nereikia naudoti IP adresų.

Jei IP adresai ateityje pasikeis, galite tiesiog atnaujinti savo galinius taškus nauju IP adresu ir jūsų programų nereikės keisti jokiu papildomu būdu.

Jei naudojate duomenų bazę, priglobtą trečiosios šalies priegloboje, tikėtina, kad prieglobos savininkai suteikė jums vienodą išteklių identifikatoriaus URI, prie kurio galite prisijungti. Taigi, jei jums buvo suteiktas IP adresas, galite tiesiog naudoti ankstesnį metodą. Šis pavyzdys rodo, kad turiu dvi MongoDB duomenų bazes, priglobtas mLab priegloboje.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Viena yra kūrėjų duomenų bazė, o kita - gamybos duomenų bazė. Šių duomenų bazių ryšio eilutės atrodo taip – ​​mLab suteikia jums dinaminį URI ir dinaminį prievadą. Kaip matote, jie yra skirtingi.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Norėdami tai abstrahuoti, naudokite Kubernetes ir prisijunkite prie kūrėjų duomenų bazės. Galite sukurti išorinį Kubernetes paslaugos pavadinimą, kuris suteiks jums statinę paslaugą, kuri perduos srautą į išorinę paslaugą.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Ši paslauga atliks paprastą CNAME persiuntimą branduolio lygiu ir turės minimalų poveikį našumui. Dėl to galite naudoti paprastesnę ryšio eilutę.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Tačiau kadangi išorinis pavadinimas naudoja CNAME persiuntimą, jis negali atlikti prievado persiuntimo. Todėl šis sprendimas taikomas tik statiniams prievadams ir negali būti naudojamas su dinaminiais prievadais. Tačiau „mLab Free Tier“ pagal numatytuosius nustatymus suteikia vartotojui dinaminį prievado numerį ir jūs negalite jo pakeisti. Tai reiškia, kad jums reikia skirtingų dev ir prod ryšio komandų eilučių. Blogas dalykas yra tai, kad tam reikės užkoduoti prievado numerį. Taigi, kaip priversti prievado peradresavimą veikti?

Pirmas žingsnis yra gauti IP adresą iš URI. Jei paleisite nslookup, pagrindinio kompiuterio pavadinimą arba ping URI, galite gauti duomenų bazės IP adresą. Jei paslauga jums grąžina kelis IP adresus, visi šie adresai gali būti naudojami objekto galiniuose taškuose.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Vienas dalykas, kurį reikia atsiminti, yra tai, kad IP URI gali keistis be įspėjimo, todėl juos naudoti gamyboje yra gana rizikinga. Naudodami šį IP adresą galite prisijungti prie nuotolinės duomenų bazės nenurodydami prievado. Taigi Kubernetes paslauga uosto persiuntimą atlieka gana skaidriai.

Kubernetes geriausia praktika. Išorinių paslaugų kartografavimas

Susiejimas arba išorinių išteklių susiejimas su vidiniais suteikia jums lankstumo ateityje naudoti šias paslaugas klasteryje, tuo pačiu sumažinant pertvarkymo pastangas. Tai taip pat palengvina valdymą ir leidžia suprasti, kokias išorines paslaugas naudoja jūsų įmonė.

Tęsinys bus labai greitai...

Kai kurie skelbimai 🙂

Dėkojame, kad likote su mumis. Ar jums patinka mūsų straipsniai? Norite pamatyti įdomesnio turinio? Palaikykite mus pateikdami užsakymą ar rekomenduodami draugams, debesies VPS kūrėjams nuo 4.99 USD, unikalus pradinio lygio serverių analogas, kurį mes sugalvojome jums: Visa tiesa apie VPS (KVM) E5-2697 v3 (6 branduoliai) 10GB DDR4 480GB SSD 1Gbps nuo 19$ arba kaip dalintis serveriu? (galima su RAID1 ir RAID10, iki 24 branduolių ir iki 40 GB DDR4).

„Dell R730xd“ 2 kartus pigiau „Equinix Tier IV“ duomenų centre Amsterdame? Tik čia 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 televizoriai nuo 199 USD Olandijoje! „Dell R420“ – 2 x E5-2430 2.2 GHz 6C 128 GB DDR3 2 x 960 GB SSD 1 Gbps 100 TB – nuo ​​99 USD! Skaityti apie Kaip sukurti infrastruktūros korp. klasę naudojant Dell R730xd E5-2650 v4 serverius, kurių vertė 9000 eurų už centą?

Šaltinis: www.habr.com

Добавить комментарий