Kubernetes

Kubernetes servisa tīkls

Kubernetes servisa tīkls
Kubernetes ir daudz resursu veidu, kas palīdz abstraktēt pakalpojumu vai mikropakalpojumu ideju. Piemēram, ja jūsu lietotnes priekšējā daļa vēlas mijiedarboties ar aizmuguri, tai nav jārūpējas par to, kuru pogu tā meklē, vai pat par to, kura IP adrese cer, ka aizmugures poga aizņem. Pākstis tiek pakļautas, izmantojot servisu. (Ja esat jauns Kubernetes lietotājs, es iesaku šo ziņu, lai labāk izprastu, kas ir pākstis kopā ar citiem svarīgiem jēdzieniem.)

Būtībā Kubernetes atklāj a backend pakalpojums iekšēji klastera iekšpusē un priekšgals mijiedarbojas ar šo pakalpojumu. Pākstis, kas piedāvā pakalpojumu, var ļoti labi nomainīt, un neviens neko nepamanīs. Bet, pieaugot lietojumprogrammu funkcijām, pieaug arī to pakalpojumu skaits, kas jums jāuztur. Katrs pakalpojums, iespējams, var sarunāties ar katru citu klastera pakalpojumu, un iegūtais tīkls tiek saukts par Pakalpojuma tīkls.

Kubernetes ir daudz papildinājumu, kas mums palīdz vienkāršot šī pakalpojuma tīkla pārvaldību. Šie papildinājumi piedāvā daudzas atslēgas funkcijas, piemēram, TLS, automatizētu slodzes līdzsvarošanu, API nodrošināšanu pat iekšējā tīklā utt. Lai to paveiktu, Kubernetes var integrēt daudzas iespējas, piemēram, Istio, Linkerd un Conduit. Šajā ziņojumā mēs apskatīsim Istio, jo tā ir 1. versija.Nesen tika paziņots par 0.

Priekšnoteikumi

Lai sāktu darbu ar Istio, jums būs nepieciešama strādājoša kubernetes kopa. Ir trīs veidi, kā to panākt.

  1. Varat instalēt Minikube, lai vietējā mašīnā izveidotu viena mezgla kopu.
  2. Vai arī, ja izmantojat Docker operētājsistēmā Windows vai Mac, Docker iestatījumos varat iespējot viena mezgla Kubernetes kopu.
  3. Vai arī varat izmantot tiešsaistes pakalpojumus, piemēram, Katacoda rotaļu laukumu. Mēs to izmantosim.

Kāpēc izmantot pakalpojumu tīklu?

Pakalpojuma tīkla, piemēram, Istio, uzstādīšana atvieglo darbu ar mikropakalpojumiem. Izstrādājot, jums nav jāuztraucas par to, ka jūsu mikropakalpojumam būtu jāpiedāvā atbalsts savstarpējai TLS, slodzes līdzsvarošanai vai jebkuram citam aspektam, piemēram, pakalpojuma atklāšanai. Ideāls servisa tīkls ļauj savienot mikropakalpojumus, nodrošināt tos savā starpā un no ārpasaules, kā arī organizēti pārvaldīt tos. Tas ārkārtīgi palīdz gan izstrādātājiem, gan operatoriem.

Istio instalēšana

Lai instalētu Istio, nepieciešama Kubernetes kopa. Ja jums ir viena mezglu kopa, piemēram, Minikube vai Docker darbvirsmā, visas komandas var palaist vietējā mezglā. Tomēr, ja izmantojat vairāku mezglu kopu, tādu, kādu piedāvā Katacoda rotaļu laukums, paturiet prātā, ka lielākā daļa komandu un iestatīšanas procedūru tiek veiktas galvenajā mezglā. Jā, tas ietekmē visu kopu, taču mums ir jāsadarbojas tikai ar galveno mezglu.

Mēs sākam ar jaunākā Istio laidiena klonēšanu (vai lejupielādi) no Github. Windows lietotāji varētu vēlēties apmeklēt šo lapu un iegūt atbilstošu .zip failu.

$ čokurošanās -L https: // git.io / getLatestIstio | sh -
$ cd istio-1.0.0

Repo nosaukums laika gaitā var mainīties, kad tiek parādīts jaunāks laidiens, šī rakstīšanas laikā 1.0.0 ir jaunākais stabilais izlaidums. Šajā repo ir ne tikai servisa tīkla paplašinājums, bet arī eksperimenta nolūkos lietotnes paraugs ar nosaukumu BookInfo. Skripts arī pievieno jauno direktoriju $ PWD / istio-1.0.0 / bin jūsu PATH mainīgajam.

