Priprava aplikacije za Istio

Priprava aplikacije za Istio

Istio je priročno orodje za povezovanje, varovanje in spremljanje porazdeljenih aplikacij. Istio uporablja različne tehnologije za zagon in upravljanje programske opreme v velikem obsegu, vključno z vsebniki za pakiranje aplikacijske kode in odvisnosti za uvajanje ter Kubernetes za upravljanje teh vsebnikov. Zato morate za delo z Istio vedeti, kako deluje aplikacija z več storitvami, ki temeljijo na teh tehnologijah brez Istio. Če so vam ta orodja in koncepti že znani, lahko preskočite to vadnico in pojdite naravnost na razdelek Namestitev Istio na Google Kubernetes Engine (GKE) ali namestitev razširitve Istio na GKE.

To je vodnik po korakih, v katerem se bomo sprehodili skozi celoten postopek od izvorne kode do vsebnika GKE, da boste s primerom dobili osnovno razumevanje teh tehnologij. Videli boste tudi, kako Istio izkorišča moč teh tehnologij. To predpostavlja, da ne veste ničesar o vsebnikih, Kubernetesu, storitvenih mrežah ali Istiu.

naloge

V tej vadnici boste opravili naslednje naloge:

  1. Učenje preproste aplikacije hello world z več storitvami.
  2. Zaženite aplikacijo iz izvorne kode.
  3. Pakiranje aplikacije v zabojnike.
  4. Ustvarjanje gruče Kubernetes.
  5. Namestitev vsebnikov v gručo.

Preden začnete

Sledite navodilom za omogočanje API-ja Kubernetes Engine:

  1. Pojdi na Stran Kubernetes Engine v konzoli Google Cloud Platform.
  2. Ustvarite ali izberite projekt.
  3. Počakajte, da so API in povezane storitve omogočene. To lahko traja nekaj minut.
  4. Prepričajte se, da je obračunavanje nastavljeno za vaš projekt Google Cloud Platform. Naučite se omogočiti obračunavanje.

V tej vadnici lahko uporabite Cloud Shell, ki pripravi virtualni stroj g1-small v Google Compute Engine z Linuxom, ki temelji na Debianu, ali računalnikom Linux ali macOS.

Možnost A: Uporaba Cloud Shell

Prednosti uporabe Cloud Shell:

  • Razvojna okolja Python 2 in Python 3 (vključno z virtualenv) so popolnoma konfigurirani.
  • Orodja ukazne vrstice gcloud, Docker, git и kubectl, ki jih bomo uporabljali, so že nameščeni.
  • Na izbiro imate več urejevalniki besedil:
    1. Urejevalnik kod, ki se odpre z ikono za urejanje na vrhu okna Cloud Shell.
    2. Emacs, Vim ali Nano, ki se odprejo iz ukazne vrstice v Cloud Shell.

Uporabiti Cloud Shell:

  1. Pojdite na konzolo GCP.
  2. pritisnite Aktivirajte Cloud Shell (Aktiviraj Cloud Shell) na vrhu okna konzole GCP.

Priprava aplikacije za Istio

V spodnjem delu GCP konzola Seja Cloud Shell z ukazno vrstico se bo odprla v novem oknu.

Priprava aplikacije za Istio

Možnost B: Lokalna uporaba orodij ukazne vrstice

Če boste delali v računalniku z operacijskim sistemom Linux ali macOS, boste morali konfigurirati in namestiti naslednje komponente:

  1. Prilagoditi Razvojno okolje Python 3 in Python 2.

  2. Namestite Cloud SDK z orodjem ukazne vrstice gcloud.

  3. Set kubectl - orodje ukazne vrstice za delo Kubernetes.

    gcloud components install kubectl

  4. Set Docker Community Edition (CE). Uporabili boste orodje ukazne vrstice Dockerza ustvarjanje slik vsebnika za vzorčno aplikacijo.

  5. Namestite orodje Nadzor različic Gitda dobite vzorčno aplikacijo iz GitHub.

Prenesite vzorčno kodo

  1. Prenesite izvorno kodo helloserver:

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

  2. Pojdite v imenik primerov kode:

    cd istio-samples/sample-apps/helloserver

Raziskovanje aplikacije z več storitvami

