Kubernetes

Kubernetes servisna mreža

Kubernetes servisna mreža
Kubernetes ima puno vrsta resursa koji vam pomažu da apstrahirate ideju usluga ili mikrousluga. Na primjer, ako sučelje vaše aplikacije želi komunicirati sa pozadinom, ne treba je zanimati koji pod traži ili čak ni kojoj IP adresi se nada da će zauzeti pozadinski pod. Mahune su izložene putem usluge. (Ako ste tek kubernetes, preporučujem ovaj post da biste bolje razumjeli što su mahune zajedno s drugim važnim konceptima.)

U osnovi, Kubernetes izlaže a pozadinska usluga interno unutar klastera i prednji kraj komunicira s ovom uslugom. Mahune koje nude uslugu mogu se vrlo dobro zamijeniti i nitko ništa ne bi primijetio. No kako značajke vaših aplikacija rastu, tako raste i broj usluga koje trebate održavati. Svaka usluga potencijalno može razgovarati sa svakom drugom uslugom u klasteru, a rezultirajuća mreža naziva se Uslužna mreža.

Postoji mnogo dodataka za Kubernetes koji nam pomažu da pojednostavimo upravljanje ovom uslužnom mrežom. Puno značajki tipki poput TLS-a, automatiziranog uravnoteženja opterećenja, osiguranja API-ja čak i na unutarnjoj mreži itd. Nude ovi dodaci. Mnoge opcije poput Istio, Linkerd i Conduit mogu se integrirati s Kubernetesom kako bi se to postiglo. Istražit ćemo Istio u ovom postu jer je to verzija 1.0 je nedavno najavljeno.

Preduvjeti

Da biste započeli s Istioom, trebat će vam funkcionalni klaster kubernetesa. Tri su načina da se to postigne.

  1. Možete instalirati Minikube za stvaranje klastera s jednim čvorom na vašem lokalnom računalu.
  2. Ili, ako koristite Docker na sustavu Windows ili Mac, možete omogućiti Kubernetes klaster s jednim čvorom u postavkama Dockera.
  3. Ili možete koristiti internetske usluge poput igrališta Katacoda. Koristit ćemo ovo.

Zašto koristiti uslužnu mrežu?

Instaliranje servisne mreže, poput Istio-a, olakšava rad s mikroservisima. Tijekom razvoja ne morate brinuti o činjenici da bi vaša mikro usluga trebala nuditi podršku za međusobni TLS, uravnoteženje opterećenja ili bilo koji drugi aspekt poput otkrivanja usluge. Idealna uslužna mreža omogućuje vam povezivanje mikroservisa, njihovo osiguravanje jednih od drugih i vanjskog svijeta te organizirano upravljanje njima. Neizmjerno pomaže programerima i operaterima.

Instaliranje Istio

Instalacija Istio zahtijeva posjedovanje Kubernetes klastera. Ako imate klaster s jednim čvorom kao što je to slučaj s Minikubeom ili Dockerom na radnoj površini, tada se sve naredbe mogu pokrenuti na vašem lokalnom čvoru. Međutim, ako koristite klaster s više čvorova poput onog koji igralište Katacoda nudi, imajte na umu da se većina naredbi i postupaka postavljanja vrši na glavnom čvoru. Da, utječe na cijeli klaster, ali moramo komunicirati isključivo s glavnim čvorom.

Počinjemo s kloniranjem (ili preuzimanjem) najnovijeg izdanja Istio s Githuba. Korisnici Windowsa možda bi željeli posjetiti ovu stranicu i dobiti odgovarajuće .zip datoteka.

$ curl -L https: // git.io / getLatestIstio | sh -
$ cd istio-1.0.0

Ime repo-a može se s vremenom mijenjati kako dolazi novo izdanje, u vrijeme pisanja ovog članka 1.0.0 je najnovije stabilno izdanje. Ovaj repo sadrži ne samo proširenje mreže mreže već i uzorak aplikacije nazvane BookInfo za potrebe eksperimentiranja. Skripta također dodaje novi direktorij $ PWD / istio-1.0.0 / bin na vašu varijablu PATH.

