
Istio â mugav tööriist hajutatud rakenduste ĂŒhendamiseks, kaitsmiseks ja jĂ€lgimiseks. Istios kasutatakse erinevaid tehnoloogiaid, et skaleerida ja hallata tarkvara, sealhulgas konteinerid rakenduskoodi ja sĂ”ltuvuste pakkimiseks ning Kubernetes nende konteinerite haldamiseks. SeetĂ”ttu peate Istio kasutamiseks teadma, kuidas mitme teenusega rakendus nende tehnoloogiate pĂ”hjal töötab. ilma Istio. Kui need tööriistad ja mĂ”isted on teile juba tuttavad, vĂ”ite selle juhendi julgelt vahele jĂ€tta ja minna otse jaotisse. vĂ”i laienduse installimine .
See on samm-sammult juhend, kus kĂ€sitleme kogu protsessi lĂ€htekoodist kuni konteinerini GKE-s, et saaksite nende tehnoloogiate ĂŒldise arusaama nĂ€ite pĂ”hjal. NĂ€ete ka, kuidas Istio nende tehnoloogiate vĂ”imalusi Ă€ra kasutab. Eeldatakse, et te ei tea konteineritest, Kubernetesest, teenuseteemast ega Istio'st midagi.
Ălesanded
Selles juhendis tĂ€idate jĂ€rgmised ĂŒlesanded:
- Lihtsa hello world rakenduse uurimine, millel on mitu teenust.
- Rakenduse kÀivitamine lÀhtekoodist.
- Rakenduse pakkimine konteineritesse.
- Kubernetesi klastrite loomine.
- Konteinerite juurutamine klastri.
Enne alustamist
JĂ€rgige juhiseid, et aktiveerida Kubernetes Engine API:
- Minge lehele Google Cloud Platformi konsoolis.
- Looge vÔi valige projekt.
- Oodake, kuni API ja sellega seotud teenused aktiveeritakse. See vÔib vÔtta mitu minutit.
- Veenduge, et Google Cloud Platformi projekt on arveldamiseks seadistatud. .
Selles juhendis saate kasutada Cloud Shell'i, mis valmistab ette virtuaalmasina Debiani-pÔhise Linuxiga, vÔi Linuxi vÔi macOSi arvutit.
Variant A: Cloud Shell'i kasutamine
Cloud Shell'i kasutamise eelised:
- Python 2 ja Python 3 arenduskeskkonnad (sealhulgas virtualenv) on tÀielikult seadistatud.
- KÀskude tööriistad gcloud, docker, git ja kubectl, mida me kasutame, on juba installitud.
- Teil on valik mitmeid :
- , mis avatakse Cloud Shell'i akna ĂŒlaosas redigeerimise ikooni klĂ”psates.
- Emacs, Vim vÔi Nano, mis avatakse Cloud Shell'i kÀsurealt.
Cloud Shell'i kasutamiseks :
- Aktiveerige Cloud Shell
- âUuesti vĂ€ljaandmineâ Aktiveeri Cloud Shell (Aktiveeri Cloud Shell) GCP konsooli akna ĂŒlaosas.
![]()
Akna alumises osas avaneb uues aknas Cloud Shell koos kÀsureaga.

Valik B: kasutada kÀsurea tööriistu kohalikult
Kui töötate Linuxi vÔi macOS arvutis, peate seadistama ja installima jÀrgmised komponendid:
Seadistage .
koos kÀsurea tööriistaga gcloud.
Installige kubectl â kĂ€surea tööriist GCP-ga töötamiseks .
gcloud components install kubectlInstallige . Te kasutate kÀsurea tööriista docker, et luua konteineripilte nÀidisrakenduse jaoks.
Installige , et saada nÀidisrakendus GitHubist.
Koodi nÀidislaadimine
Laadi alla lÀhtekood helloserver:
git clone https://github.com/GoogleCloudPlatform/istio-samplesLiikuge nÀidisrakenduse katalooge:
cd istio-samples/sample-apps/helloserver
Mitme teenusega rakenduse uurimine
NĂ€idisrakendus on kirjutatud Pythonis ja koosneb kahest komponendist, mis suhtlevad :
- server: lihtne server ĂŒhe lĂ”pp-punktiga GET, /, mis trĂŒkib âhello worldâ konsooli.
- loadgen: skript, mis suunab liiklust server, kohandatava pÀringute arvu sekundis.

