Undirbúa umsókn fyrir Istio

Undirbúa umsókn fyrir Istio

Istio er þægilegt tæki til að tengja, tryggja og fylgjast með dreifðum forritum. Istio notar margs konar tækni til að keyra og stjórna hugbúnaði í stærðargráðu, þar á meðal gáma til að pakka forritakóða og ósjálfstæði fyrir uppsetningu, og Kubernetes til að stjórna þessum gámum. Þess vegna, til að vinna með Istio, verður þú að vita hvernig forrit með mörgum þjónustum sem byggir á þessari tækni virkar без Istio. Ef þú þekkir þessi verkfæri og hugtök nú þegar skaltu ekki hika við að sleppa þessari kennslu og fara beint í hlutann Uppsetning Istio á Google Kubernetes Engine (GKE) eða setja upp viðbót Istio á GKE.

Þetta er skref-fyrir-skref leiðbeining þar sem við munum ganga í gegnum allt ferlið frá frumkóða til GKE íláts til að gefa þér grunnskilning á þessari tækni með dæmi. Þú munt líka sjá hvernig Istio nýtir kraft þessarar tækni. Þetta gerir ráð fyrir að þú veist ekkert um gáma, Kubernetes, þjónustunet eða Istio.

verkefni

Í þessari kennslu muntu klára eftirfarandi verkefni:

  1. Að læra einfalt halló heim forrit með mörgum þjónustum.
  2. Keyra forritið frá frumkóða.
  3. Pökkun umsóknarinnar í ílát.
  4. Að búa til Kubernetes klasa.
  5. Að dreifa gámum í klasa.

Áður en þú byrjar

Fylgdu leiðbeiningunum til að virkja Kubernetes Engine API:

  1. Fara til Kubernetes Engine síða í Google Cloud Platform stjórnborðinu.
  2. Búðu til eða veldu verkefni.
  3. Bíddu þar til API og tengd þjónusta eru virkjuð. Þetta gæti tekið nokkrar mínútur.
  4. Gakktu úr skugga um að innheimta sé sett upp fyrir Google Cloud Platform verkefnið þitt. Lærðu hvernig á að virkja innheimtu.

Í þessari kennslu geturðu notað Cloud Shell, sem undirbýr sýndarvélina g1-small í Google Compute Engine með Debian-undirstaða Linux, eða Linux eða macOS tölvu.

Valkostur A: Notkun Cloud Shell

Kostir þess að nota Cloud Shell:

  • Python 2 og Python 3 þróunarumhverfi (þar á meðal virtualenv) eru fullstillt.
  • Skipanalínuverkfæri gcloud, bryggju, Git и kubectl, sem við munum nota eru þegar uppsett.
  • Þú hefur úr nokkrum að velja textaritlar:
    1. Kóðaritill, sem opnast með breytingatákninu efst í Cloud Shell glugganum.
    2. Emacs, Vim eða Nano, sem opnast frá skipanalínunni í Cloud Shell.

Að nota Cloud Shell:

  1. Farðu í GCP stjórnborðið.
  2. Smelltu á hnappinn Virkjaðu Cloud Shell (Virkjaðu Cloud Shell) efst í GCP stjórnborðsglugganum.

Undirbúa umsókn fyrir Istio

Í neðri hlutanum GCP leikjatölvu Cloud Shell fundur með skipanalínu opnast í nýjum glugga.

Undirbúa umsókn fyrir Istio

Valkostur B: Notaðu stjórnlínuverkfæri á staðnum

Ef þú verður að vinna á tölvu sem keyrir Linux eða macOS þarftu að stilla og setja upp eftirfarandi hluti:

  1. Sérsníða Python 3 og Python 2 þróunarumhverfi.

  2. Settu upp Cloud SDK með skipanalínutóli gcloud.

  3. Setja kubectl - skipanalínuverkfæri til að vinna með Kubernetes.

    gcloud components install kubectl

  4. Setja Docker Community Edition (CE). Þú munt nota skipanalínutólið bryggjutil að búa til gámamyndir fyrir sýnishornsforritið.

  5. Settu upp tólið Git útgáfustýringtil að fá sýnishornsforritið frá GitHub.

