Príprava žiadosti pre Istio

Príprava žiadosti pre Istio

Istio je pohodlný nástroj na pripojenie, zabezpečenie a monitorovanie distribuovaných aplikácií. Istio používa rôzne technológie na spustenie a správu softvéru vo veľkom rozsahu, vrátane kontajnerov na balenie kódu aplikácie a závislostí na nasadenie a Kubernetes na správu týchto kontajnerov. Preto, aby ste mohli pracovať s Istio, musíte vedieť, ako funguje aplikácia s viacerými službami založenými na týchto technológiách bez Istio. Ak sú vám tieto nástroje a koncepty už známe, pokojne preskočte tento návod a prejdite priamo do sekcie Inštalácia Istio na Google Kubernetes Engine (GKE) alebo inštalácia rozšírenia Istio na GKE.

Toto je sprievodca krok za krokom, v ktorom prejdeme celým procesom od zdrojového kódu až po kontajner GKE, aby sme vám poskytli základné pochopenie týchto technológií prostredníctvom príkladu. Uvidíte tiež, ako Istio využíva silu týchto technológií. To predpokladá, že neviete nič o kontajneroch, Kubernetes, servisných sieťach alebo Istio.

úlohy

V tomto návode dokončíte nasledujúce úlohy:

  1. Naučte sa jednoduchú aplikáciu hello world s viacerými službami.
  2. Spustite aplikáciu zo zdrojového kódu.
  3. Balenie aplikácie do nádob.
  4. Vytvorenie klastra Kubernetes.
  5. Nasadenie kontajnerov do klastra.

Než začnete

Ak chcete povoliť rozhranie Kubernetes Engine API, postupujte podľa pokynov:

  1. Ísť do Stránka Kubernetes Engine v konzole Google Cloud Platform.
  2. Vytvorte alebo vyberte projekt.
  3. Počkajte, kým sa povolí rozhranie API a súvisiace služby. Môže to trvať pár minút.
  4. Skontrolujte, či je pre váš projekt Google Cloud Platform nastavená fakturácia. Zistite, ako povoliť fakturáciu.

V tomto návode môžete použiť Cloud Shell, ktorý pripraví virtuálny stroj g1-small v Google Compute Engine s Linuxom založeným na Debiane alebo počítačom so systémom Linux alebo macOS.

Možnosť A: Použitie Cloud Shell

Výhody používania Cloud Shell:

  • Vývojové prostredia Python 2 a Python 3 (vrátane VIRTUALENV) sú plne nakonfigurované.
  • Nástroje príkazového riadku gcloud, prístavný robotník, ísť и kubectl, ktoré budeme používať, sú už nainštalované.
  • Na výber ich máte hneď niekoľko textové editory:
    1. Editor kódu, ktorý sa otvorí s ikonou úprav v hornej časti okna Cloud Shell.
    2. Emacs, Vim alebo Nano, ktoré sa otvárajú z príkazového riadku v Cloud Shell.

Použit Cloudová škrupina:

  1. Prejdite do konzoly GCP.
  2. lis Aktivujte Cloud Shell (Aktivovať Cloud Shell) v hornej časti okna konzoly GCP.

Príprava žiadosti pre Istio

V spodnej časti konzola GCP Relácia Cloud Shell s príkazovým riadkom sa otvorí v novom okne.

Príprava žiadosti pre Istio

Možnosť B: Lokálne použitie nástrojov príkazového riadka

Ak budete pracovať na počítači so systémom Linux alebo macOS, budete musieť nakonfigurovať a nainštalovať nasledujúce komponenty:

  1. Prispôsobiť Vývojové prostredie Python 3 a Python 2.

  2. Nainštalujte Cloud SDK s nástrojom príkazového riadku gcloud.

  3. Sada kubectl - nástroj príkazového riadku na prácu s Kubernetes.

    gcloud components install kubectl

  4. Sada Docker Community Edition (CE). Budete používať nástroj príkazového riadku prístavný robotníkna vytvorenie obrázkov kontajnera pre vzorovú aplikáciu.

  5. Nainštalujte nástroj Kontrola verzií Gitzískať vzorovú aplikáciu z GitHubu.

Stiahnite si vzorový kód

  1. Stiahnite si zdrojový kód helloserver:

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

  2. Prejdite do adresára vzorového kódu:

    cd istio-samples/sample-apps/helloserver

Preskúmanie aplikácie s viacerými službami