Rakenduse kÀivitamine lÀhtekoodist
Rakenduse nÀidiseks kÀitamiseks avage see Cloud Shellis vÔi oma arvutis.
1) Kataloogis istio-samples/sample-apps/helloserver kÀivitage server:
python3 server/server.pyKÀivitamisel kuvatakse jÀrgmine: server INFO:root:Serveri kÀivitamine...
2) Avage teine terminaliakna, et saata pÀringud. Kui kasutate Cloud Shelli, klÔpsake lisaikoonil, et avada teine sessioon. server3) Saatke pÀring
curl http://localhost:8080 server:
server vastab:4) Kataloogist, kuhu olete koode laadinud, minge katalooge, mis sisaldab
Hello World!cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen loadgen:
5) Looge jÀrgmised keskkonnamuutujad:export SERVER_ADDR=http://localhost:8080 export REQUESTS_PER_SECOND=5
6) KĂ€ivitagevirtualenv --python python3 env virtualenv:
7) Aktiveerige virtuaalne keskkond:source env/bin/activate
8) Installige nÔudmisedpip3 install -r requirements.txt loadgen:
9) KĂ€ivitagepython3 loadgen.py loadgen:
kuvatakse ligikaudu jÀrgmine teade:KÀivitamisel kuvatakse jÀrgmine: loadgen KÀivitamine loadgen: 2019-05-20 10:44:12.448415 5 pÀringut on lÔpetatud aadressile http://localhost:8080
Teises terminaliaknaskuvatakse ligikaudu jÀrgmised teated: server 127.0.0.1 - - [21/Jun/2019 14:22:01] "GET / HTTP/1.1" 200 - INFO:root:GET pÀring, Path: / Headers: Host: localhost:8080 User-Agent: python-requests/2.22.0 Accept-Encoding: gzip, deflate Accept: */*
127.0.0.1 - - [21/Juun/2019 14:22:01] "GET / HTTP/1.1" 200 -
INFO:root:GET pÀring,
Teekond: /
PĂ€id:
Host: localhost:8080
User-Agent: python-requests/2.22.0
Accept-Encoding: gzip, deflate
Accept: */*VĂ”rgu seisukohalt töötab kogu rakendus ĂŒhel hostil (kohalikus arvutis vĂ”i virtuaalses Cloud Shell'is). SeetĂ”ttu saab kasutada localhost, et saata pĂ€ringuid server.
10) Rakenduse peatamiseks loadgen ja server, sisestage Ctrl-c iga terminaliaknas.
11) Terminaliaknas loadgen deaktiveerige virtuaalne keskkond:
deactivateRakenduse konteineritesse pakendamine
Et rakendust GKE-s kĂ€ivitada, tuleb nĂ€idisrakendus pakendada â server ja loadgen â in . Konteiner on viis rakenduse pakendamiseks, et isoleerida see keskkonnast.
Rakenduse konteinerisse pakendamiseks on vajalik Dockerfile. Dockerfile â tekstifail, kus mÀÀratletakse kĂ€sud rakenduse lĂ€htekoodi ja selle sĂ”ltuvuste koostamiseks PĂ€rast koostamist laadite pildi konteineriregistrisse, nĂ€iteks Docker Hub'i vĂ”i .
NĂ€idis sisaldab juba Dockerfile kuna server ja loadgen kĂ”iki vajalikke kĂ€ske, et pilte koostada. Allpool â Dockerfile kuna server:
VĂTA python:3-slim kui pĂ”hja
VĂTA pĂ”hjast kui ehitaja
RUN apt-get -qq uuenda
&& apt-get install -y --no-install-recommends
g++
&& rm -rf /var/lib/apt/lists/*
# Luba jÀÀklogging
VĂTA pĂ”hjast kui lĂ”pp
ENV PYTHONUNBUFFERED=1
RUN apt-get -qq uuenda
&& apt-get install -y --no-install-recommends
wget
WORKDIR /helloserver
# Grab packages from builder
COPY --from=builder /usr/local/lib/python3.7/ /usr/local/lib/python3.7/
# Lisa rakendus
COPY . .
EXPOSE 8080
ENTRYPOINT [ "python", "server.py" ]- Meeskond VĂTA python:3-slim kui pĂ”hja kĂ€seb Dockeril kasutada viimast pĂ”hjana.
- Meeskond COPY. . kopeerib lĂ€htekoodid praegusesse töökatalooge (meie puhul ainult server.py) konteineri failisĂŒsteemi.
- ENTRYPOINT mÀÀrab kÀsu, mida kasutatakse konteineri kÀivitamiseks. Meie puhul kattub see kÀsk peaaegu sellega, mida te kasutasite lÀhtekoodist kÀivitamiseks. server.py nÀitab, et
- Meeskond EXPOSE ootab andmeid kaudu porti server . See kÀsk ei 8080pakku ports konteineri kÀivitamisel. 8080 Rakenduse konteinerimiseks ette valmistamine
1) MÀÀrake jÀrgmised keskkonnamuutujad. Asendage
1) MÀÀrake jÀrgmised keskkonnamuutujad. Asendage PROJECT_ID oma GCP projekti ID-ga.
export PROJECT_ID="PROJECT_ID"export GCR_REPO="preparing-istio"Kasutatavate vÀÀrtustega PROJECT_ID ja GCR_REPO Dokkeri pilti mÀÀrate, kui koostate ja saadate selle privaatse konteineri registrisse.
2) MÀÀrake vaikimisi GCP projekt kÀsurea tööriistale gcloud.
gcloud config set project $PROJECT_ID3) MÀÀrake vaikimisi tsoon kÀsurea tööriistale gcloud.
gcloud config set compute/zone us-central1-b4) Veenduge, et konteineri registri teenus oleks GCP projektis lubatud.
gcloud services enable containerregistry.googleapis.comServeri konteinerimine
Liikuge katalooge, kus nÀidis asub server:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/Koostage pilt jÀrgmise abil Dockerfile ja keskkonnamuutujatega, mille mÀÀrasite varem:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 .
Parameeter -t tÀhistab Dokkeri sildi. See on pildi nimi, mida kasutate konteineri juurutamisel.
- Saatke pilt konteineri registrisse:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1
Konteinerimise laadimisgenereerija
1) Liikuge katalooge, kus nÀidis asub loadgen:
cd ../loadgen2) Koostage pilt:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1 .3) Saatke pilt konteineri registrisse:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1Piltide nimekirja vaatamine
Vaadake pilte registris ja veenduge, et pildid on saadetud:
gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istioKÀsk annab vÀlja just saadetud piltide nimed:
NIMI
gcr.io/PROJECT_ID/preparing-istio/helloserver
gcr.io/PROJECT_ID/preparing-istio/loadgenGKE klastri loomine.
Need konteinerid oleks saanud kĂ€ivitada Cloud Shelli virtuaalmasinas vĂ”i arvutis kĂ€suga docker run. Kuid tootmis keskkonnas on vajalik viis konteinerite keskse orkestreerimise vĂ”imaldamiseks. NĂ€iteks on vajalik sĂŒsteem, mis jĂ€lgib, et konteinerid töötaksid alati, ja on vaja vĂ”imalust suurendada mahutavust ning kĂ€ivitada tĂ€iendavad konteinerite eksemplarid, kui liiklus suureneb.
Konteinerirakenduste kĂ€ivitamiseks saab kasutada . GKE on konteinerite orkestreerimisplatvorm, mis ĂŒhendab virtuaalsed masinad klastriks. Iga virtuaalne masin nimetatakse sĂ”lmeks. GKE klastrid pĂ”hinevad avatud lĂ€htekoodiga Kubernetes klastrihalduse sĂŒsteemil. Kubernetes pakub mehhanisme, kuidas suhelda klastriga.
GKE klastri loomine:
1) Klastri loomine:
gcloud container clusters create istioready
--cluster-version latest
--machine-type=n1-standard-2
--num-nodes 4Meeskond gcloud loob istioready klastri GCP projektis ja vaikimisi tsoonis, mille te mÀÀrate. Soovitame vÀhemalt 4 sÔlme ja virtuaalmasinat Istio kÀivitamiseks. .
Meeskond loob klastrit vaid mÔne minutiga. Kui klaster on valmis, annab meeskond sarnase tulemuse. .
2) Sisestage andmed kÀsurea tööriista. , et hallata klastrit:
gcloud container clusters get-credentials istioready3) NĂŒĂŒd saab Kubernetesega suhelda kubectl. NĂ€iteks jĂ€rgmise kĂ€su abil saab teada sĂ”lmede staatuse:
kubectl get nodesKÀsk vÀljastab nimekirja sÔlmedest:
NIMI STAAKUS ROLLID VANUS VERSIOON
gke-istoready-default-pool-dbeb23dc-1vg0 Valmis <none> 99s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-36z5 Valmis <none> 100s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-fj7s Valmis <none> 99s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-wbjw Valmis <none> 99s v1.13.6-gke.13Kubernetesi pÔhikontseptsioonid
Skeemil on kujutatud rakendust GKE-s:

Enne konteinerite juurutamist GKE-s tutvuge Kubernetesi pÔhikontseptsioonidega. LÔpus on lingid, kui soovite rohkem teada.
- SĂ”lmed ja klastrid. GKE-s on sĂ”lm virtuaalne masin. Teistel Kubernetes platvormidel vĂ”ib sĂ”lm olla arvuti vĂ”i virtuaalne masin. Klaster on sĂ”lmede kogum, mida saab pidada ĂŒhtseks ja kuhu te juurutate konteineriseeritud rakenduse.
- Pod'id. Kubernetesis kĂ€ivitatakse konteinerid pod'ides. Pod Kubernetesis on jagamatu ĂŒksus. Pod sisaldab ĂŒhte vĂ”i mitut konteinerit. Te kĂ€ivitate konteinerid server ja loadgen erinevates pod'ides. Kui pod'is on mitu konteinerit (nĂ€iteks rakenduse server ja ), siis konteinerid haldatakse kui ĂŒhtne objekti ja jagavad pod'i ressursse.
- Juhtimised. Kubernetesis on juhtimine objekt, mis esindab identsete pod'ide kogumit. Juhtimine kÀivitab mitu pod'i koopiat, mis on jaotatud klastrite sÔlmedele. Juhtimine asendab automaatselt pod'id, mis on ebaÔnnestunud vÔi ei reageeri.
- Kubernetes Service. Kui te kĂ€ivitate rakenduse koodi GKE's, muutub ĂŒhendus loadgen ja server. Kui kĂ€ivitasite teenuseid virtuaalses Cloud Shelli masina vĂ”i arvuti peal, saatsite pĂ€ringud server aadressile localhost:8080. PĂ€rast GKE'sse juurutamist kĂ€ivitatakse pod'id saadaval olevates sĂ”lmedes. Vaikimisi ei saa te juhtida, millisel sĂ”lmel pod on kĂ€ivitatud, seega ei oma IP-aadresse.
IP-aadressi saamiseks server, tuleb mÀÀratleda vĂ”rgustiku abstraktsioon pod'ide kohal. See on . Kubernetesi teenus pakub pĂŒsivat lĂ”pp-punkti podâide rĂŒhmale. On mitmeid . server kasutab LoadBalancer, mis pakuvad vĂ€lisest IP-aadressi, et suhelda server klastri vĂ€ljapoolt.
Kubernetes sisaldab ka sisseehitatud DNS-sĂŒsteemi, mis mÀÀrab DNS-nimesid (nĂ€iteks helloserver.default.cluster.local), teenustele. TĂ€nu sellele saavad podâid klastri sees suhelda teiste podâidega pĂŒsiva aadressi kaudu. DNS-nime ei saa kasutada klastri vĂ€lised, nĂ€iteks Cloud Shellis vĂ”i arvutis.
Kubernetesi manifestid
Kui sa kÀ skite rakenduse lÀhtekoodist, kasutasite imperatiivset kÀsku python3
server.py
Imperatiivsuse mĂ”isted tĂ€hendavad tegusĂ”na: âtee sedaâ.
Kubernetes kasutab . See tĂ€hendab, et me ei ĂŒtle Kubernetesile, mida tĂ€pselt teha, vaid kirjeldame soovitud olekut. NĂ€iteks kĂ€ivitab ja peatab Kubernetes podâe vastavalt vajadusele tagamaks, et sĂŒsteemi tegelik olek vastaks soovitule.
Soovitud olekut mÀÀrate te manfestides, vĂ”i failides . YAML-fail sisaldab spetsifikatsioone ĂŒhe vĂ”i mitme Kubernetesâi objekti kohta.
NÀites on YAML-fail server ja loadgen. Iga YAML fail mÀÀrab Kubernetes'i objekti ja teenuse soovitud oleku.
server.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: helloserver
spec:
selector:
matchLabels:
app: helloserver
replicas: 1
template:
metadata:
labels:
app: helloserver
spec:
terminationGracePeriodSeconds: 5
restartPolicy: Always
containers:
- name: main
image: gcr.io/google-samples/istio/helloserver:v0.0.1
imagePullPolicy: Always- kind mÀÀrab objekti tĂŒĂŒbi.
- metadata.name mÀÀrab juurutamise nime.
- Esimene vÀli spec sisaldab soovitud oleku kirjeldust.
- spec.replicas mÀÀrab soovitud pod'ide arvu.
- Jaotis spec.template mÀÀratleb pod'i ŃĐ°Đ±Đ»ĐŸĐœ. Pod'i spetsifikatsioonis on vĂ€li pilt, kus mÀÀratakse pildi nimi, mida tuleb konteineriregistrist saada.
Teenust mÀÀratletakse jÀrgmiselt:
apiVersion: v1
kind: Service
metadata:
name: hellosvc
spec:
type: LoadBalancer
selector:
app: helloserver
ports:
- name: http
port: 80
targetPort: 8080- LoadBalancer: kliendid saadavad pĂ€ringud koormuse tasakaalustaja IP-aadressile, millel on pĂŒsiv IP-aadress ja mis on kergesti kĂ€ttesaadav klastri vĂ€ljast.
- targetPort: nagu mĂ€letate, kĂ€sk EXPOSE 8080 ĂŒhes Dockerfile ei mÀÀranud porte. Te mÀÀrate pordi 8080, et oleks vĂ”imalik suhelda konteineriga server klastri vĂ€ljast. Meie puhul hellosvc.default.cluster.local:80 (lĂŒhipealkiri: hellosvc) vastab pordile 8080 podi IP-aadressid helloserver.
- port: see on porti number, kuhu teised teenused klastris saadavad pÀringud.
loadgen.yaml
Juhtimise objekt loadgen.yaml on sarnane server.yaml. Erinevus seisneb selles, et juhtimise objekt sisaldab jaotist env. See mÀÀratleb keskkonnamuutujad, mis on vajalikud loadgen ja mille olete mÀÀranud rakenduse lÀhtekoodist kÀivitamisel.
apiVersion: apps/v1
kind: Deployment
metadata:
name: loadgenerator
spec:
selector:
matchLabels:
app: loadgenerator
replicas: 1
template:
metadata:
labels:
app: loadgenerator
spec:
terminationGracePeriodSeconds: 5
restartPolicy: Always
containers:
- name: main
image: gcr.io/google-samples/istio/loadgen:v0.0.1
imagePullPolicy: Always
env:
- name: SERVER_ADDR
value: "http://hellosvc:80/"
- name: REQUESTS_PER_SECOND
value: "10"
resources:
requests:
cpu: 300m
memory: 256Mi
limits:
cpu: 500m
memory: 512MiJah loadgen ei vĂ”ta vastu sissetulevaid pĂ€ringuid, vĂ€ljale type on mĂ€rgitud ClusterIP. See tĂŒĂŒp annab pĂŒsiva IP-aadressi, mida saavad kasutada klastris olevad teenused, kuid see IP-aadress ei ole saadaval vĂ€listele klientidele.
apiVersion: v1
kind: Service
metadata:
name: loadgensvc
spec:
type: ClusterIP
selector:
app: loadgenerator
ports:
- name: http
port: 80
targetPort: 8080Konteinerite juurutamine GKE-is
1) Liikuge katalooge, kus nÀidis asub server:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/2) Avage server.yaml tekstiredaktorist.
3) Asendage nimi vÀljale pilt teie Docker pildi nimel.
image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1Asenda PROJECT_ID oma GCP projekti ID-ga.
4) Salvesta ja sulge server.yaml.
5) Suvige YAML-fail Kubernetesesse:
kubectl apply -f server.yamlPÀrast edukat tÀitmist annab kÀsk jÀrgmise koodi:
deployment.apps/helloserver created
service/hellosvc created6) Liikuge katalooge, kus asub loadgen:
cd ../loadgen7) Avage loadgen.yaml tekstiredaktorist.
8) Asenda nimi vÀlja pilt teie Docker pildi nimel.
image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1Asenda PROJECT_ID oma GCP projekti ID-ga.
9) Salvesta ja sulge loadgen.yaml, sulge tekstiredaktor.
10) Suvige YAML-fail Kubernetesesse:
kubectl apply -f loadgen.yamlPÀrast edukat tÀitmist annab kÀsk jÀrgmise koodi:
deployment.apps/loadgenerator created
service/loadgensvc created11) Kontrolli podide staatust:
kubectl get podsKÀsk nÀitab staatust:
NAME READY STATUS RESTARTS AGE
helloserver-69b9576d96-mwtcj 1/1 Running 0 58s
loadgenerator-774dbc46fb-gpbrz 1/1 Running 0 57s12) TÔmmake rakenduse logid podist loadgen. Asenda POD_ID eelneva vastuse ID-ga.
kubectl logs loadgenerator-POD_ID13) Saage vÀlised IP-aadressid hellosvc:
kubectl get serviceKÀsku vastus nÀeb vÀlja umbes nii:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hellosvc LoadBalancer 10.81.15.158 192.0.2.1 80:31127/TCP 33m
kubernetes ClusterIP 10.81.0.1 443/TCP 93m
loadgensvc ClusterIP 10.81.15.155 80/TCP 4m52s14) Saatke pÀring hellosvc: asenda EXTERNAL_IP vÀlise IP-aadressiga hellosvc.
curl http://EXTERNAL_IPHakkame tegelema Istio'ga
Teil on juba GKE's rakendus, mis on juurutatud. loadgen vÔib kasutada Kubernetes DNS-i (hellosvc:80), et saata pÀringuid server, ja saate suunata pÀringud server vÀlist IP-aadressi kaudu. Kuigi Kubernetesel on palju vÔimalusi, puudub teave teenuste kohta:
- Kuidas teenused omavahel suhtlevad? Millised on teenuste vahelised suhted? Kuidas liigub liiklus teenuste vahel? Te teate, et loadgen saab pĂ€ringuid server, aga kujutage ette, et te ei tea rakendusest midagi. Nendele kĂŒsimustele vastamiseks vaatame GKE's töötavate podide nimekirja.
- MÔÔdikud. Kui kaua server vastab sissetulevale pÀringule? Kui palju pÀringute sekundis jÔuab serverisse? Kas ta vÀljastab vigu?
- Julgeoleku andmed. Liiklus loadgen ja server liigub lihtsalt lÀbi HTTP vÔi ?
IgaĂŒhele nendele kĂŒsimustele vastab Istio. Selleks paigaldab Istio sidecar-proksi iga pod'i juurde. Proksi Envoy pĂŒĂŒab kinni kogu sissetuleva ja vĂ€ljuva liikluse rakenduse konteinerites. See tĂ€hendab, et server ja loadgen saab sidecar-proksi Envoy kaudu, ja kogu liiklus loadgen kellele server möödub Envoy proksi kaudu.
Prokside vahelised ĂŒhendused moodustavad teenuste vĂ”rgu. Teenuste vĂ”rgu arhitektuur pakub kontrolleetappi Kubernetes'e kohal.

Kuna Envoy proksi töötavad oma konteinerites, saab Istio paigaldada GKE klastri peale, muutes rakenduskoodi pea olematult. Kuid olete teinud mÔningaid ettevalmistusi rakenduse haldamiseks Istio abil:
- Teenused kÔikide konteinerite jaoks. Juhtimisplaanidele server ja loadgen on seotud Kubernetes teenuse kaudu. I even loadgen, millele ei laeku sisendeid, on teenus.
- Teenuste portidel peavad olema nimed. Kuigi GKE teenuste portide nimed vÔivad olla nimeta, nÔuab Istio vastavalt oma protokollile. YAML failis on sadam server nimetatakse http, sest server kasutab protokolli HTTP. Kui teenus oleks kasutanud gRPC, oleksite sadama nimetanud grpc.
- Paigaldi on mĂ€rgitud. Seega saate kasutada Istio liikluse haldamise funktsioone, nĂ€iteks liikluse jagamist ĂŒhe teenuse versioonide vahel.
Istio paigaldamine
Istio saab installida kahte moodi. Saate vĂ”i klastris. Istio on GKE abil on lihtne hallata Istio paigaldamist ja vĂ€rskendusi GKE klassi elutsĂŒkli jooksul. Kui vajate kĂ”ige uuemat versiooni Istioâst vĂ”i rohkem kontrolli Istio juhtpaneeli konfiguratsiooni ĂŒle, installige avatud lĂ€htekoodiga versioon, mitte Istio on GKE laiendus. Ăige lĂ€henemise leidmiseks lugege artiklit .
Valige valik, tutvuge vastava juhendiga ja jÀrgige juhiseid, et installida Istio klastris. Kui soovite kasutada Istio uut loodud rakendusega, nimede ruumidesse default.
Kustutus
Kuna Google Cloud Platformi kontolt vÔetakse tasu kasutatud ressursside eest, kustutage konteineriklaster, kui olete Istio installinud ja nÀidiserakendusega katsetanud. Sellega eemaldatakse kÔik klassi ressursid, nÀiteks arvutusnÀidikud, kettad ja vÔrguressursid.
Mis edasi?
Tutvuge jÀrgmiste tehnoloogiatega:
Tutvuge jÀrgmiste tööriistadega:
Tutvuge Kubernetes'e mÔisted:
Allikas: habr.com