Vzorčna aplikacija je napisana v Pythonu in je sestavljena iz dveh komponent, ki sodelujeta z uporabo REST:

  • strežnik: preprost strežnik z eno končno točko DOBITI, /, ki natisne "hello world" na konzolo.
  • loadgen: skripta, ki pošilja promet na strežnik, z nastavljivim številom zahtev na sekundo.

Priprava aplikacije za Istio

Zagon aplikacije iz izvorne kode

Če želite raziskati vzorčno aplikacijo, jo zaženite v Cloud Shell ali v računalniku.
1) V katalogu istio-samples/sample-apps/helloserver teči strežnik:

python3 server/server.py

Ob zagonu strežnik prikaže se naslednje:

INFO:root:Starting server...

2) Odprite drugo terminalsko okno, kamor želite poslati zahteve strežnik. Če uporabljate Cloud Shell, kliknite ikono za dodajanje, da odprete novo sejo.
3) Pošljite zahtevo na strežnik:

curl http://localhost:8080

strežnik odgovori:

Hello World!

4) Iz imenika, v katerega ste prenesli vzorčno kodo, pojdite v imenik, ki vsebuje loadgen:

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

5) Ustvarite naslednje spremenljivke okolja:

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

6) Teči virtualenv:

virtualenv --python python3 env

7) Aktivirajte virtualno okolje:

source env/bin/activate

8) Postavite zahteve za loadgen:

pip3 install -r requirements.txt

9) Teči loadgen:

python3 loadgen.py

Ob zagonu loadgen prikaže nekaj podobnega naslednjemu sporočilu:

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

V drugem terminalskem oknu strežnik na konzolo izpiše naslednja sporočila:

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

Z omrežnega vidika se celotna aplikacija izvaja na enem samem gostitelju (lokalni računalnik ali virtualni stroj Cloud Shell). Zato lahko uporabite localhostza pošiljanje zahtev strežnik.
10) Ustaviti loadgen и strežnik, vnesite Ctrl-c v vsakem terminalskem oknu.
11) V oknu terminala loadgen deaktiviraj virtualno okolje:

deactivate

Pakiranje aplikacije v zabojnike

Če želite zagnati aplikacijo na GKE, morate zapakirati vzorčno aplikacijo − strežnik и loadgen - v posode. Vsebnik je način pakiranja aplikacije, ki jo izolira od okolja.

Če želite aplikacijo zapakirati v vsebnik, potrebujete Dockerfile. Dockerfile je besedilna datoteka, ki definira ukaze za vgradnjo izvorne kode aplikacije in njenih odvisnosti Dockerjeva slika. Ko je zgrajena, naložite sliko v register vsebnikov, kot je Docker Hub ali Register zabojnikov.

Primer že ima Dockerfile za strežnik и loadgen z vsemi potrebnimi ukazi za zbiranje slik. Spodaj - Dockerfile za strežnik:

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

  • Ekipa IZ python:3-slim kot osnova pove Dockerju, naj uporabi najnovejšo Slika Python 3 kot osnova.
  • Ekipa KOPIRATI. . kopira izvorne datoteke v trenutni delovni imenik (v našem primeru samo server.py) v datotečni sistem vsebnika.
  • VSTOPNA TOČKA definira ukaz, ki se uporablja za zagon vsebnika. V našem primeru je ta ukaz skoraj enak tistemu, ki ste ga zagnali server.py iz izvorne kode.
  • Ekipa IZPOSTAVITEV kaže na to strežnik čaka na podatke skozi vrata 8080. Ta ekipa ni zagotavlja pristanišča. To je neke vrste dokumentacija, ki je potrebna za odpiranje vrat 8080 pri zagonu posode.

Priprava na kontejneriziranje vaše aplikacije

1) Nastavite naslednje spremenljivke okolja. Zamenjati PROJECT_ID na vaš ID projekta GCP.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

Uporaba vrednosti PROJECT_ID и GCR_REPO sliko Dockerja označite, ko jo sestavite, in jo potisnete v zasebni register vsebnikov.

2) Nastavite privzeti projekt GCP za orodje ukazne vrstice gcloud.

gcloud config set project $PROJECT_ID

3) Nastavite privzeto območje za orodje ukazne vrstice gcloud.

gcloud config set compute/zone us-central1-b

4) Prepričajte se, da je storitev Container Registry omogočena v projektu GCP.

gcloud services enable containerregistry.googleapis.com

Strežnik za kontejnerizacijo

  1. Pojdite v imenik, kjer se nahaja primer strežnik:

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

  2. Sestavite sliko z uporabo Dockerfile in spremenljivke okolja, ki ste jih definirali prej:

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