Vzorová aplikácia je napísaná v jazyku Python a pozostáva z dvoch komponentov, ktoré vzájomne spolupracujú REST:

  • server: jednoduchý server s jedným koncovým bodom GET, /, ktorá na konzole vytlačí „hello world“.
  • loadgen: skript, ktorý posiela návštevnosť servers konfigurovateľným počtom požiadaviek za sekundu.

Príprava žiadosti pre Istio

Spustenie aplikácie zo zdrojového kódu

Ak chcete preskúmať vzorovú aplikáciu, spustite ju v Cloud Shell alebo na počítači.
1) V katalógu istio-samples/sample-apps/helloserver bežať server:

python3 server/server.py

Pri štarte server zobrazí sa nasledovné:

INFO:root:Starting server...

2) Otvorte ďalšie okno terminálu, do ktorého chcete odosielať požiadavky server. Ak používate Cloud Shell, kliknutím na ikonu pridať otvorte ďalšiu reláciu.
3) Pošlite žiadosť na server:

curl http://localhost:8080

odpovede servera:

Hello World!

4) Z adresára, kde ste stiahli vzorový kód, prejdite do adresára, ktorý obsahuje loadgen:

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

5) Vytvorte nasledujúce premenné prostredia:

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

6) Spustite VIRTUALENV:

virtualenv --python python3 env

7) Aktivujte virtuálne prostredie:

source env/bin/activate

8) Stanovte požiadavky na loadgen:

pip3 install -r requirements.txt

9) Spustite loadgen:

python3 loadgen.py

Pri štarte loadgen zobrazí niečo ako nasledujúcu správu:

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

V inom okne terminálu server vypíše do konzoly nasledujúce správy:

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 pohľadu siete beží celá aplikácia na jednom hostiteľovi (lokálny počítač alebo virtuálny stroj Cloud Shell). Preto môžete použiť localhostposielať žiadosti server.
10) Prestať loadgen и server, zadajte Ctrl-c v každom okne terminálu.
11) V okne terminálu loadgen deaktivácia virtuálneho prostredia:

deactivate

Balenie aplikácie do nádob

Ak chcete spustiť aplikáciu na GKE, musíte zabaliť vzorovú aplikáciu − server и loadgen - v Kontajnery. Kontajner je spôsob, ako zabaliť aplikáciu a izolovať ju od prostredia.

Ak chcete zabaliť aplikáciu do kontajnera, potrebujete Dockerfile. Dockerfile je textový súbor, ktorý definuje príkazy na zostavenie zdrojového kódu aplikácie a jej závislostí Obrázok Docker. Po vytvorení nahráte obrázok do registra kontajnerov, ako je napríklad Docker Hub alebo Register kontajnerov.

Príklad už má Dockerfile pre server и loadgen so všetkými potrebnými príkazmi na zhromažďovanie obrázkov. Nižšie - Dockerfile pre 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" ]

  • Tím OD pythonu: 3-slim ako základ povie Dockerovi, aby použil najnovšie Obrázok Python 3 ako základ.
  • Tím KOPÍROVAŤ. . skopíruje zdrojové súbory do aktuálneho pracovného adresára (iba v našom prípade server.py) do súborového systému kontajnera.
  • VSTUPNÝ BOD definuje príkaz, ktorý sa používa na spustenie kontajnera. V našom prípade je tento príkaz takmer rovnaký ako ten, ktorý ste použili na spustenie server.py zo zdrojového kódu.
  • Tím VYSTAVIŤ to naznačuje server čaká na dáta cez port 8080. Tento tím nie je poskytuje porty. Toto je nejaký druh dokumentácie, ktorá je potrebná na otvorenie portu 8080 pri spustení kontajnera.

Príprava na kontajnerizáciu vašej aplikácie

1) Nastavte nasledujúce premenné prostredia. Nahradiť PROJECT_ID na vaše ID projektu GCP.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

Používanie hodnôt PROJECT_ID и GCR_REPO označíte obrázok Docker pri jeho zostavovaní a odošlete ho do súkromného registra kontajnerov.

2) Nastavte predvolený projekt GCP pre nástroj príkazového riadka gcloud.

gcloud config set project $PROJECT_ID

3) Nastavte predvolenú zónu pre nástroj príkazového riadka gcloud.

gcloud config set compute/zone us-central1-b

4) Skontrolujte, či je v projekte GCP povolená služba Registry kontajnerov.

gcloud services enable containerregistry.googleapis.com

