I-Istio sisixhobo esifanelekileyo sokudibanisa, ukukhusela kunye nokubeka iliso kwizicelo ezisasazwayo. I-Istio isebenzisa ubuchwephesha obuhlukeneyo ukuqhuba nokulawula isofthiwe kwinqanaba, kubandakanywa izitya zokupakisha ikhowudi yesicelo kunye nokuxhomekeka kokuthunyelwa, kunye ne-Kubernetes ukulawula ezo zikhongozeli. Ke ngoko, ukusebenza ne-Istio kufuneka wazi ukuba isicelo esineenkonzo ezininzi ezisekwe kobu buchwepheshe sisebenza njani ngaphandle Istio. Ukuba ezi zixhobo kunye neengqikelelo sele ziqhelekile kuwe, zive ukhululekile ukutsiba esi sifundo kwaye uye ngqo kwicandelo
Esi sikhokelo sesinyathelo-nge-nyathelo apho siya kuhamba kuyo yonke inkqubo ukusuka kwikhowudi yomthombo ukuya kwi-container ye-GKE ukukunika ukuqonda okusisiseko kwezi teknoloji ngomzekelo. Uya kubona kwakhona ukuba i-Istio iwasebenzisa njani amandla obu buchwepheshe. Oku kuthatha ukuba awazi nto malunga nezikhongozeli, i-Kubernetes, i-meshes zenkonzo, okanye i-Istio.
Iinjongo
Kule tutorial, uya kugqiba le misebenzi ilandelayo:
- Ukufunda usetyenziso olulula lwehlabathi molo ngeenkonzo ezininzi.
- Sebenzisa usetyenziso olusuka kwikhowudi yemvelaphi.
- Ukupakishwa kwesicelo kwizikhongozeli.
- Ukudala iqela leKubernetes.
- Ukusasaza izikhongozeli kwiqela.
Ngaphambi kokuba uqale
Landela imiyalelo ukwenza iKubernetes Engine API:
- Yiya ku
Iphepha leNjini yeKubernetes kwi-Google Cloud Platform console. - Yenza okanye ukhethe iprojekthi.
- Linda de i-API kunye neenkonzo ezinxulumeneyo zenziwe. Oku kungathatha imizuzu embalwa.
- Qinisekisa ukuba ityala limiselwe iprojekthi yakho yeQonga leLifu likaGoogle.
Funda indlela yokuvula intlawulo .
Kule tutorial, ungasebenzisa i-Cloud Shell, elungiselela umatshini obonakalayo
Ukhetho A: Ukusebenzisa i-Cloud Shell
Izibonelelo zokusebenzisa i-Cloud Shell:
- Python 2 kunye nePython 3 iindawo zophuhliso (kubandakanywa nguyen) ziqwalaselwe ngokupheleleyo.
- Izixhobo zomgca womyalelo gcloud, docker, yiya ΠΈ kubectl, esiza kuyisebenzisa sele ifakiwe.
- Uneqela lokukhetha kuzo
abahleli bombhalo :Umhleli wekhowudi , evula nge-icon yokuhlela phezulu kwi-Cloud Shell window.- I-Emacs, iVim okanye iNano, evula kumgca womyalelo kwi-Cloud Shell.
Ukusebenzisa
- Yiya kwikhonsoli ye-GCP.
- Cofa iqhosha Vula i-Cloud Shell (Vula i-Cloud Shell) phezulu kwefestile ye-console ye-GCP.
Kwinxalenye esezantsi
Ukhetho B: Ukusebenzisa iZixhobo zoMyalelo woMyalelo ekuhlaleni
Ukuba uya kusebenza kwikhompyuter eqhuba iLinux okanye iMacOS, kuya kufuneka uqwalasele kwaye ufake ezi zinto zilandelayo:
-
Yenza ngokwezifiso
I-Python 3 kunye ne-Python 2 yendawo yophuhliso . -
Faka Cloud SDK ngesixhobo somgca womyalelo gcloud. -
Faka ifayile kubectl - isixhobo somgca womyalelo sokusebenza kunye
Kubernetes .gcloud components install kubectl
-
Faka ifayile
Ushicilelo loluntu lwaseDocker (CE) . Uya kusebenzisa isixhobo somgca womyalelo dockerukwenza imifanekiso yesikhongozeli yesicelo sesampulu. -
Faka isixhobo
Ulawulo lwenguqulelo yeGit ukufumana isampulu yesicelo kwiGitHub.
Khuphela ikhowudi yesampuli
-
Khuphela ikhowudi yemvelaphi moloserver:
git clone https://github.com/GoogleCloudPlatform/istio-samples
-
Yiya kuluhlu lwekhowudi yomzekelo:
cd istio-samples/sample-apps/helloserver
Ukuphonononga usetyenziso oluneenkonzo ezininzi
Isampula yesicelo ibhalwe kwiPython kwaye iqulethwe ngamacandelo amabini asebenzisanayo
- Mncedisi: iseva elula enesiphelo esinye GET, /, eprinta "hello world" kwi console.
- loadgen: umbhalo othumela itrafikhi kuyo Mncedisi, ngenani eliqwalaselweyo lezicelo ngomzuzwana.
Ukwenza isicelo kwikhowudi yemvelaphi
Ukuphonononga isampulu yesicelo, yiqhube kwi-Cloud Shell okanye kwikhompyuter yakho.
1) Kwikhathalogu istio-isampulu/isampulu-apps/helloserver baleka Mncedisi:
python3 server/server.py
Kwindlela yokuqala Mncedisi oku kulandelayo kubonisiwe:
INFO:root:Starting server...
2) Vula enye i-terminal window ukuthumela izicelo kuyo Mncedisi. Ukuba usebenzisa i-Cloud Shell, cofa i icon yokongeza ukuvula enye iseshoni.
3) Thumela isicelo ku Mncedisi:
curl http://localhost:8080
iimpendulo zeseva:
Hello World!
4) Kuluhlu apho ukhuphele khona ikhowudi yesampuli, yiya kuluhlu oluqulathe loadgen:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen
5) Yenza oku kuguquguquka kwemeko-bume kulandelayo:
export SERVER_ADDR=http://localhost:8080
export REQUESTS_PER_SECOND=5
6) Qalisa nguyen:
virtualenv --python python3 env
7) Vula okusingqongileyo okubonakalayo:
source env/bin/activate
8) Misela iimfuno loadgen:
pip3 install -r requirements.txt
9) Qalisa loadgen:
python3 loadgen.py
Kwindlela yokuqala loadgen ibonisa into efana nalo myalezo ulandelayo:
Starting loadgen: 2019-05-20 10:44:12.448415
5 request(s) complete to http://localhost:8080
Kwenye i-terminal window Mncedisi ikhupha le miyalezo ilandelayo kwi console:
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: */*
Ukusuka kumbono wothungelwano, isicelo siphela sisebenza kwinginginya enye (ikhompyuter yendawo okanye umatshini we-Cloud Shell). Ngoko ungasebenzisa localhostukuthumela izicelo ku Mncedisi.
10) Ukuyeka loadgen ΠΈ Mncedisi, ngena Ctrl-c kuzo zonke iifestile zeterminal.
11) Kwifestile ye-terminal loadgen vala imo engqongileyo yenyani:
deactivate
Ukupakishwa kwesicelo kwizikhongozeli
Ukusebenzisa usetyenziso kwi-GKE, kufuneka upakishe umzekelo wesicelo β Mncedisi ΠΈ loadgen - ngaphakathi
Ukupakisha usetyenziso kwisikhongozeli, uyafuna dockerfile. dockerfile yifayile yokubhaliweyo echaza imiyalelo yokwakha ikhowudi yemvelaphi yesicelo kunye nokuxhomekeka kuyo
Umzekelo sele unawo dockerfile kuba Mncedisi ΠΈ loadgen nayo yonke imiyalelo eyimfuneko ukuqokelela imifanekiso. Ngezantsi - dockerfile kuba Mncedisi:
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" ]
- Iqela UKUSUKA kwipython:3-slim njengesiseko uxelela uDocker ukuba asebenzise okwamva nje
Umfanekiso wePython 3 njengesiseko. - Iqela IKOPIA. . ikhuphela iifayile zemvelaphi kulawulo lwangoku olusebenzayo (kwimeko yethu kuphela iseva.py) kwisixokelelwano sefayile yesikhongozeli.
- INDAWO YOKUNGENA ichaza umyalelo osetyenziswa ukuqalisa isikhongozeli. Kwimeko yethu, lo myalelo uphantse wafana nalowo ubuwusebenzisa iseva.py ukusuka kwikhowudi yemvelaphi.
- Iqela BONISA ibonisa ukuba Mncedisi ilinda idata ngezibuko 8080. Eli qela alikho
inikeza amazibuko . Olu luhlobo oluthile loxwebhu olufunekayo ukuvula izibuko 8080 xa uqala isikhongozeli.
Ukulungiselela ukufaka isicelo sakho kwisingxobo
1) Seta oku kuguquguquka kwemo engqongileyo kulandelayo. Faka enye indawo PROJECT_ID kwi-ID yeprojekthi yakho ye-GCP.
export PROJECT_ID="PROJECT_ID"
export GCR_REPO="preparing-istio"
Ukusebenzisa amaxabiso PROJECT_ID ΠΈ GCR_REPO umaka umfanekiso weDocker xa uyakha kwaye uwutyhalele kwiRejistri yoMgqomo wabucala.
2) Cwangcisa iprojekthi ye-GCP engagqibekanga yesixhobo somgca womyalelo gcloud.
gcloud config set project $PROJECT_ID
3) Cwangcisa indawo engagqibekanga yesixhobo somgca womyalelo gcloud.
gcloud config set compute/zone us-central1-b
4) Qinisekisa ukuba inkonzo yoBhaliso loMgqomo ivuliwe kwiprojekthi ye-GCP.
gcloud services enable containerregistry.googleapis.com
Umncedisi wokwenza umgqomo
-
Yiya kuluhlu apho ukhoyo umzekelo Mncedisi:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/
-
Hlanganisa umfanekiso usebenzisa dockerfile kunye nemeko-bume eguquguqukayo oyichaze ngaphambili:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 .
IParamu -t imele ithegi yeDocker. Eli ligama lomfanekiso owusebenzisayo xa uhambisa isikhongozeli.
- Layisha umfanekiso kwiRejistri yoMgqomo:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1
Ukufakwa komgqomo we-loadgen
1) Yiya kuluhlu apho umzekelo ukhoyo loadgen:
cd ../loadgen
2) Qokelela umfanekiso:
docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1 .
3) Layisha umfanekiso kwiRejistri yoMgqomo:
docker push gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1
Jonga uluhlu lwemifanekiso
Phonononga uluhlu lwemifanekiso kwindawo yokugcina kwaye uqinisekise ukuba imifanekiso ilayishiwe:
gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istio
Umyalelo ubonisa amagama emifanekiso esandula ukulayishwa:
NAME
gcr.io/PROJECT_ID/preparing-istio/helloserver
gcr.io/PROJECT_ID/preparing-istio/loadgen
Ukudala iqela le-GKE.
Ezi zikhongozeli zinokuqhutywa kumatshini wenyani we-Cloud Shell okanye kwikhompyuter enomyalelo docker ugijime. Kodwa kwindawo yemveliso, udinga indlela yokudibanisa izikhongozeli ezisembindini. Umzekelo, udinga inkqubo eqinisekisa ukuba izikhongozeli zihlala zisebenza, kwaye ufuna indlela yokunyusa kwaye ujikeleze iimeko zesikhongozeli ezongezelelweyo ukuba i-traffic iyanda.
Ukuqhuba usetyenziso olunezikhongozeli onokuzisebenzisa
Ukudala iqela le-GKE:
1) Yenza iqela:
gcloud container clusters create istioready
--cluster-version latest
--machine-type=n1-standard-2
--num-nodes 4
Iqela gcloud yenza iqela le-istioready kwiprojekthi ye-GCP kunye nendawo engagqibekanga oyikhankanyileyo. Ukuqhuba i-Istio, sincoma ukuba ube neenodi ze-4 ubuncinane kunye nomatshini obonakalayo
Iqela lidala iqela kwimizuzu embalwa. Xa iqela lilungile, umyalelo uvelisa into enje
2) Nika iziqinisekiso kwisixhobo somgca womyalelo
gcloud container clusters get-credentials istioready
3) Ngoku unokunxibelelana noKubernetes nge kubectl. Umzekelo, lo myalelo ulandelayo unokufumanisa ubume beendawo zokuhlala:
kubectl get nodes
Umyalelo uvelisa uluhlu lweenodi:
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 Iingcamango eziphambili
Umzobo ubonisa isicelo kwi-GKE:
Ngaphambi kokuba uthumele izitya kwi-GKE, funda iikhonsepthi eziphambili ze-Kubernetes. Kukho amakhonkco ekugqibeleni ukuba ufuna ukufunda ngakumbi.
- Amaqela kunye namaqela. Kwi-GKE, i-node ngumatshini obonakalayo. Kwamanye amaqonga e-Kubernetes, i-node inokuba yikhompyuter okanye umatshini obonakalayo. Iqela yingqokelela yeendawo zokuhlala ezinokuthi zithathwe njengeyunithi enye apho ufaka isicelo esinezikhongozeli.
- Iipods. Kwi-Kubernetes, izikhongozeli zibaleka kwiipod. I-Pod e-Kubernetes yiyunithi engenakuhlukaniswa. I-Pod ibamba isikhongozeli esinye okanye ngaphezulu. Uhambisa izitya zomncedisi kunye loadgen kwiipod ezahlukeneyo. Xa kukho izikhongozeli ezininzi kwipod (umzekelo, umncedisi wesicelo kunye
iseva engummeli ), izikhongozeli zilawulwa njengequmrhu elinye kunye nokwabelana ngezibonelelo zepod. - Ukusasazwa. Kwi-Kubernetes, ukuthunyelwa yinto eyingqokelela yeepod ezifanayo. Ukusasazwa kusungula iikopi ezininzi zeepods ezisasazwe kuzo zonke iindawo zeqela. Ukusasazwa ngokuzenzekelayo kuthatha indawo yeepods ezingaphumelelanga okanye ezingaphenduliyo.
- inkonzo Kubernetes. Xa usebenzisa ikhowudi yesicelo kwi-GKE, uqhagamshelwano phakathi loadgen ΠΈ Mncedisi. Xa wawuqala iinkonzo kumatshini we-Cloud Shell onenyani okanye idesktop, uthumele izicelo ku Mncedisi kwidilesi yendawo: 8080. Emva kokuba isetyenziswe kwi-GKE, iipods ziqhutyelwa kwiindawo ezikhoyo. Ngokungagqibekanga, awunalawulo lokuba yeyiphi i-node esebenza kuyo, ke wena
iipods akukho dilesi ye-IP esisigxina.
Ukufumana idilesi ye-IP ye Mncedisi, kufuneka uchaze ukutsalwa kwenethiwekhi ngaphezulu kweepods. Nantso into eyiyoinkonzo Kubernetes . Inkonzo ye-Kubernetes ibonelela ngesiphelo esiqhubekayo seseti yeepod. Kukho ezimbalwaiintlobo zeenkonzo . Mncedisi isebenzisa LoadBalancer, ebonelela ngedilesi ye-IP yangaphandle ukuba uqhagamshelane Mncedisi ukusuka ngaphandle kweqela.
I-Kubernetes ikwanenkqubo ye-DNS eyakhelwe-ngaphakathi enika amagama e-DNS (umzekelo, helloserver.default.cluster.local) iinkonzo. Enkosi koku, ii-pods ngaphakathi kweqela zinxibelelana nezinye ii-pods kwiqela kwidilesi esisigxina. Igama le-DNS alinakusetyenziswa ngaphandle kweqela, njengakwi-Cloud Shell okanye kwikhompyuter.
UKubernetes uyabonakalisa
Xa uqhube isicelo kwimvelaphi, usebenzise umyalelo ofunekayo python3
iseva.py
Isigunyaziso sithetha isenzi: βyenza le nto.β
UKubernetes usebenzisa
Ubonisa imeko efunwayo kwii-manifest okanye iifayile
Umzekelo uqulethe ifayile ye-YAML ye Mncedisi ΠΈ loadgen. Ifayile nganye ye-YAML ichaza imeko efunwayo yento yokuthunyelwa kunye nenkonzo 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
- Bubele ibonisa uhlobo lwento.
- metadata.igama ixela igama lokusebenzisa.
- Indawo yokuqala umzekelo iqulethe inkcazo yelizwe elifunekayo.
- spec.replicas ibonisa inani elifunekayo lemidumba.
- Icandelo spec.template ichaza itemplate yepod. Kukho intsimi kwinkcazo yepod umfanekiso, echaza igama lomfanekiso ekufuneka ukhutshwe kwiRegistry ye-Container.
Inkonzo ichazwa ngolu hlobo lulandelayo:
apiVersion: v1
kind: Service
metadata:
name: hellosvc
spec:
type: LoadBalancer
selector:
app: helloserver
ports:
- name: http
port: 80
targetPort: 8080
- LoadBalancer: Abathengi bathumela izicelo kwidilesi ye-IP ye-balancer yomthwalo, enedilesi ye-IP eqhubekayo kwaye ifumaneka ngaphandle kweqela.
- iPort ekujoliswe kuyo: njengoko ukhumbula, iqela BONISA 8080 Π² dockerfile khange ibonelele ngamazibuko. Ubonelela ngezibuko 8080ukuze ukwazi ukuqhagamshelana nesikhongozeli Mncedisi ngaphandle kweqela. Kwimeko yethu hellosvc.default.cluster.local:80 (igama elifutshane: molwenivc) ihambelana nezibuko 8080 Iidilesi zePod IP moloserver.
- izibuko: Le yinombolo yezibuko apho ezinye iinkonzo kwiqela ziya kuthumela izicelo.
loadgen.yaml
Into yokusasaza ukuya loadgen.yaml ibonakala njenge iseva.yaml. Umahluko kukuba into yokuthunyelwa iqulethe icandelo Env. Ichaza iinguqu zokusingqongileyo ezifunekayo loadgen kwaye oyifakileyo xa usebenzisa usetyenziso olusuka kumthombo.
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 akazamkeli izicelo ezingenayo, zentsimi uhlobo kubonisiwe ClusterIP. Olu hlobo lunikeza idilesi ye-IP eqhubekayo apho iinkonzo zeqela zingasebenzisa, kodwa le dilesi ye-IP ayibonakali kubaxhasi bangaphandle.
apiVersion: v1
kind: Service
metadata:
name: loadgensvc
spec:
type: ClusterIP
selector:
app: loadgenerator
ports:
- name: http
port: 80
targetPort: 8080
Ukuhambisa iMigqomo kwi-GKE
1) Yiya kuluhlu apho umzekelo ukhoyo Mncedisi:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/
2) Vula iseva.yaml kumhleli wokubhaliweyo.
3) Faka igama endaweni umfanekiso kwigama lomfanekiso wakho weDocker.
image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1
Faka enye indawo PROJECT_ID kwi-ID yeprojekthi yakho ye-GCP.
4) Gcina kwaye uvale iseva.yaml.
5) Thumela ifayile ye-YAML kwi-Kubernetes:
kubectl apply -f server.yaml
Ekugqityweni ngempumelelo, umyalelo uvelisa le khowudi ilandelayo:
deployment.apps/helloserver created
service/hellosvc created
6) Yiya kuluhlu apho loadgen:
cd ../loadgen
7) Vula loadgen.yaml kumhleli wokubhaliweyo.
8) Faka igama endaweni umfanekiso kwigama lomfanekiso wakho weDocker.
image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1
Faka enye indawo PROJECT_ID kwi-ID yeprojekthi yakho ye-GCP.
9) Gcina kwaye uvale loadgen.yaml, vala umhleli wokubhaliweyo.
10) Thumela ifayile ye-YAML kwi-Kubernetes:
kubectl apply -f loadgen.yaml
Ekugqityweni ngempumelelo, umyalelo uvelisa le khowudi ilandelayo:
deployment.apps/loadgenerator created
service/loadgensvc created
11) Jonga imeko yeepods:
kubectl get pods
Umyalelo ubonisa imeko:
NAME READY STATUS RESTARTS AGE
helloserver-69b9576d96-mwtcj 1/1 Running 0 58s
loadgenerator-774dbc46fb-gpbrz 1/1 Running 0 57s
12) Khipha iilogi zesicelo kwi-pod loadgen. Faka enye indawo POD_ID kwisazisi esivela kwimpendulo yangaphambili.
kubectl logs loadgenerator-POD_ID
13) Fumana iidilesi ze-IP zangaphandle molwenivc:
kubectl get service
Impendulo yomyalelo ijongeka ngolu hlobo:
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 molwenivc: buyisela EXTERNAL_IP kwidilesi ye-IP yangaphandle molwenivc.
curl http://EXTERNAL_IP
Makhe sithathe Istio
Sele unaso isicelo esifakwe kwi-GKE. loadgen inokusebenzisa iKubernetes DNS (molovc:80) ukuthumela izicelo ku Mncedisikwaye ungathumela izicelo ku Mncedisi ngedilesi ye-IP yangaphandle. Nangona iKubernetes ineempawu ezininzi, kukho ulwazi olungekhoyo malunga neenkonzo:
- Zisebenzisana njani iinkonzo? Yintoni ubudlelwane phakathi kweenkonzo? Ihamba njani itrafikhi phakathi kweenkonzo? Ngaba uyayazi loo nto loadgen ithumela izicelo ku Mncedisi, kodwa khawufane ucinge ukuba awazi nto malunga nesicelo. Ukuphendula le mibuzo, makhe sijonge kuluhlu lweepods ezisebenzayo kwi-GKE.
- Iimetriki. Ixesha elingakanani Mncedisi iphendula kwisicelo esingenayo? Zingaphi izicelo ngesekhondi ezifunyenwe ngumncedisi? Ngaba inika imiyalezo yemposiso?
- Ulwazi loKhuseleko. Traffic phakathi loadgen ΠΈ Mncedisi idlula nje HTTP okanye nge
mTLS ?
I-Istio iphendula yonke le mibuzo. Ukwenza oku, i-Istio ibeka i-proxy ye-sidecar
Uqhagamshelo phakathi kwabameli boMthunywa benza umnatha wenkonzo. Uyilo lwe-mesh yenkonzo lubonelela ngoluhlu lolawulo ngaphezulu kwe-Kubernetes.
Ekubeni i-Proxies yoMthunywa iqhuba kwiibhokisi zabo, i-Istio inokufakwa phezulu kwi-cluster ye-GKE phantse akukho tshintsho kwikhowudi yesicelo. Kodwa wenze umsebenzi othile ukuze isicelo sakho silungele ukulawulwa yi-Istio:
- Iinkonzo zazo zonke izitya. Ukusasazwa Mncedisi ΠΈ loadgen ibotshelelwe kwinkonzo yeKubernetes. Nditsho loadgen, engafumani izicelo ezingenayo, kukho inkonzo.
- Amazibuko kwiinkonzo kufuneka abe namagama. Nangona izibuko zenkonzo zingashiywa zingabizwa ngamagama kwi-GKE, i-Istio ifuna ukuba ucacise
Igama lezibuko ngokuhambelana neprotocol yakhe. Kwifayile yeYAML izibuko le Mncedisi kuthiwa httpkuba umncedisi usebenzisa iprotocol HTTP... Ukuba inkonzo esetyenzisiweyo I-GRPC, ungenza igama lezibuko grpc. - Ukuthunyelwa kuphawulwe. Ngoko ke, ungasebenzisa iimpawu zolawulo lwendlela ye-Istio, njengokwahlula i-traffic phakathi kweenguqulelo zenkonzo efanayo.
Kufakwe i-Istio
Kukho iindlela ezimbini zokufakela i-Istio. Ngaba
Khetha ukhetho, funda isikhokelo esifanelekileyo, kwaye ulandele imiyalelo yokufaka i-Istio kwiqela lakho. Ukuba ufuna ukusebenzisa i-Istio ngesicelo sakho esitsha,
Ukucoca
Ukunqanda ukuhlawuliswa kwiakhawunti yakho yeQonga likaGoogle leLifu ngezixhobo ozisebenzisileyo kwesi sifundo, cima iqoqo leekhonteyina emva kokuba ufake i-Istio kwaye udlale ngesampulu yesicelo. Oku kuya kususa zonke izixhobo ze-cluster, ezifana ne-comute compute, iidiski, kunye nezibonelelo zenethiwekhi.
Yintoni elandelayo?
-
Phonononga ezi teknoloji zilandelayo:
-
Phonononga ezi zixhobo zilandelayo:
-
Funda amagama eKubernetes:
umthombo: www.habr.com