Kui olete nagu enamik inimesi, kasutate tĂ”enĂ€oliselt ressursse, mis asuvad vĂ€ljaspool teie klastrit. VĂ”ib-olla kasutate API Taleo, et saata tekstisĂ”numeid vĂ”i analĂŒĂŒsida pilte Google Cloud Vision API kaudu.
Kui kasutate sama lĂ”pp-punkti â serveri poolt pĂ€ringute vastuvĂ”tmise punkti kĂ”igis oma keskkondades ega kavatse oma servereid Kubernetesesse kolida, siis on tĂ€iesti normaalne, et teenuse lĂ”pp-punkt asub otse teie koodis. Siiski on palju teisi stsenaariume. Selles sarjas "Kubernetes parimad praktikad" saate teada, kuidas kasutada Kubernetesesse sisseehitatud mehhanisme teenuste avastamiseks nii klastris kui ka vĂ€ljaspool seda.
NĂ€iteks laialdaselt kasutatavatest vĂ€listest teenustest vĂ”ib tuua vĂ€lja andmebaasi, mis töötab vĂ€ljaspool Kubernetes klastrit. Erinevalt pilveandmebaasidest, nagu Google Cloud Data Store vĂ”i Google Cloud Spanner, millele pÀÀseb ligi ĂŒhe ja sama lĂ”pp-punkti kaudu, on enamikul andmebaasidest erinevad lĂ”pp-punktid erinevate olukordade jaoks.
TavapĂ€rase andmebaasi, nagu MySQL ja MongoDB, kasutamise parim praktika hĂ”lmab tavaliselt erinevate komponentide ĂŒhendamist erinevatesse keskkondadesse. VĂ”ib olla suur masin tootmisandmete jaoks ja vĂ€iksem masin testkeskkonna jaoks. Igal neist on oma IP-aadress vĂ”i domeeninimi, kuid te kindlasti ei taha oma koodi muuta, kui liigute ĂŒhelt keskkonnalt teisele. SeetĂ”ttu vĂ”ite nende aadresside kĂ”va kodeerimise asemel kasutada Kubernetesi sisseehitatud teenuste avastamist, mis pĂ”hineb DNS-il, just nagu teeksite natiivsete Kubernetesi teenustega.

Oletame, et kĂ€itate andmebaasi MongoDB Google Compute Engine'is. JĂ€ete kinni selle hĂŒbriidmaailma, kuni suudate selle klastrisse kolida.
Ănneks saate kasutusele vĂ”tta Kubernetes'i staatilised teenused, et endale elu veidi lihtsamaks teha. Selles nĂ€ites olen loonud MongoDB serveri, kasutades Google Cloud Launcherit. Kuna see on loodud samasse vĂ”rku (vĂ”i Kubernetes klastrisse VPC), toimub sellele juurdepÀÀs suure jĂ”udlusega sise-IP-aadressi kaudu.

Google Cloudis on vaikimisi seade, nii et te ei pea midagi seadistama. NĂŒĂŒd, kui IP-aadress on olemas, on esimene samm teenuse loomine. VĂ”ib mĂ€rgata, et selle teenuse jaoks ei ole ĂŒhtegi pod'i valijat. See tĂ€hendab, et oleme loonud teenuse, mis ei tea, kuhu liiklust suunata. See vĂ”imaldab kĂ€sitsi luua endpoint objekti, mis saab liiklust sellest teenusest.

JÀrgmine koodinÀide nÀitab, et lÔpp-punktid mÀÀravad andmebaasi IP-aadressi, kasutades sama nime mongo, mis on teenusel.