Kontajnerizačný server

  1. Prejdite do adresára, kde sa nachádza príklad server:

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

  2. Zostavte obrázok pomocou Dockerfile a premenné prostredia, ktoré ste definovali skôr:

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

Parameter -t predstavuje značku Docker. Toto je názov obrázka, ktorý používate pri nasadzovaní kontajnera.

  1. Nahrajte obrázok do registra kontajnerov:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

Kontajnerizácia loadgen

1) Prejdite do adresára, kde sa nachádza príklad loadgen:

cd ../loadgen

2) Zhromaždite obrázok:

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

3) Nahrajte obrázok do registra kontajnerov:

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

Pozrite si zoznam obrázkov

Skontrolujte zoznam obrázkov v úložisku a overte, či boli obrázky nahrané:

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

Príkaz zobrazí názvy novo odovzdaných obrázkov:

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

Vytvorenie klastra GKE.

Tieto kontajnery možno spustiť na virtuálnom stroji Cloud Shell alebo na počítači s príkazom docker run. V produkčnom prostredí však potrebujete spôsob, ako centrálne organizovať kontajnery. Potrebujete napríklad systém, ktorý zaisťuje, že kontajnery sú vždy v prevádzke, a potrebujete spôsob, ako zväčšiť a spustiť ďalšie inštancie kontajnerov, ak sa zvýši návštevnosť.

Na spustenie kontajnerových aplikácií môžete použiť G.K.E.. GKE je platforma na orchestráciu kontajnerov, ktorá agreguje virtuálne stroje do klastra. Každý virtuálny stroj sa nazýva uzol. Klastre GKE sú založené na open source systéme správy klastrov Kubernetes. Kubernetes poskytuje mechanizmy na interakciu s klastrom.

Vytvorenie klastra GKE:

1) Vytvorte klaster:

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

Tím gcloud vytvorí pripravený klaster v projekte GCP a predvolenej zóne, ktorú ste zadali. Na spustenie Istio odporúčame mať aspoň 4 uzly a virtuálny stroj n1-štandard-2.

Tým vytvorí klaster za pár minút. Keď je klaster pripravený, príkaz vydá niečo takéto сообщение.

2) Poskytnite poverenia v nástroji príkazového riadka kubectlak ho chcete použiť na správu klastra:

gcloud container clusters get-credentials istioready

3) Teraz môžete komunikovať s Kubernetes cez kubectl. Napríklad nasledujúci príkaz môže zistiť stav uzlov:

kubectl get nodes

Príkaz vytvorí zoznam uzlov:

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

Kľúčové koncepty Kubernetes

Diagram ukazuje aplikáciu na GKE:

Príprava žiadosti pre Istio

Pred nasadením kontajnerov v GKE si osvojte kľúčové koncepty Kubernetes. Na samom konci sú odkazy, ak sa chcete dozvedieť viac.

  • Uzly a zhluky. V GKE je uzol virtuálny stroj. Na iných platformách Kubernetes môže byť uzlom počítač alebo virtuálny stroj. Klaster je kolekcia uzlov, ktoré možno považovať za jednu jednotku, kde nasadzujete kontajnerizovanú aplikáciu.
  • Pods. V Kubernetes bežia kontajnery v podoch. Pod v Kubernetes je nedeliteľná jednotka. Modul obsahuje jednu alebo viac nádob. Nasadíte serverové kontajnery a loadgen v samostatných strukoch. Ak je v podu niekoľko kontajnerov (napríklad aplikačný server a proxy server), kontajnery sú spravované ako jedna entita a zdieľajú zdroje pod.
  • Nasadenia. V Kubernetes je nasadenie objekt, ktorý je kolekciou identických modulov. Nasadenie spúšťa viacero kópií modulov distribuovaných medzi uzlami klastra. Nasadenie automaticky nahradí moduly, ktoré zlyhali alebo nereagujú.
  • Služba Kubernetes. Pri spustení kódu aplikácie v GKE je spojenie medzi loadgen и server. Keď ste spustili služby na virtuálnom počítači alebo desktope Cloud Shell, odoslali ste požiadavky na server na localhost: 8080. Po nasadení do GKE sa moduly spúšťajú na dostupných uzloch. V predvolenom nastavení nemáte kontrolu nad tým, na ktorom uzle modul beží, takže vy struky žiadne trvalé IP adresy.
    Ak chcete získať adresu IP pre server, musíte definovať sieťovú abstrakciu na vrchu modulov. Tak to je Služba Kubernetes. Služba Kubernetes poskytuje trvalý koncový bod pre skupinu modulov. Je tam niekoľko typy služieb. server používa Load Balancer, ktorý poskytuje externú IP adresu na kontaktovanie server zvonku klastra.
    Kubernetes má tiež vstavaný systém DNS, ktorý prideľuje názvy DNS (napr. helloserver.default.cluster.local) služby. Vďaka tomu pody v rámci klastra komunikujú s ostatnými podmi v klastri na trvalej adrese. Názov DNS nemožno použiť mimo klastra, napríklad v Cloud Shell alebo v počítači.