Sækja sýnishorn kóða

  1. Sækja frumkóðann halló þjónn:

    git clone https://github.com/GoogleCloudPlatform/istio-samples

  2. Farðu í dæmi um kóðaskrána:

    cd istio-samples/sample-apps/helloserver

Kanna forrit með mörgum þjónustum

Sýnisforritið er skrifað í Python og samanstendur af tveimur hlutum sem hafa samskipti með því að nota REST:

  • miðlara: einfaldur þjónn með einum endapunkti FÁ, /, sem prentar „halló heimur“ á stjórnborðið.
  • loadgen: forskrift sem sendir umferð til miðlara, með stillanlegum fjölda beiðna á sekúndu.

Undirbúa umsókn fyrir Istio

Keyrir forrit frá frumkóða

Til að kanna sýnishornsforritið skaltu keyra það í Cloud Shell eða á tölvunni þinni.
1) Í vörulista istio-samples/sample-apps/helloserver hlaupa miðlara:

python3 server/server.py

Við ræsingu miðlara eftirfarandi birtist:

INFO:root:Starting server...

2) Opnaðu annan flugstöðvarglugga til að senda beiðnir til miðlara. Ef þú ert að nota Cloud Shell, smelltu á bæta við táknið til að opna aðra lotu.
3) Sendu beiðni til miðlara:

curl http://localhost:8080

þjónn svarar:

Hello World!

4) Frá möppunni þar sem þú sóttir sýnishornskóðann, farðu í möppuna sem inniheldur loadgen:

cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/loadgen

5) Búðu til eftirfarandi umhverfisbreytur:

export SERVER_ADDR=http://localhost:8080
export REQUESTS_PER_SECOND=5

6) Ræsa virtualenv:

virtualenv --python python3 env

7) Virkjaðu sýndarumhverfið:

source env/bin/activate

8) Setja kröfur um loadgen:

pip3 install -r requirements.txt

9) Ræsa loadgen:

python3 loadgen.py

Við ræsingu loadgen birtir eitthvað eins og eftirfarandi skilaboð:

Starting loadgen: 2019-05-20 10:44:12.448415
5 request(s) complete to http://localhost:8080

