Istio est instrumentum opportunum ad applicationes applicandi, impetrandi et vigilantiae distribuendi. Istio variis technologiarum utitur ut programmata in scala currat et disponat, incluso vasis ad involucrum codicillis applicationis et clientelas instruendi, et Kubernetes ad illas continentia regendas. Propterea laborare cum Istio debes scire quomodo applicatio multiplicibus officiis in his technologiarum operibus fundata sine Istio. Si haec instrumenta notionesque iam tibi nota sunt, libenter senties hanc discessionem transilire et ad sectionem pergere Istio installans in Google Engine Kubernetes (GKE) an installing extensio Istio on GKE.
Hoc gradatim dux est quo perambulabimus totum processum a codice fonte ad GKE continens ut tibi harum technologiarum per exemplum fundamentale cognoscatur. Videbis etiam quomodo Istio leves harum technologiarum potestatem habeat. Hoc te de vasis, Kubernetes, reticulis, aut Istio nihil scis.
tasks
In hoc doceo, sequentia perficies opera:
Discens simplex salve mundi applicatione multiplicibus officiis.
In hoc consequat, Cloud Testa uti potes, quae virtualem machinam praeparat g1-parvum in Google Computo Engine cum Debian-substructio Linux, vel Linux vel macOS computatorium.
Option A: Using Cloud Testa
Beneficia Cloud Testa utendi:
Python 2 and Python 3 development ambitus (including virtualenv) Plene configuratur.
Mandatum Versus Tools gcloud, Docker, ad и kubectlquibus utemur iam institutis.
Exemplum applicationis in Pythone scriptum est et in duobus consistit quae inter se occurrunt OTIUM:
Server: Simplex servo uno endpoint ADVENIO, /qui ad consolatorium procer "salve mundi".
loadgen: Scriptum qui misit negotiationis est Servercum figurabili numero petitionum secundarum.
Currentem applicationem a fonte codice
Ad specimen applicationis explorandum, in Cloud Testa vel in computatorio tuo currendum est.
I) in catalogo istio-exempla / exempla-apps / helloserver Curre Server:
python3 server/server.py
Quando vos satus Server sequenti monstratur;
INFO:root:Starting server...
II) Aperi alium terminum fenestras mittere petitiones Server. Si Nube Testa uteris, iconem addendi preme ut sessionem aliam aperias.
III) mitte rogationem Server:
curl http://localhost:8080
servo respondet:
Hello World!
4) Ex indice ubi exemplar codicem detraxisti, vade ad indicem continentem loadgen:
cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen
Ex prospectu network retis, tota applicatio in unum exercitum decurrit (locus computatorius vel Cloud Testa machinae virtualis). Ergo uti potes localhostut petitiones Server.
X) Ut prohibere loadgen и Server, intra Ctrl-c* in omni termino fenestra.
XI) in termino fenestra loadgen deactivate virtualis environment:
deactivate
Packaging applicationem in vasis
Currere applicationes GKE, exemplum applicationis sarcina opus est Server и loadgen - in disrumpit. Continens est via ad sarcinam applicatio ad eam recludet a ambitu suo.
Ad sarcina applicationem in utre, opus est Dockerfile. Dockerfile fasciculus textus est qui praecepta definit ad aedificationem applicationis fontem codicem eiusque clientelas in Docker imaginem. Postquam aedificatum est, imaginem in vase registro imposuisti sicut Docker Hub vel Continens Subcriptio.
Exemplum iam Dockerfile ad Server и loadgen cum omnibus necessariis mandatis ad imagines colligendas. Infra - Dockerfile ad Server:
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" ]
bigas FROM Python: III, gracili pro basi narrat Docker ut tardus Python 3 image ut turpe.
bigas EXEMPLUM. . effingo fons lima ad hodiernam operandi Directory (in nostro casu tantum server.py) Ad ratio lima continens.
ENTRYPOINT definit imperativum, quod adhibetur exordium continens. In nobis, hoc praeceptum idem fere est ac currebatis server.py ex fonte codice.
bigas EXPOSITIO indicat Server notitia observat per portum 8080. Hic dolor non est praebet portuum. Haec documenta quaedam sunt quae ad portum aperiendum necesse est 8080 continens incipiens.
Imaginum in promptuario recognoscere et cognoscere imagines in promptuario sunt:
gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istio
Praeceptum demonstrat nomina imaginum recentium imaginum impressarum:
NAME
gcr.io/PROJECT_ID/preparing-istio/helloserver
gcr.io/PROJECT_ID/preparing-istio/loadgen
Botrus creans GKE.
Haec vasa in nubem testam virtualem machinam currere potuerunt vel in computatrali mandato currere Docker. Sed in ambitu productionis via opus est ad continentes centrales orchestratos. Exempli gratia, ratio indigetis quae certos continentes semper currentes facit, et via opus est ut conscendat ac traheret instantiae additae instantiae, si negotiatio augeatur.
Ad current applicationes continentis uti potes G.K.E.. GKE est suggestus continens orchestrationem quae virtualis machinis in botrum aggregatur. Quaelibet machina virtualis nodi dicitur. Racemi GKE in aperto fonte Kubernetes botri administratione rationi fundantur. Kubernetes machinationes commercium cum botro praebet.
bigas gcloud creates istioready botrum in GCP project et default zonam quae dedisti aequant. Currere Istio, commendamus habere saltem 4 nodos et machinam virtualem n1-vexillum-2.
Turma botrum in paucis minutis creat. Cum paratus est botrus, aliquid tale mandatum outputs сообщение.
II) videte in to order versus instrumentum documentorum kubectluti botro regendo;
3) Nunc communicare potes cum Kubernetibus via kubectl. Exempli gratia: mandatum sequens nodis statum invenire potest.
kubectl get nodes
Praeceptum nodis indicem gignit;
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
Kubernetes Key Conceptus
Tabula ostendit applicationem in GKE:
Antequam vasa in GKE explicas, notiones praecipuorum Kubernetensium disce. Sunt nexus in ipso fine si plura discere vis.
Nodi et clusters. In GKE, nodi machina virtualis est. In aliis suggestis Kubernetes, nodi potest esse machina computatralis vel virtualis. Botrus est collectio nodi quae considerari potest una unitas ubi applicationem continentis explicas.
Siliquae. In Kubernetes, vascula in siliquis currunt. Podex in Kubernetes indivisibilis unitas est. Vasculum unum vel plura continentia tenet. Explicas servo continentia et loadgen siliquis distinctis. Cum multa vasa in vasculo exstant (exempli gratia, applicatio servo ac ineundo servo) , continentia ut unum ens tractata et vasculum opum communicans.
Deployments. In Kubernetes, instruere obiectum est collectio siliquarum identicarum. Instruere multas replicationes siliquae per nodos racemos distributas movet. Instruere automatice reponit siliquas quae defecerunt vel male gratus sunt.
Kubernetes service. Cum applicatione codicis in GKE currit, nexus inter loadgen и Server. Cum officia virtualis apparatus vel desktop in Cloud Testa coepisti, petitiones misistis Server apud localhost: 8080. Olim ad GKE direxerunt, legumina in nodis promptis exercentur. Defalta, nullam habes potestatem cui vasculum currit, sic tu siliquae IP oratio nulla permanens.
Adipisci IP oratio pro Server, debes abstractionem retis super siliquis definire. Id quod est Kubernetes service. Ministerium Kubernetes pertinaciter punctum pro siliquis statuto praebet. Pauci sunt genera officia. Server usus LoadBalancerquae externam IP ad contactum praebet Server ab extra botrum.
Kubernetes etiam systema in DNS constructum habet nomina quae DNS assignat (exempli gratia: helloserver.default.cluster.local) officia. Propter hoc, siliquae intra botrum communicant cum aliis leguminis in botro assidua inscriptione. Nomen DNS extra botrum adhiberi non potest, ut in Cloud Testa vel in computatorio.
Kubernetes manifestat
Cum applicatione a fonte cucurreris, imperativum imperium usus es python3
server.py
Imperativus verbum importat: "hoc facite."
Kubernetes usus declarativum exemplar. Hoc significat nos Kubernetes non prorsus quid faciendum sit, sed potius de re publica desiderata describentes. Exempli gratia, Kubernetes incipit ac siliquas siliquas continet, prout opus est servare statum actualem systematis cum optato statui congruentem.
Desideratum statum in manifestat vel files indicant te YAML. Fasciculus YAML continet specificationes pro objectis vel pluribus Kubernetibus.
Exemplum continet fasciculi YAML for Server и loadgen. Quaelibet fasciculus YAML designat desideratum statum instituti rei et servitutis Kubernetes.
LoadBalancer: Clientes mittunt petitiones ad librarium IP oneris, quod assiduum IP inscriptionem habet et ab extra botrum accessibilis est.
targetPort: ut meministi, theam DENUNTIO 8080 в Dockerfile non portubus. Praestare portum 8080ut contactum vos can contact Server extra botrum. In nobis hellosvc.default.cluster.local:80 (nomen breve: hellosvc) Respondet ad portum 8080 Pod IP oratio salver.
portum: Portus hic est numerus, ubi alia officia in botro petitiones mittent.
loadgen.yaml
Instruere objectum loadgen.yaml vultus amo server.yaml. Discrimen est quod instruere res continet sectionem env. Ambituum variabilium definit, quae necessaria sunt loadgen et quod a fonte currens instituisti.
Cum loadgen advenientis petitiones non accipit, pro agro genus incognita ClusterIP. Hoc genus IP oratio assidua praebet quae officia in botro uti possunt, sed haec IP oratio externis clientibus non exponitur.
Restituo PROJECT_ID ad GCP project ID.
IV) salvum ac prope loadgen.yaml, textum editorem claude.
10) tabellam YAML ad Kubernetes explica:
kubectl apply -f loadgen.yaml
Post feliciter expletum, sequentis codicis praeceptum producit:
deployment.apps/loadgenerator created
service/loadgensvc created
11) Perscriptio siliquae status:
kubectl get pods
Praeceptum ostendit statum;
NAME READY STATUS RESTARTS AGE
helloserver-69b9576d96-mwtcj 1/1 Running 0 58s
loadgenerator-774dbc46fb-gpbrz 1/1 Running 0 57s
12) Tigna applicationis extractum ex legumen loadgen. Restituo POD_ID identifier ad priorem responsum a.
kubectl logs loadgenerator-POD_ID
XIII) externum IP oratio hellosvc:
kubectl get service
Praeceptum responsionis simile quiddam spectat:
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
III) mitte rogationem hellosvc: repone EXTERNAL_IP IP ad externum hellosvc.
curl http://EXTERNAL_IP
Induamus Istio
Iam applicatio ad GKE direxit. loadgen potest uti Kubernetes DNS (hellosvc: 80) Ad petitiones mittere Serveret mittere potes petitiones Server externa IP. Etsi Kubernetes multas notas habet, nonnulla de officiis desunt;
Quomodo officia penitus? Quae sunt relationes inter officia? Quomodo commercium inter officia fluit? Scisne loadgen petit to Serversed finge nescias quid de applicatione. Ad has quaestiones solvendas, inspiciamus siliquae indicem GKE currentium.
Metrics. Quousque? Server Respondet advenientis petitionem? Quot petitiones secundae a servo accipiuntur? An error mandata dat?
Securitatis Information. Negotiationis inter loadgen и Server sicut transit per HTTP aut * mTLS'?
Istio omnibus his quaestionibus respondet. Ad hoc Istio locat procuratorem sidecar envoy in unoquoque vasculo. Procurator Procurator omnes advenientes et exitu mercaturas ad applicationes continentia intercipit. Hoc est quod Server и loadgen recipiat per procuratorem sidecar Procuratorem et omnia negotiatio a loadgen к Server it per procuratorem legatum.
Nexus inter Legatos procuratores reticulum serviendum faciunt. Ministerium architectura reticulatum accumsan regiminis super Kubernetes praebet.
Cum Legatus procuratores in suis vasis currunt, Istio super glomerum GKE institui potest nullis fere mutationibus ad codicem applicandum. Sed aliquid operati es opus ut tua applicatione parata ab Istio curanda sint:
Officia pro omnibus vasis. Ad deployments Server и loadgen ad Kubernetes servitio devinctum. Etiam loadgenquae advenientes petitiones non recipit, obsequium est.
Portus in servitiis nomina habere debent. Etsi opera portus in GKE nominari possunt, Istio te requirit ut definias portum nomen ex eius protocollo. In YAML file portum for Server quod dicitur httpquia servo utitur protocol HTTP. Si obsequium usus est gRPC, portum nominare grpc.
Instructiones languescunt. Ideo negotia administrationis Istio uti potes, ut commercium inter versiones eiusdem servitii scindendo.
installing Istio
Dupliciter institutionem Istio. Can enable Istio in GKE extensionem aut install fons aperta versio Istio in botro. Cum Istio in GKE, Istio officinas et upgrades per GKE vitae cyclos facile administrare potes. Si vis novissimam versionem Istio vel potius potestatem tuam configurationis tabulae Istio regere, aperi fontem apertum versionis loco Istio in GKE extensionem. Decernere in accessu, legere articulum Quid opus est Istio GKE?.
Elige optionem, ducem convenientem recense, et instructiones sequere ut Istio in botro tuo instituatur. Si vis uti Istio, cum tua nuper instruxit applicatione; enable sidecar implementation nam spatio nominali default.
dictum
Ad ne in Google Cloud Platform rationem ob facultates quas in hoc doceo tuo mandaris, dele vas botrum semel Istio instituisti et cum applicatione specimen lusisti. Hoc omnes facultates glomeras removebunt, ut instantiae computatae, orbis, et retis facultates.