Kubernetes sa prejavuje

Keď ste spustili aplikáciu zo zdroja, použili ste imperatívny príkaz python3

server.py

Imperatív znamená sloveso: „urob to“.

Používa Kubernetes deklaratívny model. To znamená, že Kubernetes nehovoríme presne, čo má robiť, ale skôr popisujeme želaný stav. Napríklad Kubernetes spúšťa a zastavuje moduly podľa potreby, aby sa zabezpečilo, že skutočný stav systému zodpovedá požadovanému stavu.

Požadovaný stav uvádzate v manifestoch alebo súboroch Yamli. Súbor YAML obsahuje špecifikácie pre jeden alebo viacero objektov Kubernetes.

Príklad obsahuje súbor YAML pre server и loadgen. Každý súbor YAML špecifikuje požadovaný stav objektu nasadenia a služby Kubernetes.

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

  • druh označuje typ objektu.
  • metaúdaje.názov určuje názov nasadenia.
  • Prvé pole spec obsahuje popis požadovaného stavu.
  • spec.repliky označuje požadovaný počet strukov.
  • časť spec.template definuje šablónu pod. V špecifikácii modulu je pole obraz, ktorý určuje názov obrázka, ktorý je potrebné extrahovať z registra kontajnerov.

Služba je definovaná nasledovne:

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

  • Load Balancer: Klienti posielajú požiadavky na IP adresu nástroja na vyvažovanie záťaže, ktorý má trvalú IP adresu a je prístupný zvonku klastra.
  • targetPort: ako si pamätáte, tím EXPOZÍCIA 8080 в Dockerfile neposkytol porty. Poskytnete port 8080aby ste mohli kontaktovať kontajner server mimo klastra. V našom prípade hellosvc.default.cluster.local:80 (krátky názov: hellosvc) zodpovedá portu 8080 IP adresy pod helloserver.
  • prístav: Toto je číslo portu, kam budú ostatné služby v klastri odosielať požiadavky.

loadgen.yaml

Objekt nasadenia do loadgen.yaml vyzerať ako server.yaml. Rozdiel je v tom, že objekt nasadenia obsahuje sekciu ca.. Definuje premenné prostredia, ktoré sú potrebné loadgen a ktoré ste nainštalovali pri spustení aplikácie zo zdroja.

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

čas loadgen neprijíma prichádzajúce požiadavky na pole typ nevedno ClusterIP. Tento typ poskytuje trvalú IP adresu, ktorú môžu používať služby v klastri, ale táto IP adresa nie je vystavená externým klientom.

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

Rozmiestnenie kontajnerov v GKE

1) Prejdite do adresára, kde sa nachádza príklad server:

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

2) Otvorte server.yaml v textovom editore.
3) Nahraďte názov v poli obraz na názov vášho obrázka Docker.

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

vymeniť PROJECT_ID na vaše ID projektu GCP.
4) Uložte a zatvorte server.yaml.
5) Nasaďte súbor YAML do Kubernetes:

kubectl apply -f server.yaml

Po úspešnom dokončení príkaz vytvorí nasledujúci kód:

deployment.apps/helloserver created
service/hellosvc created

6) Prejdite do adresára, kde loadgen:

cd ../loadgen

7) Otvorte loadgen.yaml v textovom editore.
8) Nahraďte názov v poli obraz na názov vášho obrázka Docker.

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

vymeniť PROJECT_ID na vaše ID projektu GCP.
9) Uložte a zatvorte loadgen.yaml, zatvorte textový editor.
10) Nasaďte súbor YAML do Kubernetes:

kubectl apply -f loadgen.yaml

Po úspešnom dokončení príkaz vytvorí nasledujúci kód:

deployment.apps/loadgenerator created
service/loadgensvc created

11) Skontrolujte stav modulov:

kubectl get pods

Príkaz zobrazuje stav:

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