Ovaj direktorij sadrži istioktl binarni koji se može koristiti za interakciju s klasterom. Korisnici Windowsa mogu jednostavno nazvati binarni element odlaskom u mapu istio-1.0.0 \ bin i pozivanje .\ istioctl pomoću PowerHell-a ili naredbenog retka. Ali to je neobavezni dodatak.

Ako koristite Mac, to možete učiniti pomoću sljedeće naredbe:

$ izvoz PUT = $ PWD / bin: $ PATH

Dalje moramo proširiti naš Kubernetes API s prilagođenim definicijama resursa (CRD) koje nam nudi istio.

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

To bi moglo stupiti na snagu za nekoliko sekundi, a nakon što završi, vaš će kube-apiserver imati ugrađena Istio proširenja. Od ovog trenutka, mogućnosti instalacije razlikuju se ovisno o tome koristite li ovo u proizvodne svrhe ili eksperimentirate s njim u svom izoliranom okruženju.

Pretpostavit ćemo da je ovo drugo i instalirati istio bez TLS provjere autentičnosti.

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

To će stvoriti novi sustav naziva istio-sustav u kojem će biti instalirane sve različite komponente poput istio-pilot i ulaznog prolaza.

Implementacija aplikacije i Istio injektor

Tu dolazi korisnost Istio-a. Istio dodaje proxyje prikolica vašim uslugama i to bez izmjene stvarnog koda vaše aplikacije. Ako je omogućena automatska ubrizgavačka bočna kolica. Imenski prostor možete označiti s istio-injection = enabled i kada se vaša aplikacija rasporedi na ovom imenskom prostoru, sami podovi će imati specijalizirane kontejnere Envoy zajedno sa spremnicima za osnovnu aplikaciju. Na primjer, označimo zadani prostor imena

$ kubectl prostor imena oznaka zadani istio-injection = omogućen

Sada rasporedimo uzorak aplikacije BookInfo u ovom imenskom prostoru. Iz korijenskog direktorija Isitio rep kojeg smo klonirali pokrenite:

$ kubectl prijava -f uzorci / bookinfo / platforma / kube / bookinfo.yaml

Ovdje možete navesti sve mahune koje se izvode:

$ kubectl dobiti mahune

Odaberite bilo koji mahuna od onih i pogledajte njegove detalje. Na primjer, jedan od mahuna iz aplikacije BookInfo u mojoj implementaciji zove se details-v1-6865b9b99d-6mxx9

$ kubectl opisuje mahune / detalje-v1-6865b9b99d-6mxx9

U opisu ćete primijetiti da mahuna sadrži dva spremnika, prvi je komponenta stvarnog pokretanja aplikacije za slike image-bookinfo-details-v1: 1.8.0, a drugi je istio-proxy koji pokreće sliku gcr.io / istio-release / proxyv2: 1.0.0 .

Istio nudi preciznu kontrolu nad mrežom vaše usluge jer ubrizgava te spremnike do samih mahuna u kojima se nalaze vaše aplikacije. Ovo u kombinaciji s jednostavnim za korištenje TLS-om za komunikaciju i fino zrnastom kontrolom prometa jedan je od mnogih razloga zašto velike aplikacije mogu imati koristi od servisne mreže poput Istio-a.

Reference

Stvarna arhitektura ima puno komponenata poput pilota, citadele i miksera, a svaka ima svoju važnu ulogu. Ovdje možete naučiti puno više o tim komponentama i ovdje pokušati implementirati vlastiti mikroservis.

Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...
Instalirajte najnoviju strategiju igre OpenRA na Ubuntu Linux
OpenRA je Libre / Free Real Time strateški pokretač igre koji stvara rane Westwoodove igre poput klasične Command & Conquer: Red Alert. Distribuirani ...
Instalirajte najnoviji Dolphin Emulator za Gamecube i Wii na Linux
Dolphin Emulator omogućuje vam igranje odabranih Gamecube i Wii igara na Linux osobnim računalima (PC). Dolphin Emulator je slobodno dostupan i emula...