Parameter -t predstavlja oznako Docker. To je ime slike, ki jo uporabljate pri razmestitvi vsebnika.

  1. Prenesite sliko v register vsebnikov:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

Kontejnerizacija loadgen

1) Pojdite v imenik, kjer se nahaja primer loadgen:

cd ../loadgen

2) Zberite sliko:

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

3) Naložite sliko v register vsebnikov:

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

Oglejte si seznam slik

Preglejte seznam slik v skladišču in preverite, ali so bile slike naložene:

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

Ukaz prikaže imena na novo naloženih slik:

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

Ustvarjanje gruče GKE.

Te vsebnike je mogoče zagnati v virtualnem računalniku Cloud Shell ali v računalniku z ukazom Docker teče. Toda v produkcijskem okolju potrebujete način za centralno orkestriranje vsebnikov. Potrebujete na primer sistem, ki zagotavlja, da se vsebniki vedno izvajajo, in potrebujete način za povečanje in vrtenje dodatnih primerkov vsebnikov, če se promet poveča.

Za zagon kontejnerskih aplikacij lahko uporabite G.K.E.. GKE je platforma za orkestracijo vsebnikov, ki združuje virtualne stroje v gručo. Vsak virtualni stroj se imenuje vozlišče. Grozdi GKE temeljijo na odprtokodnem sistemu za upravljanje gruč Kubernetes. Kubernetes zagotavlja mehanizme za interakcijo z gručo.

Ustvarjanje gruče GKE:

1) Ustvarite gručo:

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

Ekipa gcloud ustvari gručo istioready v projektu GCP in privzetem območju, ki ste ga določili. Za zagon Istio priporočamo, da imate vsaj 4 vozlišča in virtualni stroj n1-standard-2.

Ekipa ustvari gručo v nekaj minutah. Ko je gruča pripravljena, ukaz izpiše nekaj takega sporočilo.

2) Vnesite poverilnice v orodju ukazne vrstice kubectlče ga želite uporabiti za upravljanje gruče:

gcloud container clusters get-credentials istioready

3) Zdaj lahko s Kubernetesom komunicirate prek kubectl. Naslednji ukaz lahko na primer ugotovi stanje vozlišč:

kubectl get nodes

Ukaz ustvari seznam vozlišč:

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

Ključni koncepti Kubernetes

Diagram prikazuje aplikacijo na GKE:

Priprava aplikacije za Istio

Preden namestite vsebnike v GKE, se naučite ključnih konceptov Kubernetesa. Na samem koncu so povezave, če želite izvedeti več.

  • Vozlišča in grozdi. V GKE je vozlišče navidezni stroj. Na drugih platformah Kubernetes je lahko vozlišče računalnik ali virtualni stroj. Grozd je zbirka vozlišč, ki jih je mogoče obravnavati kot eno samo enoto, kjer uvedete posodobljeno aplikacijo.
  • Stroki. V Kubernetesu vsebniki delujejo v podih. Pod v Kubernetesu je nedeljiva enota. Pod vsebuje eno ali več posod. Razmestite vsebnike strežnika in loadgen v ločenih strokih. Ko je v sklopu več vsebnikov (na primer aplikacijski strežnik in proxy strežnik), se vsebniki upravljajo kot ena entiteta in si delijo vire podov.
  • Razmestitve. V Kubernetesu je razmestitev objekt, ki je zbirka enakih sklopov. Razmestitev zažene več replik podov, porazdeljenih po vozliščih gruče. Uvedba samodejno zamenja pode, ki so odpovedali ali se ne odzivajo.
  • Storitev Kubernetes. Pri izvajanju kode aplikacije v GKE je povezava med loadgen и strežnik. Ko ste zagnali storitve na virtualnem računalniku ali namizju Cloud Shell, ste poslali zahteve na strežnik ob localhost: 8080. Ko so moduli nameščeni v GKE, se izvedejo na razpoložljivih vozliščih. Privzeto nimate nadzora nad tem, na katerem vozlišču se pod izvaja, tako da stroki brez stalnih naslovov IP.
    Za pridobitev naslova IP za strežnik, morate definirati omrežno abstrakcijo na vrhu podov. Tako je Storitev Kubernetes. Storitev Kubernetes zagotavlja trajno končno točko za niz podov. Nekaj ​​jih je vrste storitev. strežnik uporablja LoadBalancer, ki zagotavlja zunanji naslov IP za stik strežnik izven grozda.
    Kubernetes ima tudi vgrajen sistem DNS, ki dodeljuje imena DNS (npr. helloserver.default.cluster.local) storitve. Zahvaljujoč temu podi znotraj gruče komunicirajo z drugimi podi v gruči na stalnem naslovu. Imena DNS ni mogoče uporabiti zunaj gruče, na primer v Cloud Shell ali v računalniku.