12) Extrahujte denníky aplikácií z modulu loadgen. Vymeňte POD_ID na identifikátor z predchádzajúcej odpovede.

kubectl logs loadgenerator-POD_ID

13) Získajte externé adresy IP hellosvc:

kubectl get service

Odpoveď na príkaz vyzerá asi takto:

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šlite žiadosť na hellosvc: nahradiť EXTERNAL_IP na externú IP adresu hellosvc.

curl http://EXTERNAL_IP

Zoberme si Istio

Už máte aplikáciu nasadenú v GKE. loadgen môže používať Kubernetes DNS (hellosvc:80) na odosielanie žiadostí servera môžete posielať žiadosti na server pomocou externej IP adresy. Hoci má Kubernetes veľa funkcií, niektoré informácie o službách chýbajú:

  • Ako spolu služby interagujú? Aké sú vzťahy medzi službami? Ako prebieha prevádzka medzi službami? Si si toho vedomý? loadgen posiela žiadosti na server, no predstavte si, že o aplikácii nič neviete. Aby sme odpovedali na tieto otázky, pozrieme sa na zoznam bežeckých modulov v GKE.
  • Metriky. Ako dlho server odpovedá na prichádzajúcu požiadavku? Koľko požiadaviek za sekundu dostane server? Vypisuje chybové hlásenia?
  • Bezpečnostné informácie. Doprava medzi loadgen и server len prechádza HTTP alebo mTLS?

Istio odpovedá na všetky tieto otázky. Na tento účel Istio umiestni proxy postranného vozíka vyslanec v každom struku. Proxy Envoy zachytáva všetku prichádzajúcu a odchádzajúcu prevádzku do kontajnerov aplikácií. Znamená to, že server и loadgen prijímať cez postranný server proxy Envoy a všetku komunikáciu z loadgen к server prechádza cez splnomocnenca Envoy.

Spojenia medzi Envoy proxy tvoria sieť služieb. Architektúra servisnej siete poskytuje vrstvu kontroly nad Kubernetes.

Príprava žiadosti pre Istio

Keďže Envoy proxy bežia vo svojich vlastných kontajneroch, Istio je možné nainštalovať na vrchol klastra GKE bez takmer žiadnych zmien v kóde aplikácie. Urobili ste však kus práce, aby ste svoju aplikáciu pripravili na správu spoločnosťou Istio:

  • Služby pre všetky kontajnery. K nasadeniam server и loadgen viazané na službu Kubernetes. Dokonca loadgen, ktorá neprijíma prichádzajúce požiadavky, existuje služba.
  • Porty v službách musia mať názvy. Aj keď servisné porty môžu zostať v GKE nepomenované, Istio vyžaduje, aby ste ich špecifikovali názov portu v súlade s jeho protokolom. V súbore YAML je port pre server tzv httppretože server používa protokol HTTP. Ak služba použité gRPC, pomenovali by ste prístav grpc.
  • Nasadenia sú označené. Preto môžete využiť funkcie správy prevádzky Istio, ako je napríklad rozdelenie prevádzky medzi verziami tej istej služby.

Inštalácia Istio

Existujú dva spôsoby inštalácie Istio. Môcť povoliť Istio na rozšírení GKE alebo nainštalujte verziu Istio s otvoreným zdrojom na klastri. S Istio na GKE môžete jednoducho spravovať inštalácie a inovácie Istio počas celého životného cyklu klastra GKE. Ak chcete najnovšiu verziu Istio alebo väčšiu kontrolu nad konfiguráciou ovládacieho panela Istio, nainštalujte si verziu s otvoreným zdrojom namiesto rozšírenia Istio na GKE. Ak chcete rozhodnúť o prístupe, prečítajte si článok Potrebujem Istio na GKE?.

Vyberte možnosť, prečítajte si príslušnú príručku a podľa pokynov nainštalujte Istio do svojho klastra. Ak chcete používať Istio s vašou novo nasadenou aplikáciou, umožniť implementáciu sajdkár pre menný priestor štandardné.

čistenie

Ak sa chcete vyhnúť účtovaniu prostriedkov z vášho účtu Google Cloud Platform za zdroje, ktoré ste použili v tomto návode, po nainštalovaní Istio a hraní so vzorovou aplikáciou odstráňte klaster kontajnerov. Týmto sa odstránia všetky prostriedky klastra, ako sú výpočtové inštancie, disky a sieťové prostriedky.

Čo bude ďalej?

Zdroj: hab.com

Pridať komentár