I-Istio iyithuluzi elikahle lokuxhuma, ukuvikela nokuqapha izinhlelo zokusebenza ezisabalalisiwe. I-Istio isebenzisa ubuchwepheshe obuhlukahlukene ukuze iqhube futhi iphathe isofthiwe esikalini, okuhlanganisa iziqukathi ukupakisha ikhodi yohlelo lokusebenza nokuncika ukuze kusetshenziswe, kanye ne-Kubernetes yokuphatha lezo ziqukathi. Ngakho-ke, ukuze usebenze ne-Istio kufanele wazi ukuthi uhlelo lokusebenza olunamasevisi amaningi asekelwe kulobu buchwepheshe lusebenza kanjani ngaphandle Istio. Uma lawa mathuluzi nemiqondo sekuvele ujwayelene nawe, zizwe ukhululekile ukweqa lesi sifundo futhi uye ngqo esigabeni
Lona umhlahlandlela wesinyathelo ngesinyathelo lapho sizohamba kuyo yonke inqubo kusukela kukhodi yomthombo kuya esitsheni se-GKE ukuze uthole ukuqonda okuyisisekelo kwalezi zobuchwepheshe ngesibonelo. Uzobona nokuthi i-Istio iwasebenzisa kanjani amandla alobu buchwepheshe. Lokhu kuthatha ukuthi awazi lutho ngeziqukathi, i-Kubernetes, izinsiza, noma i-Istio.
Imisebenzi
Kulesi sifundo, uzoqedela le misebenzi elandelayo:
- Ukufunda uhlelo lokusebenza olulula lomhlaba olunamasevisi amaningi.
- Qalisa uhlelo lokusebenza kusuka kukhodi yomthombo.
- Ukupakisha uhlelo ezitsheni.
- Ukudala iqoqo le-Kubernetes.
- Ukukhipha iziqukathi zibe yiqoqo.
Ngaphambi kokuthi uqale
Landela imiyalelo ukuze unike amandla i-Kubernetes Engine API:
- Iya ku
Ikhasi le-Kubernetes Engine kukhonsoli ye-Google Cloud Platform. - Dala noma khetha iphrojekthi.
- Linda kuze kunikwe amandla i-API namasevisi ahlobene. Lokhu kungase kuthathe amaminithi ambalwa.
- Qiniseka ukuthi inkokhelo isethiwe kuphrojekthi yakho ye-Google Cloud Platform.
Funda ukuthi ungavumela kanjani ukukhokhisa .
Kulesi sifundo, ungasebenzisa i-Cloud Shell, elungiselela umshini obonakalayo
Inketho A: Ukusebenzisa i-Cloud Shell
Izinzuzo zokusebenzisa i-Cloud Shell:
- Python 2 kanye nePython 3 izindawo zokuthuthukisa (kuhlanganise ubuhle) zilungiselelwe ngokugcwele.
- Amathuluzi Womugqa Womyalo gcloud, i-docker, Git ΠΈ kubctl, esizozisebenzisa sezivele zifakiwe.
- Unokuningi ongakhetha kukho
abahleli bombhalo :Umhleli wekhodi , evula ngesithonjana sokuhlela phezulu kwewindi le-Cloud Shell.- I-Emacs, i-Vim noma i-Nano, evula kumugqa womyalo ku-Cloud Shell.
Ukusebenzisa
- Iya kukhonsoli ye-GCP.
- Chofoza inkinobho Yenza kusebenze i-Cloud Shell (Sebenzisa i-Cloud Shell) phezulu kwewindi lekhonsoli ye-GCP.
Engxenyeni engezansi
Inketho B: Ukusebenzisa Amathuluzi Womugqa Womyalo Endaweni
Uma uzobe usebenza kukhompyutha esebenzisa i-Linux noma i-macOS, uzodinga ukulungisa nokufaka izinto ezilandelayo:
-
Enza ngendlela oyifisayo
Indawo yokuthuthukiswa kwePython 3 kanye nePython 2 . -
Faka i-Cloud SDK ngethuluzi lomugqa womyalo gcloud. -
Faka kubctl - Ithuluzi lomugqa womyalo lokusebenza nalo
Kubernetes .gcloud components install kubectl
-
Faka
I-Docker Community Edition (CE) . Uzosebenzisa ithuluzi lomugqa womyalo i-dockerukudala izithombe zesitsha sohlelo lokusebenza lwesampula. -
Faka ithuluzi
Ukulawulwa kwenguqulo ye-Git ukuthola uhlelo lokusebenza lwesampula ku-GitHub.
Landa ikhodi yesampula
-
Landa ikhodi yomthombo helloserver:
git clone https://github.com/GoogleCloudPlatform/istio-samples
-
Iya kumkhombandlela wekhodi yesibonelo:
cd istio-samples/sample-apps/helloserver
Ukuhlola uhlelo lokusebenza olunamasevisi amaningi
Uhlelo lokusebenza lwesampula lubhalwe ngePython futhi luqukethe izingxenye ezimbili ezisebenzisanayo
- Iseva: iseva elula enephoyinti elilodwa lokugcina THOLA, /, ephrinta "hello world" kukhonsoli.
- loadgen: iskripthi esithumela ithrafikhi ku Iseva, ngenombolo elungisekayo yezicelo ngomzuzwana.
Ukuqalisa uhlelo lokusebenza kusuka kukhodi yomthombo
Ukuze uhlole uhlelo lokusebenza oluyisampula, lusebenzise ku-Cloud Shell noma kukhompuyutha yakho.
1) Kukhathalogi istio-samples/sample-apps/helloserver gijima Iseva:
python3 server/server.py
Ekuqaliseni Iseva okulandelayo kuyaboniswa:
INFO:root:Starting server...
2) Vula elinye iwindi letheminali ukuthumela izicelo kulo Iseva. Uma usebenzisa i-Cloud Shell, chofoza isithonjana engeza ukuze uvule enye iseshini.
3) Thumela isicelo ku Iseva:
curl http://localhost:8080
iseva iyaphendula:
Hello World!
4) Kusuka kunkomba lapho ulande khona ikhodi yesampula, hamba kumkhombandlela oqukethe loadgen:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen
5) Dala okuguquguqukayo kwemvelo okulandelayo:
export SERVER_ADDR=http://localhost:8080
export REQUESTS_PER_SECOND=5
6) Yethula ubuhle:
virtualenv --python python3 env
7) Yenza kusebenze indawo ebonakalayo:
source env/bin/activate
8) Setha izidingo ze loadgen:
pip3 install -r requirements.txt
9) Yethula loadgen:
python3 loadgen.py
Ekuqaliseni loadgen ibonisa okuthile okufana nomlayezo olandelayo:
Starting loadgen: 2019-05-20 10:44:12.448415
5 request(s) complete to http://localhost:8080
Kwelinye iwindi letheminali Iseva ikhipha imilayezo elandelayo kukhonsoli:
127.0.0.1 - - [21/Jun/2019 14:22:01] "GET / HTTP/1.1" 200 -
INFO:root:GET request,
Path: /
Headers:
Host: localhost:8080
User-Agent: python-requests/2.22.0
Accept-Encoding: gzip, deflate
Accept: */*
Ngokombono wenethiwekhi, lonke uhlelo lokusebenza lusebenza kumsingathi oyedwa (ikhompyutha yendawo noma umshini obonakalayo we-Cloud Shell). Ngakho-ke ungasebenzisa localhostukuthumela izicelo ku Iseva.
10) Ukumisa loadgen ΠΈ Iseva, ngena Ctrl-c kuwo wonke amafasitela etheminali.
11) Efasiteleni letheminali loadgen vala indawo ebonakalayo:
deactivate
Ukupakisha isicelo ezitsheni
Ukuze usebenzise uhlelo ku-GKE, udinga ukupakisha uhlelo lokusebenza lwesibonelo β Iseva ΠΈ loadgen - v
Ukupakisha uhlelo lokusebenza esitsheni, udinga I-Dockerfile. I-Dockerfile yifayela lombhalo elichaza imiyalo yokwakha ikhodi yomthombo yohlelo lokusebenza nokuncika kwayo kulo
Isibonelo sesivele sinaso I-Dockerfile ngoba Iseva ΠΈ loadgen nayo yonke imiyalo edingekayo yokuqoqa izithombe. Ngezansi - I-Dockerfile ngoba Iseva:
FROM python:3-slim as base
FROM base as builder
RUN apt-get -qq update
&& apt-get install -y --no-install-recommends
g++
&& rm -rf /var/lib/apt/lists/*
# Enable unbuffered logging
FROM base as final
ENV PYTHONUNBUFFERED=1
RUN apt-get -qq update
&& 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/
# Add the application
COPY . .
EXPOSE 8080
ENTRYPOINT [ "python", "server.py" ]
- Ithimba KUSUKA ku-python:3-slim njengesisekelo utshela uDocker ukuthi asebenzise okwakamuva
Isithombe se-Python 3 njengesisekelo. - Ithimba KOPISHA. . ikopisha amafayela omthombo kumkhombandlela osebenzayo wamanje (kithi kuphela iseva.py) ohlelweni lwefayela lesiqukathi.
- ENTRYPOINT ichaza umyalo osetshenziswa ukuqalisa isiqukathi. Esimweni sethu, lo myalo ucishe ufane nalowo obuwusebenzisa iseva.py kusuka kukhodi yomthombo.
- Ithimba VEZA ikhombisa lokho Iseva ilinda idatha ngembobo 8080. Leli qembu alikho
inikeza amachweba . Lolu uhlobo oluthile lwemibhalo edingekayo ukuze uvule ichweba 8080 lapho uqala isitsha.
Ilungiselela ukufaka isicelo sakho esitsheni
1) Setha okuguquguqukayo kwemvelo okulandelayo. Faka esikhundleni PROJECT_ID ku-ID yakho yephrojekthi ye-GCP.
export PROJECT_ID="PROJECT_ID"
export GCR_REPO="preparing-istio"
Ukusebenzisa amanani PROJECT_ID ΠΈ GCR_REPO umaka isithombe se-Docker uma usakha bese usiphushela kusibhalisi sesitsha esiyimfihlo.
2) Setha iphrojekthi ye-GCP ezenzakalelayo yethuluzi lomugqa womyalo gcloud.
gcloud config set project $PROJECT_ID
3) Setha indawo ezenzakalelayo yethuluzi lomugqa womyalo gcloud.
gcloud config set compute/zone us-central1-b
4) Qiniseka ukuthi isevisi Yokubhalisa Iziqukathi ivuliwe kuphrojekthi ye-GCP.
gcloud services enable containerregistry.googleapis.com
Iseva yokufaka iziqukathi
-
Iya kumkhombandlela lapho isibonelo sitholakala khona Iseva:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/
-
Hlanganisa isithombe usebenzisa I-Dockerfile kanye nokuguquguquka kwendawo okuchaze ngaphambilini:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 .
Ipharamitha -t imele ithegi ye-Docker. Leli igama lesithombe osisebenzisayo uma uphakela isiqukathi.
- Layisha isithombe Kubhalisi Yesitsha:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1
Ukufakwa kwesitsha se-loadgen
1) Iya kumkhombandlela lapho isibonelo sikhona loadgen:
cd ../loadgen
2) Qoqa isithombe:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1 .
3) Layisha isithombe kuRegistry Container:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1
Buka uhlu lwezithombe
Buyekeza uhlu lwezithombe endaweni yokugcina futhi uqinisekise ukuthi izithombe zilayishiwe:
gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istio
Umyalo ubonisa amagama ezithombe ezisanda kulayishwa:
NAME
gcr.io/PROJECT_ID/preparing-istio/helloserver
gcr.io/PROJECT_ID/preparing-istio/loadgen
Ukudala iqoqo le-GKE.
Lezi ziqukathi zingase zisetshenziswe emshinini obonakalayo we-Cloud Shell noma kukhompuyutha enomyalo i-docker igijima. Kepha endaweni yokukhiqiza, udinga indlela yokuhlela iziqukathi ezimaphakathi. Isibonelo, udinga isistimu eqinisekisa ukuthi iziqukathi zihlala zisebenza, futhi udinga indlela yokukhuphula nokuphenya izimo zeziqukathi ezengeziwe uma ithrafikhi inyuka.
Ukuze usebenzise izinhlelo zokusebenza ezifakwe iziqukathi ongazisebenzisa
Ukudala iqoqo le-GKE:
1) Dala iqoqo:
gcloud container clusters create istioready
--cluster-version latest
--machine-type=n1-standard-2
--num-nodes 4
Ithimba gcloud idala iqoqo le-istioready kuphrojekthi ye-GCP kanye nendawo yokuzenzakalelayo oyishilo. Ukuze usebenzise i-Istio, sincoma ukuthi okungenani ube namanodi angu-4 nomshini obonakalayo
Iqembu lidala iqoqo emizuzwini embalwa. Lapho iqoqo selilungile, umyalo ukhipha okuthile okufana nalokhu
2) Nikeza ngemininingwane kuthuluzi lomugqa womyalo
gcloud container clusters get-credentials istioready
3) Manje usungakwazi ukuxhumana noKubernetes nge kubctl. Isibonelo, umyalo olandelayo ungathola isimo samanodi:
kubectl get nodes
Umyalo ukhiqiza uhlu lwama-node:
NAME STATUS ROLES AGE VERSION
gke-istoready-default-pool-dbeb23dc-1vg0 Ready <none> 99s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-36z5 Ready <none> 100s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-fj7s Ready <none> 99s v1.13.6-gke.13
gke-istoready-default-pool-dbeb23dc-wbjw Ready <none> 99s v1.13.6-gke.13
I-Kubernetes Key Concepts
Umdwebo ubonisa uhlelo lokusebenza ku-GKE:
Ngaphambi kokuthi usebenzise iziqukathi ku-GKE, funda imiqondo ebalulekile ye-Kubernetes. Kukhona izixhumanisi ekugcineni uma ufuna ukufunda okwengeziwe.
- Ama-Nodes namaqoqo. Ku-GKE, i-node ingumshini obonakalayo. Kwamanye amapulatifomu e-Kubernetes, i-node ingaba ikhompuyutha noma umshini obonakalayo. Iqoqo iqoqo lamanodi angabhekwa njengeyunithi eyodwa lapho uthumela khona uhlelo lokusebenza olufakwe esitsheni.
- Amaphodi. E-Kubernetes, iziqukathi zigijima ngama-pods. I-Pod eku-Kubernetes iyunithi engenakuhlukaniswa. I-Pod ibamba isiqukathi esisodwa noma ngaphezulu. Uhambisa iziqukathi zeseva futhi loadgen emabhokisini ahlukene. Lapho kuneziqukathi eziningana ku-pod (isibonelo, iseva yohlelo lokusebenza kanye
iseva elibamba ), iziqukathi ziphathwa njengebhizinisi elilodwa futhi zabelane ngezinsiza ze-pod. - Ukuthunyelwa. Ku-Kubernetes, ukuthunyelwa kuyinto eyiqoqo lama-pods afanayo. Ukuthunyelwa kwethula izifaniso eziningi zama-pods asakazwa kuwo wonke ama-cluster node. Ukuthunyelwa kungena esikhundleni se-pods ehlulekile noma engasabeli.
- Isevisi ye-Kubernetes. Lapho usebenzisa ikhodi yohlelo ku-GKE, ukuxhumana phakathi loadgen ΠΈ Iseva. Lapho uqala izinsizakalo emshinini obonakalayo we-Cloud Shell noma ideskithophu, uthumele izicelo ku- Iseva at localhost: i-8080. Uma sekuthunyelwe ku-GKE, ama-pods akhishwa kuma-node atholakalayo. Ngokuzenzakalelayo, awukwazi ukulawula ukuthi iyiphi i-node esebenza kuyo, ngakho nawe
pods awekho amakheli e-IP angunaphakade.
Ukuze uthole ikheli le-IP le Iseva, udinga ukuchaza ukukhishwa kwenethiwekhi ngaphezulu kwama-pods. Yilokho okuyikhonaIsevisi ye-Kubernetes . Isevisi ye-Kubernetes inikeza isiphetho esiqhubekayo sesethi yama-pods. Kukhona abambalwaizinhlobo zezinsizakalo . Iseva isebenzisa I-LoadBalancer, ehlinzeka ngekheli le-IP langaphandle ongaxhumana nalo Iseva kusukela ngaphandle kweqoqo.
I-Kubernetes futhi inohlelo lwe-DNS olwakhelwe ngaphakathi olunikeza amagama e-DNS (isibonelo, helloserver.default.cluster.local) amasevisi. Ngenxa yalokhu, ama-pods ngaphakathi kweqoqo axhumana namanye ama-pods kuqoqo ekhelini elihlala njalo. Igama le-DNS alinakusetshenziswa ngaphandle kweqoqo, njengaku-Cloud Shell noma kukhompuyutha.
U-Kubernetes uyabonisa
Lapho uqalisa uhlelo lokusebenza emthonjeni, usebenzise umyalo obalulekile i-python3
iseva.py
Impoqo isho isenzo: βyenza lokhu.β
Kubernetes isebenzisa
Ukhombisa isimo osifunayo kuma-manifest noma amafayela
Isibonelo siqukethe ifayela le-YAML le Iseva ΠΈ loadgen. Ifayela ngalinye le-YAML licacisa isimo esifiswayo sento yokuphakelwa kanye nesevisi ye-Kubernetes.
iseva.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
- uhlobo ikhombisa uhlobo lwento.
- imethadatha.name icacisa igama lokusebenzisa.
- Inkambu yokuqala ucacisa iqukethe incazelo yesimo osifunayo.
- spec.replicas ikhombisa inani elifunekayo lamaphodi.
- Isigaba spec.template ichaza isifanekiso se-pod. Kukhona inkambu ekucacisweni kwe-pod isithombe, ecacisa igama lesithombe esidinga ukukhishwa Kubhalisi Lwesitsha.
Isevisi ichazwa kanje:
apiVersion: v1
kind: Service
metadata:
name: hellosvc
spec:
type: LoadBalancer
selector:
app: helloserver
ports:
- name: http
port: 80
targetPort: 8080
- I-LoadBalancer: Amaklayenti athumela izicelo ekhelini le-IP lesilinganisi somthwalo, elinekheli le-IP eliqhubekayo futhi elifinyeleleka ngaphandle kweqoqo.
- targetPort: njengoba ukhumbula, iqembu VEZA 8080 Π² I-Dockerfile ayizange inikeze amachweba. Uhlinzeka ngembobo 8080ukuze ukwazi ukuxhumana nesitsha Iseva ngaphandle kweqoqo. Esimeni sethu hellosvc.default.cluster.local:80 (igama elifushane: hellosvc) ihambisana nechweba 8080 Amakheli e-Pod IP helloserver.
- Imbobo: Lena inombolo yembobo lapho ezinye izinsiza kuqoqo zizothumela khona izicelo.
loadgen.yaml
Into yokuthunyelwa kokuthi loadgen.yaml kufana ne iseva.yaml. Umehluko ukuthi into yokuthunyelwa iqukethe isigaba env. Ichaza okuguquguqukayo kwemvelo okudingekayo loadgen futhi oyifakile ngenkathi usebenzisa uhlelo kusuka emthonjeni.
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: 512Mi
Kanye loadgen ayizamukeli izicelo ezingenayo, zenkundla uhlobo kukhonjisiwe I-ClusterIP. Lolu hlobo luhlinzeka ngekheli lasesizindeni se-inthanethi eziphikelelayo amasevisi akuqoqo angalisebenzisa, kodwa leli kheli le-IP alivezwanga kumaklayenti angaphandle.
apiVersion: v1
kind: Service
metadata:
name: loadgensvc
spec:
type: ClusterIP
selector:
app: loadgenerator
ports:
- name: http
port: 80
targetPort: 8080
Ukuthumela Iziqukathi ku-GKE
1) Iya kumkhombandlela lapho isibonelo sikhona Iseva:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/
2) Vula iseva.yaml kusihleli sombhalo.
3) Faka esikhundleni igama ensimini isithombe egameni lesithombe sakho se-Docker.
image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1
Faka esikhundleni PROJECT_ID ku-ID yakho yephrojekthi ye-GCP.
4) Londoloza futhi uvale iseva.yaml.
5) Hambisa ifayela le-YAML ku-Kubernetes:
kubectl apply -f server.yaml
Lapho usuqedile ngempumelelo, umyalo ukhiqiza ikhodi elandelayo:
deployment.apps/helloserver created
service/hellosvc created
6) Yiya lwemibhalo lapho loadgen:
cd ../loadgen
7) Vula loadgen.yaml kusihleli sombhalo.
8) Faka esikhundleni igama ensimini isithombe egameni lesithombe sakho se-Docker.
image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1
Faka esikhundleni PROJECT_ID ku-ID yakho yephrojekthi ye-GCP.
9) Londoloza futhi uvale loadgen.yaml, vala isihleli sombhalo.
10) Hambisa ifayela le-YAML ku-Kubernetes:
kubectl apply -f loadgen.yaml
Lapho usuqedile ngempumelelo, umyalo ukhiqiza ikhodi elandelayo:
deployment.apps/loadgenerator created
service/loadgensvc created
11) Hlola isimo se-pods:
kubectl get pods
Umyalo ubonisa isimo:
NAME READY STATUS RESTARTS AGE
helloserver-69b9576d96-mwtcj 1/1 Running 0 58s
loadgenerator-774dbc46fb-gpbrz 1/1 Running 0 57s
12) Khipha izingodo zohlelo lokusebenza ku-pod loadgen. Faka esikhundleni POD_ID kusihlonzi esivela empendulweni edlule.
kubectl logs loadgenerator-POD_ID
13) Thola amakheli e-IP angaphandle hellosvc:
kubectl get service
Impendulo yomyalo ibukeka kanjena:
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 <none> 443/TCP 93m
loadgensvc ClusterIP 10.81.15.155 <none> 80/TCP 4m52s
14) Thumela isicelo ku hellosvc: buyisela EXTERNAL_IP ekhelini le-IP langaphandle hellosvc.
curl http://EXTERNAL_IP
Ake sithathe i-Istio
Usuvele unalo uhlelo lokusebenza oluthunyelwe ku-GKE. loadgen ungasebenzisa i-Kubernetes DNS (sawubona:80) ukuthumela izicelo ku Isevafuthi ungathumela izicelo ku Iseva ngekheli le-IP langaphandle. Yize i-Kubernetes inezici eziningi, kunolunye ulwazi olushodayo mayelana nezinsizakalo:
- Amasevisi asebenzisana kanjani? Buyini ubudlelwano phakathi kwamasevisi? Ihamba kanjani ithrafikhi phakathi kwezinsizakalo? Ingabe uyakwazi lokho loadgen ithumela izicelo ku Iseva, kodwa ake ucabange ukuthi awazi lutho mayelana nohlelo lokusebenza. Ukuze uphendule le mibuzo, ake sibheke uhlu lwama-pod asebenzayo ku-GKE.
- Amamethrikhi. Isikhathi eside kangakanani Iseva uphendula esicelweni esingenayo? Zingaki izicelo ngomzuzwana ezitholwa iseva? Ingabe inikeza imilayezo yephutha?
- Ulwazi Lokuphepha. Ithrafikhi phakathi loadgen ΠΈ Iseva uyadlula nje HTTP noma nge
mTLS ?
I-Istio iphendula yonke le mibuzo. Ukwenza lokhu, i-Istio ibeka ummeleli wemoto eseceleni
Ukuxhumana phakathi kwama-proxies ezithunywa kwenza i-service mesh. Isakhiwo se-mesh yesevisi sinikeza ungqimba lokulawula phezu kwe-Kubernetes.
Njengoba ama-proxies Ezithunywa egijima ezitsheni zawo, i-Istio ingafakwa phezu kweqoqo le-GKE cishe ngaphandle kwezinguquko kukhodi yesicelo. Kodwa wenze umsebenzi othile ukuze isicelo sakho silungele ukuphathwa yi-Istio:
- Izinsizakalo zazo zonke iziqukathi. Ekusetshenzisweni Iseva ΠΈ loadgen eboshelwe enkonzweni ye-Kubernetes. Ngisho loadgen, engatholi izicelo ezingenayo, kukhona isevisi.
- Amachweba ezinsizeni kufanele abe namagama. Nakuba izimbobo zesevisi zingashiywa zingaqanjwanga ku-GKE, i-Istio idinga ukuthi ucacise
igama lembobo ngokuhambisana nephrothokholi yakhe. Kufayela le-YAML imbobo ye Iseva kubizwa httpngoba iseva isebenzisa umthetho olandelwayo HTTP. Uma service esetshenzisiwe gRPC, ungaqamba itheku grpc. - Ukuthunyelwa kumakiwe. Ngakho-ke, ungasebenzisa izici zokulawulwa kwethrafikhi ye-Istio, njengokuhlukanisa ithrafikhi phakathi kwezinguqulo zesevisi efanayo.
Ifaka i-Istio
Kunezindlela ezimbili zokufaka i-Istio. Angakwazi
Khetha inketho, buyekeza umhlahlandlela ofanele, bese ulandela imiyalelo yokufaka i-Istio kuqoqo lakho. Uma ufuna ukusebenzisa i-Istio ngohlelo lwakho lokusebenza olusanda kuthunyelwa,
Ukuhlanza
Ukuze ugweme ukukhokhiswa ku-akhawunti yakho ye-Google Cloud Platform ngezisetshenziswa ozisebenzisile kulesi sifundo, susa iqoqo leziqukathi uma usufake i-Istio futhi wadlala ngesampula yohlelo lokusebenza. Lokhu kuzosusa zonke izinsiza zeqoqo, njengezimo zokubala, amadiski, nezisetshenziswa zenethiwekhi.
Yini okulandelayo?
-
Hlola lobu buchwepheshe obulandelayo:
-
Hlola amathuluzi alandelayo:
-
Funda imiqondo ye-Kubernetes:
Source: www.habr.com