Šajā direktorijā ir istioctl binārs, ko var izmantot, lai mijiedarbotos ar kopu. Windows lietotāji var vienkārši piezvanīt bināram, dodoties uz mapi istio-1.0.0 \ bin un zvana .\ istioctl izmantojot PowerShell vai komandu uzvedni. Bet tas ir izvēles papildinājums.

Ja izmantojat Mac, to varat izdarīt, izmantojot šādu komandu:

$ export PATH = $ PWD / bin: $ PATH

Tālāk mums jāpaplašina mūsu Kubernetes API ar pielāgotajām resursu definīcijām (CRD), kuras mums nodrošina istio.

$ kubectl apply -f install / kubernetes / helm / istio / templates / crds.yaml

Tas var stāties spēkā dažu sekunžu laikā, un, kad tas būs izdarīts, jūsu kube-apiserver būs iebūvēti Istio paplašinājumi. Turpmāk instalēšanas iespējas mainās atkarībā no tā, vai jūs to izmantojat ražošanas vajadzībām vai eksperimentējat ar to savā izolētajā vidē.

Mēs pieņemsim, ka tas ir pēdējais gadījums, un instalēsim istio bez TLS autentifikācijas.

$ kubectl Apply -f install / kubernetes / istio-demo.yaml

Tas radīs jaunu nosaukumvietas istio sistēmu, kurā tiks instalēti visi dažādi komponenti, piemēram, istio-pilot un ieejas vārteja.

Lietojumprogrammu ieviešana un Istio inžektors

Šeit nāk Istio lietderība. Istio jūsu pakalpojumiem pievieno blakusvāģu starpniekserverus, un tas tiek darīts, nemainot lietojumprogrammas faktisko kodu. Ja ir iespējots automātiskais istio-blakusvāģa inžektors. Vārdamvietu varat apzīmēt ar istio-injection = iespējotu, un, kad jūsu lietojumprogramma ir izvietota šajā nosaukumvietā, pašām pākstīm būs specializēti sūtņa konteineri kopā ar galvenās lietojumprogrammas konteineriem. Piemēram, iezīmēsim noklusējuma nosaukumvietu

$ kubectl etiķetes nosaukumvieta noklusējuma istio-injection = iespējota

Tagad izvietosim BookInfo lietotnes paraugu šajā vārdu telpā. No Isitio rep saknes direktorija, kuru mēs klonējām, palaidiet:

$ kubectl piemēro -f paraugus / bookinfo / platform / kube / bookinfo.yaml

Visas pākstis var uzskaitīt šeit:

$ kubectl iegūst pākstis

Izvēlieties jebkuru pāksti no tām un skatiet tās detaļas. Piemēram, manā izvietojumā viena no lietotnes BookInfo pākstīm ir nosaukta details-v1-6865b9b99d-6mxx9

$ kubectl apraksta pākstis / detaļas-v1-6865b9b99d-6mxx9

Aprakstā pamanīsit, ka pāksts satur divus konteinerus, pirmais ir faktiskās attēla lietojumprogrammas piemēru-bookinfo-details-v1 sastāvdaļa: 1.8.0 un otrais ir istio-proxy, kas darbojas ar attēlu gcr.io / istio-release / proxyv2: 1.0.0 .

Istio piedāvā precīzu kontroli pār jūsu pakalpojumu sietu, jo tas injicē šos konteinerus līdz pat pākstīm, kur atrodas jūsu lietojumprogrammas. Tas apvienojumā ar ērti lietojamo TLS saziņai un smalkgraudainai satiksmes kontrolei ir viens no daudzajiem iemesliem, kāpēc lielas lietojumprogrammas var gūt labumu no tādu pakalpojumu tīkla kā Istio.

Atsauces

Patiesajā arhitektūrā ir daudz sastāvdaļu, piemēram, Pilot, Citadel un Mixer, katrai no tām ir sava svarīgā loma. Šeit varat uzzināt daudz vairāk par šiem komponentiem un šeit mēģināt izvietot savu mikropakalpojumu.

AppyMouse ekrāna skārienpaliktnis un peles rādītājs Windows planšetdatoriem
Planšetdatoru lietotājiem bieži pietrūkst peles rādītāja, it īpaši, ja viņi parasti lieto klēpjdatorus. Skārienekrāna viedtālruņiem un planšetdatoriem...
Vidējā peles poga nedarbojas sistēmā Windows 10
The peles vidējā poga palīdz jums ritināt garas tīmekļa lapas un ekrānus ar lielu datu daudzumu. Ja tas apstājas, jūs galu galā izmantosiet tastatūru,...
Kā nomainīt peles kreiso un labo pogu operētājsistēmā Windows 10
Tas ir diezgan normāli, ka visas datora peles ierīces ir ergonomiski izstrādātas lietotājiem ar labo roku. Bet ir pieejamas peles ierīces, kas ir īpaš...