Í öðrum flugstöðvarglugga miðlara gefur út eftirfarandi skilaboð á stjórnborðið:

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: */*

Frá sjónarhóli netkerfisins keyrir allt forritið á einum gestgjafa (staðbundinni tölvu eða Cloud Shell sýndarvél). Þess vegna getur þú notað localhosttil að senda beiðnir til miðlara.
10) Að hætta loadgen и miðlara, koma inn Ctrl-c í hverjum flugstöðvarglugga.
11) Í flugstöðvarglugganum loadgen slökkva á sýndarumhverfinu:

deactivate

Pökkun umsóknar í ílát

Til að keyra forritið á GKE þarftu að pakka sýnishornsforritinu - miðlara и loadgen - kl ílát. Gámur er leið til að pakka forriti til að einangra það frá umhverfi sínu.

Til að pakka forriti í ílát þarftu Dockerfil. Dockerfil er textaskrá sem skilgreinir skipanir til að byggja frumkóða forritsins og ósjálfstæði þess inn í Docker mynd. Þegar hún hefur verið byggð hleður þú upp myndinni í gámaskrá eins og Docker Hub eða Gámaskrá.

Dæmið hefur þegar Dockerfil í miðlara и loadgen með öllum nauðsynlegum skipunum til að safna myndum. Fyrir neðan - Dockerfil í miðlara:

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" ]

  • Team FRÁ python:3-slim sem grunnur segir Docker að nota það nýjasta Python 3 mynd sem grunnur.
  • Team AFRITA. . afritar frumskrárnar í núverandi vinnumöppu (aðeins í okkar tilviki server.py) í skráarkerfi ílátsins.
  • AÐGANGUR skilgreinir skipunina sem er notuð til að ræsa ílátið. Í okkar tilviki er þessi skipun nánast sú sama og þú notaðir til að keyra server.py frá frumkóða.
  • Team AFHJÚPA bendir til þess miðlara bíður eftir gögnum í gegnum höfnina 8080. Þetta lið er það ekki veitir hafnir. Þetta er einhvers konar skjöl sem þarf til að opna höfnina 8080 þegar gáminn er ræstur.

Undirbúningur að geyma umsókn þína

1) Stilltu eftirfarandi umhverfisbreytur. Skipta um PROJECT_ID til GCP verkefnakennisins.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

Að nota gildi PROJECT_ID и GCR_REPO þú merkir Docker myndina þegar þú smíðar hana og ýtir henni í einkagámaskrá.

2) Stilltu sjálfgefið GCP verkefni fyrir skipanalínutólið gcloud.

gcloud config set project $PROJECT_ID

3) Stilltu sjálfgefið svæði fyrir skipanalínutólið gcloud.

gcloud config set compute/zone us-central1-b

4) Gakktu úr skugga um að gámaskrárþjónustan sé virkjuð í GCP verkefninu.

gcloud services enable containerregistry.googleapis.com

Gámamiðlari

  1. Farðu í möppuna þar sem dæmið er staðsett miðlara:

    cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/

  2. Settu myndina saman með því að nota Dockerfil og umhverfisbreyturnar sem þú skilgreindir áðan:

    docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1 .

Viðfang -t táknar Docker merkið. Þetta er nafn myndarinnar sem þú notar þegar þú setur ílátið upp.

  1. Hladdu upp myndinni í gámaskrána:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

Gámavæðing loadgen

1) Farðu í möppuna þar sem dæmið er staðsett loadgen:

cd ../loadgen

2) Safnaðu myndinni:

docker build -t gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1 .

3) Hladdu upp myndinni í gámaskrána:

docker push gcr.io/$PROJECT_ID/$GCR_REPO/loadgen:v0.0.1

Skoða lista yfir myndir

Skoðaðu lista yfir myndir í geymslunni og staðfestu að myndunum hafi verið hlaðið upp:

gcloud container images list --repository gcr.io/$PROJECT_ID/preparing-istio

Skipunin sýnir nöfn nýupphlaðna mynda:

NAME
gcr.io/PROJECT_ID/preparing-istio/helloserver
gcr.io/PROJECT_ID/preparing-istio/loadgen

Að búa til GKE klasa.

Hægt væri að keyra þessa gáma á Cloud Shell sýndarvél eða á tölvu með skipuninni skipakví. En í framleiðsluumhverfi þarftu leið til að skipuleggja gáma miðlægt. Til dæmis þarftu kerfi sem tryggir að gámar séu alltaf í gangi og þú þarft leið til að stækka og snúa upp fleiri gámatilvikum ef umferð eykst.

Til að keyra gámaforrit sem þú getur notað G.K.E.. GKE er gámaskipunarvettvangur sem safnar saman sýndarvélum í klasa. Hver sýndarvél er kölluð hnútur. GKE klasar eru byggðir á opnum uppsprettu Kubernetes klasastjórnunarkerfi. Kubernetes veitir kerfi til að hafa samskipti við klasann.

Að búa til GKE klasa:

1) Búðu til klasa:

gcloud container clusters create istioready 
  --cluster-version latest 
  --machine-type=n1-standard-2 
  --num-nodes 4

Team gcloud býr til þyrping sem er tilbúinn í GCP verkefninu og sjálfgefnu svæði sem þú tilgreindir. Til að keyra Istio mælum við með að hafa að minnsta kosti 4 hnúta og sýndarvél n1-staðall-2.

Liðið býr til þyrpinguna á nokkrum mínútum. Þegar þyrpingin er tilbúin gefur skipunin eitthvað á þessa leið skilaboðin.

2) Gefðu upp skilríki í skipanalínutólinu kubectltil að nota það til að stjórna klasanum:

gcloud container clusters get-credentials istioready

3) Nú geturðu átt samskipti við Kubernetes í gegnum kubectl. Til dæmis getur eftirfarandi skipun fundið út stöðu hnúta:

kubectl get nodes

Skipunin framleiðir lista yfir hnúta:

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 lykilhugtök

Skýringarmyndin sýnir forrit á GKE:

Undirbúa umsókn fyrir Istio

Áður en þú setur upp gáma í GKE skaltu læra lykilhugtök Kubernetes. Það eru tenglar alveg í lokin ef þú vilt læra meira.

  • Hnútar og klasar. Í GKE er hnútur sýndarvél. Á öðrum Kubernetes kerfum getur hnútur verið tölva eða sýndarvél. Klasi er safn hnúta sem geta talist ein eining þar sem þú setur upp gámaforrit.
  • Belg. Í Kubernetes keyra gámar í belg. Pod í Kubernetes er óskiptanleg eining. Pod geymir einn eða fleiri ílát. Þú setur upp netþjónagáma og loadgen í aðskildum belgjum. Þegar það eru nokkrir ílát í belg (td forritaþjónn og proxy-þjónn), gámum er stjórnað sem einni heild og deila belgauðlindum.
  • Dreifingar. Í Kubernetes er dreifing hlutur sem er safn af sömu belgjum. Dreifing setur af stað margar eftirlíkingar af belgjum sem dreift er yfir klasahnúta. Dreifing kemur sjálfkrafa í stað belg sem hafa mistekist eða svara ekki.
  • Kubernetes þjónusta. Þegar forritakóði er keyrður í GKE er tengingin milli loadgen и miðlara. Þegar þú byrjaðir þjónustu á Cloud Shell sýndarvél eða skjáborði sendir þú beiðnir til miðlara ástæðulaust localhost: 8080. Þegar þeim hefur verið dreift til GKE eru fræbelgir keyrðir á tiltækum hnútum. Sjálfgefið hefur þú enga stjórn á hvaða hnút belgurinn er að keyra á, svo þú fræbelgur engar varanlegar IP tölur.
    Til að sækja IP tölu fyrir miðlara, þú þarft að skilgreina netútdrátt ofan á belgunum. Það er það sem það er Kubernetes þjónusta. Kubernetes þjónustan veitir viðvarandi endapunkt fyrir sett af belgjum. Það eru nokkrir tegundir þjónustu. miðlara notar LoadBalancer, sem veitir ytri IP-tölu til að hafa samband við miðlara utan úr klasanum.
    Kubernetes er einnig með innbyggt DNS kerfi sem úthlutar DNS nöfnum (til dæmis, helloserver.default.cluster.local) þjónusta. Þökk sé þessu hafa fræbelgir innan klasans samskipti við aðra fræbelg í klasanum á varanlegu heimilisfangi. Ekki er hægt að nota DNS nafnið utan klasans, svo sem í Cloud Shell eða á tölvu.

Kubernetes birtast

Þegar þú keyrðir forritið frá uppruna, notaðir þú nauðsynlega skipunina python3

server.py

Þörf felur í sér sögn: „gera þetta“.

Kubernetes notar yfirlýsingarfyrirmynd. Þetta þýðir að við erum ekki að segja Kubernetes nákvæmlega hvað á að gera, heldur að lýsa því ástandi sem óskað er eftir. Til dæmis, Kubernetes ræsir og stöðvar belg eftir þörfum til að tryggja að raunverulegt ástand kerfisins passi við það ástand sem óskað er eftir.

Þú gefur til kynna viðkomandi ástand í upplýsingaskrám eða skrám YAML. YAML skrá inniheldur forskriftir fyrir einn eða fleiri Kubernetes hluti.

Dæmið inniheldur YAML skrá fyrir miðlara и loadgen. Hver YAML skrá tilgreinir æskilega stöðu dreifingarhlutarins og Kubernetes þjónustu.

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

  • góður gefur til kynna gerð hlutarins.
  • metadata.name tilgreinir dreifingarheitið.
  • Fyrsti völlurinn sérstakur inniheldur lýsingu á því ástandi sem óskað er eftir.
  • sérstakur.eftirmyndir gefur til kynna þann fjölda fræbelgja sem óskað er eftir.
  • Kafli sérsniðmát skilgreinir pod sniðmát. Það er reitur í belgforskriftinni mynd, sem tilgreinir nafn myndarinnar sem þarf að draga úr gámaskránni.

Þjónustan er skilgreind sem hér segir:

apiVersion: v1
kind: Service
metadata:
  name: hellosvc
spec:
  type: LoadBalancer
  selector:
    app: helloserver
  ports:
  - name: http
    port: 80
    targetPort: 8080

  • LoadBalancer: Viðskiptavinir senda beiðnir á IP-tölu álagsjafnarans, sem hefur viðvarandi IP-tölu og er aðgengileg utan þyrpingarinnar.
  • targetPort: eins og þú manst, liðið FYRIR 8080 в Dockerfil veitti ekki hafnir. Þú útvegar höfnina 8080svo þú getir haft samband við gáminn miðlara utan klasans. Í okkar tilviki hellosvc.default.cluster.local:80 (stutt nafn: hallósvc) samsvarar höfninni 8080 Pod IP tölur halló þjónn.
  • höfn: Þetta er gáttarnúmerið þar sem önnur þjónusta í klasanum mun senda beiðnir.

loadgen.yaml

Dreifing mótmæla loadgen.yaml Líta út eins og server.yaml. Munurinn er sá að dreifingarhluturinn inniheldur hluta env. Það skilgreinir umhverfisbreyturnar sem þarf loadgen og sem þú settir upp þegar þú keyrir forritið frá uppruna.

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

Tími loadgen tekur ekki við beiðnum sem berast, fyrir reitinn tegund gefið til kynna ClusterIP. Þessi tegund veitir viðvarandi IP-tölu sem þjónusta í klasanum getur notað, en þetta IP-tala er ekki útsett fyrir utanaðkomandi viðskiptavinum.

apiVersion: v1
kind: Service
metadata:
  name: loadgensvc
spec:
  type: ClusterIP
  selector:
    app: loadgenerator
  ports:
  - name: http
    port: 80
    targetPort: 8080

Að dreifa gámum í GKE

1) Farðu í möppuna þar sem dæmið er staðsett miðlara:

cd YOUR_WORKING_DIRECTORY/istio-samples/sample-apps/helloserver/server/

2) Opið server.yaml í textaritli.
3) Skiptu um nafnið í reitnum mynd á nafnið á Docker myndinni þinni.

image: gcr.io/PROJECT_ID/preparing-istio/helloserver:v0.0.1

Skipta um PROJECT_ID til GCP verkefnakennisins þíns.
4) Vista og loka server.yaml.
5) Dreifðu YAML skránni á Kubernetes:

kubectl apply -f server.yaml

Þegar henni er lokið framleiðir skipunin eftirfarandi kóða:

deployment.apps/helloserver created
service/hellosvc created

6) Farðu í möppuna þar sem loadgen:

cd ../loadgen

7) Opið loadgen.yaml í textaritli.
8) Skiptu um nafnið í reitnum mynd á nafnið á Docker myndinni þinni.

image: gcr.io/PROJECT_ID/preparing-istio/loadgenv0.0.1

Skipta um PROJECT_ID til GCP verkefnakennisins þíns.
9) Vista og loka loadgen.yaml, lokaðu textaritlinum.
10) Dreifðu YAML skránni á Kubernetes:

kubectl apply -f loadgen.yaml

Þegar henni er lokið framleiðir skipunin eftirfarandi kóða:

deployment.apps/loadgenerator created
service/loadgensvc created

11) Athugaðu stöðu belganna:

kubectl get pods

Skipunin sýnir stöðuna:

NAME                             READY   STATUS    RESTARTS   AGE
helloserver-69b9576d96-mwtcj     1/1     Running   0          58s
loadgenerator-774dbc46fb-gpbrz   1/1     Running   0          57s

12) Dragðu út forritaskrár úr belgnum loadgen. Skipta um POD_ID til auðkennis frá fyrra svari.

kubectl logs loadgenerator-POD_ID

13) Fáðu ytri IP tölur hallósvc:

kubectl get service

Skipunarsvarið lítur einhvern veginn svona út:

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) Sendu beiðni til hallósvc: skipta út EXTERNAL_IP á ytri IP tölu hallósvc.

curl http://EXTERNAL_IP

Tökum á móti Istio

Þú ert nú þegar með forrit sent til GKE. loadgen getur notað Kubernetes DNS (halló:80) til að senda beiðnir til miðlaraog þú getur sent beiðnir til miðlara eftir ytri IP tölu. Þrátt fyrir að Kubernetes hafi marga eiginleika vantar einhverjar upplýsingar um þjónustuna:

  • Hvernig hefur þjónusta samskipti? Hver eru tengslin milli þjónustu? Hvernig flæðir umferð milli þjónustu? Ertu meðvitaður um það loadgen sendir beiðnir til miðlara, en ímyndaðu þér að þú vitir ekkert um forritið. Til að svara þessum spurningum skulum við skoða listann yfir hlaupandi belg í GKE.
  • Mælingar. Hversu lengi miðlara svarar beiðni sem berast? Hversu margar beiðnir á sekúndu berast þjóninum? Gefur það villuboð?
  • Öryggisupplýsingar. Umferð á milli loadgen и miðlara fer bara í gegn HTTP eða af mTLS?

Istio svarar öllum þessum spurningum. Til að gera þetta setur Istio umboð fyrir hliðarvagn Sendiherra í hverjum belg. Umboðsmaður sendiherra stöðvar alla inn- og útsendingu í forritagáma. Það þýðir að miðlara и loadgen móttaka í gegnum hliðarvagn umboðsenvoy, og allri umferð frá loadgen к miðlara fer í gegnum umboð sendifulltrúa.

Tengingar milli umboðsmanna sendiboða mynda þjónustunet. Þjónustunetsarkitektúrinn veitir lag af stjórn ofan á Kubernetes.

Undirbúa umsókn fyrir Istio

Þar sem sendiboðar keyra í sínum eigin gámum, er hægt að setja Istio ofan á GKE þyrpingu með nánast engum breytingum á forritskóðanum. En þú hefur unnið nokkra vinnu til að gera forritið þitt tilbúið til að vera stjórnað af Istio:

  • Þjónusta fyrir alla gáma. Til dreifingar miðlara и loadgen tengt Kubernetes þjónustunni. Jafnvel loadgen, sem tekur ekki á móti beiðnum, það er þjónusta.
  • Hafnir í þjónustu verða að hafa nöfn. Þó að þjónustuhöfn geti verið skilin eftir ónefnd í GKE, krefst Istio þess að þú tilgreinir nafn hafnar í samræmi við bókun hans. Í YAML skrá höfn fyrir miðlara kallað HTTPvegna þess að þjónninn notar samskiptaregluna HTTP. Ef þjónusta notað gRPC, þú myndir nefna höfnina grpc.
  • Dreifingar eru merktar. Þess vegna geturðu notað umferðarstjórnunareiginleika Istio, eins og að skipta umferð á milli útgáfur af sömu þjónustu.

Er að setja upp Istio

Það eru tvær leiðir til að setja upp Istio. Dós virkjaðu Istio á GKE framlengingu eða settu upp opinn uppspretta útgáfu af Istio á klasanum. Með Istio á GKE geturðu auðveldlega stjórnað Istio uppsetningum og uppfærslum í gegnum líftíma GKE klasans. Ef þú vilt nýjustu útgáfuna af Istio eða meiri stjórn á Istio stjórnborðinu þínu skaltu setja upp opna útgáfuna í staðinn fyrir Istio on GKE viðbótina. Til að ákveða nálgunina skaltu lesa greinina Þarf ég Istio á GKE?.

Veldu valkost, skoðaðu viðeigandi leiðbeiningar og fylgdu leiðbeiningunum til að setja upp Istio á þyrpingunni þinni. Ef þú vilt nota Istio með nýlega uppsettu forritinu þínu, gera hliðarvagna útfærslu kleift fyrir nafnrými sjálfgefið.

Þrif

Til að forðast að vera rukkaður á Google Cloud Platform reikninginn þinn fyrir tilföngin sem þú notaðir í þessari kennslu skaltu eyða gámaklasanum þegar þú hefur sett upp Istio og spilað með sýnishornsforritinu. Þetta mun fjarlægja öll klasatilföng, svo sem tölvutilvik, diska og nettilföng.

Hvað er næst?

Heimild: www.habr.com

Bæta við athugasemd