Kubernetes kasutab kĂ”iki IP-aadresse, et leida lĂ”pp-punkte, nagu oleks need tavalised Kubernetes pod'id, nii et nĂŒĂŒd saate andmebaasi juurde pÀÀseda lihtsa ĂŒhendusteksti abil, mis on antud nimi mongodb://mongo. Sellega ei ole teie koodis ĂŒldse vaja IP-aadresse kasutada.
Kui tulevikus IP-aadressid muutuvad, saate lihtsalt lÔpp-punkte vÀrskendada uue IP-aadressiga, ja teie rakendusi ei pea mingil moel muutma.
Kui kasutate andmebaasi, mis asub kolmandal pool, on tĂ”enĂ€oliselt hosti omanikud andnud teile ĂŒhendamiseks ĂŒhtse ressursi identifikaatori URI. Nii et kui teile on antud IP-aadress, saate lihtsalt kasutada eelnevat meetodit. See nĂ€ide nĂ€itab, et mul on kaks MongoDB andmebaasi, mis asuvad mLab hostis.

Ăks neist on arendajate andmebaas ja teine â tootmisandmebaas. Nende andmebaaside ĂŒhendusread nĂ€evad vĂ€lja jĂ€rgmised â mLab pakub teile dĂŒnaamilist URI-d ja dĂŒnaamilist porti. Nagu nĂ€ete, on need erinevad.

Kuna soovime sellest eristuda, kasutame Kubernetes't ja ĂŒhendame arendajate andmebaasiga. Saate luua Kubernetes'e vĂ€lise teenuse nime, mis annab teile staatilise teenuse, mis suunab liikluse vĂ€list teenust.

See teenus rakendab lihtsat CNAME edastamist tasemel kernel, mis mĂ”jutab tulemuslikkust minimaalselt. TĂ€nu sellele saate kasutada lihtsamat ĂŒhendusreed.
![]()
Kuna vĂ€line nimi kasutab CNAME-i ĂŒmbersuunamist, ei saa seda portide uuenemist teha. SeetĂ”ttu on see lahendus rakendatav ainult staatilistele portidele ja ei saa kasutada dĂŒnaamiliste portide puhul. Kuid tasuta mLab Free Tier pakub vaikimisi kasutajale dĂŒnaamilist porti, ja te ei saa seda muuta. See tĂ€hendab, et dev ja prod jaoks vajate erinevaid ĂŒhenduste kĂ€sklusi. Halba on see, et porti numbrit tuleb tugevalt kodeerida. Kuidas siis portide ĂŒmbersuunamist tööle saada?
Esimene samm on saada IP-aadress URI-st. Kui kÀivitada nslookup kÀsk, hostname vÔi pingida URI, saab andmebaasi IP-aadressi. Kui teenus tagastab mitu IP-aadressi, saab kÔiki neid kasutada objekti lÔpp-punktidena.

Pea meeles, et URI IP-aadressid vĂ”ivad muutuda ette teatamata, seega on nende kasutamine prod-s ĂŒsna riskantne. Sellise IP-aadressiga on vĂ”imalik ĂŒhenduda kaugandmebaasiga, mitte porti nĂ€idates. Seega teostab Kubernetes teenus ĂŒsna transparentselt portide ĂŒmbersuunamist.

Kaartimine, ehk vÀliste ressursside seondamine sisemistega, annab teile vÔimaluse paindlikult neid teenuseid tulevikus klastris kasutada, vÀhendades refaktoreerimise vaeva. See hÔlbustab ka haldamist ning annab arusaama, milliseid vÀliseid teenuseid teie ettevÔte kasutab.
Peagi on see tulemasâŠ

Veidi reklaami đ
AitĂ€h, et olete meiega. Kas teile meeldivad meie artiklid? Kas soovite nĂ€ha rohkem huvitavaid materjale? Toetage meid, tehes tellimuse vĂ”i soovitades meid tuttavatele. , ainulaadne sisenemise taseme serverite analoog, mille oleme teie jaoks vĂ€lja mĂ”elnud: (saadaval on RAID1 ja RAID10 variandid, kuni 24 sĂŒdamikku ja kuni 40GB DDR4).
Kas Dell R730xd on kaks korda odavam Equinixi Tier IV andmete keskuses Amsterdamis? Ainult meie juures Hollandi turul! Dell R420 â 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB â alates $99! Lugege, kuidas
Allikas: habr.com