Kubernetes se manifestira

Ko ste zagnali aplikacijo iz vira, ste uporabili nujni ukaz python3

server.py

Imperativ implicira glagol: "naredi to."

Kubernetes uporablja deklarativni model. To pomeni, da Kubernetesu ne povemo točno, kaj naj naredi, temveč opišemo želeno stanje. Na primer, Kubernetes po potrebi zažene in ustavi sklope, da ohrani dejansko stanje sistema v skladu z želenim stanjem.

Želeno stanje označite v manifestih ali datotekah YAML. Datoteka YAML vsebuje specifikacije za enega ali več predmetov Kubernetes.

Primer vsebuje datoteko YAML za strežnik и loadgen. Vsaka datoteka YAML določa želeno stanje objekta razmestitve in storitve Kubernetes.

strežnik.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

  • vrsta označuje vrsto predmeta.
  • metapodatki.ime določa ime razmestitve.
  • Prvo polje spec vsebuje opis želenega stanja.
  • spec.replike označuje želeno število strokov.
  • Oddelek spec.predloga definira predlogo pod. V specifikaciji sklopa je polje slika, ki določa ime slike, ki jo želite ekstrahirati iz registra vsebnikov.

Storitev je opredeljena na naslednji način:

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

  • LoadBalancer: odjemalci pošljejo zahteve na naslov IP izravnalnika obremenitve, ki ima trajni naslov IP in je dostopen zunaj gruče.
  • ciljna vrata: kot se spomnite, ekipa IZPOSTAVLJENOST 8080 в Dockerfile ni zagotovil pristanišč. Vi zagotovite pristanišče 8080tako da lahko kontaktirate posodo strežnik zunaj grozda. V našem primeru hellosvc.default.cluster.local:80 (kratko ime: zdravovc) ustreza pristanišču 8080 Pod naslovi IP helloserver.
  • pristanišče: To je številka vrat, kamor bodo druge storitve v gruči pošiljale zahteve.

loadgen.yaml

Razmestitveni objekt za loadgen.yaml izgleda kot strežnik.yaml. Razlika je v tem, da objekt razmestitve vsebuje razdelek env. Določa spremenljivke okolja, ki so potrebne loadgen in ki ste ga namestili med izvajanjem aplikacije iz vira.

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

Enkrat loadgen ne sprejema vhodnih zahtevkov, za področje tip naveden GrozdIP. Ta vrsta zagotavlja trajni naslov IP, ki ga lahko uporabljajo storitve v gruči, vendar ta naslov IP ni izpostavljen zunanjim odjemalcem.

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

Namestitev vsebnikov v GKE

1) Pojdite v imenik, kjer se nahaja primer strežnik:

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

2) Odprto strežnik.yaml v urejevalniku besedil.
3) Zamenjajte ime v polju slika na ime vaše slike Docker.

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

Zamenjati PROJECT_ID na vaš ID projekta GCP.
4) Shranite in zaprite strežnik.yaml.
5) Razmestite datoteko YAML v Kubernetes:

kubectl apply -f server.yaml

Po uspešnem zaključku ukaz ustvari naslednjo kodo:

deployment.apps/helloserver created
service/hellosvc created

6) Pojdite v imenik, kjer loadgen:

cd ../loadgen

7) Odprto loadgen.yaml v urejevalniku besedil.
8) Zamenjajte ime v polju slika na ime vaše slike Docker.

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

Zamenjati PROJECT_ID na vaš ID projekta GCP.
9) Shranite in zaprite loadgen.yaml, zaprite urejevalnik besedil.
10) Razmestite datoteko YAML v Kubernetes:

kubectl apply -f loadgen.yaml

Po uspešnem zaključku ukaz ustvari naslednjo kodo:

deployment.apps/loadgenerator created
service/loadgensvc created

11) Preverite stanje strokov:

kubectl get pods

Ukaz prikazuje stanje:

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

12) Ekstrahirajte dnevnike aplikacij iz sklopa loadgen. Zamenjati POD_ID na identifikator iz prejšnjega odgovora.

kubectl logs loadgenerator-POD_ID

13) Pridobite zunanje naslove IP zdravovc:

kubectl get service

Odgovor na ukaz je videti nekako takole:

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) Pošljite zahtevo na zdravovc: zamenjati EXTERNAL_IP na zunanji naslov IP zdravovc.

curl http://EXTERNAL_IP

Prevzemimo Istio

V GKE že imate nameščeno aplikacijo. loadgen lahko uporablja Kubernetes DNS (pozdravljeni:80), na katerega želite poslati zahteve strežnikin lahko pošljete zahteve na strežnik po zunanjem naslovu IP. Čeprav ima Kubernetes veliko funkcij, manjka nekaj informacij o storitvah:

  • Kako storitve medsebojno delujejo? Kakšna so razmerja med storitvami? Kako poteka promet med storitvami? Ali se zavedate, da loadgen pošilja zahteve na strežnik, vendar si predstavljajte, da o aplikaciji ne veste ničesar. Da bi odgovorili na ta vprašanja, si poglejmo seznam tekočih podov v GKE.
  • Metrike. Kako dolgo strežnik odgovori na dohodno zahtevo? Koliko zahtev na sekundo prejme strežnik? Ali daje sporočila o napakah?
  • Varnostne informacije. Promet med loadgen и strežnik samo gre skozi HTTP ali z mTLS?

Istio odgovarja na vsa ta vprašanja. Da bi to naredil, Istio postavi stranski proxy Odposlanec v vsakem stroku. Envoy proxy prestreže ves dohodni in odhodni promet do vsebnikov aplikacij. To pomeni, da strežnik и loadgen prejemati prek stranskega posrednika Envoy in ves promet iz loadgen к strežnik poteka prek posrednika Envoy.

Povezave med posredniki Envoy tvorijo storitveno mrežo. Storitvena mrežna arhitektura zagotavlja plast nadzora na vrhu Kubernetesa.

Priprava aplikacije za Istio

Ker posredniki Envoy delujejo v svojih vsebnikih, je Istio mogoče namestiti na vrh gruče GKE brez skoraj nobenih sprememb kode aplikacije. Vendar ste opravili nekaj dela, da bi vašo aplikacijo pripravili za upravljanje s strani Istio:

  • Storitve za vse kontejnerje. Na razmestitve strežnik и loadgen vezan na storitev Kubernetes. celo loadgen, ki ne prejema vhodnih zahtev, obstaja storitev.
  • Vrata v storitvah morajo imeti imena. Čeprav lahko storitvena vrata ostanejo neimenovana v GKE, Istio zahteva, da jih določite ime pristanišča v skladu z njegovim protokolom. V datoteki YAML vrata za strežnik imenovano httpker strežnik uporablja protokol HTTP... Če Storitev uporablja gRPC, bi poimenovali pristanišče grpc.
  • Razmestitve so označene. Zato lahko uporabite Istiove funkcije za upravljanje prometa, kot je delitev prometa med različicami iste storitve.

Namestitev Istio

Istio lahko namestite na dva načina. Lahko omogoči Istio na razširitvi GKE ali namestite odprtokodno različico Istio na grozdu. Z Istio na GKE lahko preprosto upravljate namestitve in nadgradnje Istio v celotnem življenjskem ciklu gruče GKE. Če želite najnovejšo različico Istio ali več nadzora nad konfiguracijo nadzorne plošče Istio, namestite odprtokodno različico namesto razširitve Istio na GKE. Za odločitev o pristopu preberite članek Ali potrebujem Istio na GKE?.

Izberite možnost, preberite ustrezen vodnik in sledite navodilom za namestitev Istio v vašo gručo. Če želite uporabljati Istio s svojo novo uvedeno aplikacijo, omogočajo izvedbo stranske prikolice za imenski prostor privzeto.

Čiščenje

Da se izognete bremenitvi vašega računa Google Cloud Platform za vire, ki ste jih uporabili v tej vadnici, izbrišite gručo vsebnika, ko namestite Istio in se igrate z vzorčno aplikacijo. S tem boste odstranili vse vire gruče, kot so računalniške instance, diski in omrežni viri.

Kaj sledi?

Vir: www.habr.com

Dodaj komentar