Kugadzirira chikumbiro cheIstio

Kugadzirira chikumbiro cheIstio

Istio chishandiso chiri nyore chekubatanidza, kuchengetedza uye kutarisa zvakaparadzirwa zvikumbiro. Istio inoshandisa akasiyana matekinoroji kumhanya uye kubata software pamwero, kusanganisira midziyo yekuisa kodhi yekushandisa uye zvinoenderana nekutumirwa, uye Kubernetes kubata izvo midziyo. Naizvozvo, kushanda neIstio unofanirwa kuziva kuti application ine akawanda masevhisi anoenderana neaya matekinoroji anoshanda sei kunze Istio. Kana aya maturusi nemaconcepts akatojaira kwauri, sununguka kusvetuka chidzidzo ichi uye wakananga kuchikamu Kuisa Istio paGoogle Kubernetes Engine (GKE) kana kuisa yekuwedzera Istio paGKE.

Iyi inhanho-ne-nhanho gwara apo isu tichafamba mukati memaitiro ese kubva kusource code kuenda kuGKE mudziyo kuti tikupe iwe kunzwisisa kwekutanga kweaya matekinoroji kuburikidza nemuenzaniso. Iwe uchaona zvakare kuti Istio inoshandisa sei simba reaya matekinoroji. Izvi zvinofungidzira kuti iwe hauzive chero chinhu nezve midziyo, Kubernetes, sevhisi meshes, kana Istio.

mabasa

Muchidzidzo ichi, unopedza mabasa anotevera:

  1. Kudzidza yakapusa hello world application ine akawanda masevhisi.
  2. Mhanya iyo application kubva kusource code.
  3. Kurongedza application mumidziyo.
  4. Kugadzira Kubernetes cluster.
  5. Kuisa midziyo muchikwata.

Usati watanga

Tevedza mirairo yekugonesa Kubernetes Injini API:

  1. Enda ku Kubernetes Engine peji muGoogle Cloud Platform console.
  2. Gadzira kana sarudza chirongwa.
  3. Mirira kusvika API nemamwe masevhisi ane hukama agoneswa. Izvi zvinogona kutora maminetsi mashoma.
  4. Ita shuwa kuti kubhadharisa kwagadzirirwa chirongwa chako cheGoogle Cloud Platform. Dzidza nzira yekugonesa kubhadhara.

Muchidzidzo ichi, unogona kushandisa Cloud Shell, iyo inogadzirira iyo chaiyo muchina g1-diki muGoogle Compute Injini neDebian-based Linux, kana Linux kana macOS komputa.

Sarudzo A: Kushandisa Cloud Shell

Zvakanakira kushandisa Cloud Shell:

  • Python 2 uye Python 3 nzvimbo dzekusimudzira (kusanganisira nane) dzakagadzirirwa zvizere.
  • Command Line Zvishandiso gcloud, docker, Git ΠΈ kubectl, yatichashandisa yakatoiswa.
  • Une akati wandei ekusarudza kubva text editors:
    1. Code mupepeti, iyo inovhura neiyo edit icon kumusoro kweCloud Shell hwindo.
    2. Emacs, Vim kana Nano, iyo inovhura kubva pamutsetse wemirairo muCloud Shell.

Kushandisa Cloud Shell:

  1. Enda kuGCP console.
  2. dzvanya Activate Cloud Shell (Activate Cloud Shell) kumusoro kweGCP console hwindo.

Kugadzirira chikumbiro cheIstio

Muchikamu chepasi GCP console Chikamu cheCloud Shell chine mutsara wekuraira chinovhura muhwindo idzva.

Kugadzirira chikumbiro cheIstio

Sarudzo B: Kushandisa Command Line Zvishandiso Munzvimbo

Kana iwe uchange uchishanda pakombuta inoshandisa Linux kana macOS, iwe uchafanirwa kugadzirisa uye kuisa zvinotevera zvikamu:

  1. Gadzirisa Python 3 uye Python 2 nharaunda yekusimudzira.

  2. Isa Cloud SDK ine command line tool gcloud.

  3. Set kubectl - command line tool yekushanda nayo Kubernetes.

    gcloud components install kubectl

  4. Set Docker Community Edition (CE). Iwe uchashandisa command line tool dockerkugadzira mifananidzo yemidziyo yemuenzaniso application.

  5. Isa chishandiso Git version controlkuti uwane shanduro yekushandisa kubva kuGitHub.

Dhaunirodha kodhi yemuenzaniso

  1. Dhawunirodha iyo source code helloserver:

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

  2. Enda kune muenzaniso kodhi dhairekitori:

    cd istio-samples/sample-apps/helloserver

Kuongorora application ine akawanda masevhisi

Sample application yakanyorwa muPython uye ine zvikamu zviviri zvinopindirana uchishandisa REST:

  • Server: iri nyore sevha ine imwe yekupedzisira GET, /, iyo inodhinda "hello world" kune iyo console.
  • loadgen: script inotumira traffic kune Server, ine nhamba inogadziriswa yezvikumbiro pasekondi.

Kugadzirira chikumbiro cheIstio

Kumhanyisa application kubva kusource code

Kuti uongorore shanduro yekushandisa, imhanye muCloud Shell kana pakombuta yako.
1) Mubhuku istio-samples/sample-apps/helloserver run Server:

python3 server/server.py

Pakutanga Server zvinotevera zvinoratidzwa:

INFO:root:Starting server...

2) Vhura imwe hwindo rekupedzisira kutumira zvikumbiro kuna Server. Kana uri kushandisa Cloud Shell, tinya wedzera icon kuti uvhure imwe chikamu.
3) Tumira chikumbiro kuna Server:

curl http://localhost:8080

server mhinduro:

Hello World!

4) Kubva pane dhairekitori kwawakarodha kodhi yemuenzaniso, enda kudhairekitori rine loadgen:

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

5) Gadzira zvinotevera nharaunda siyana:

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

6) Kutanga nane:

virtualenv --python python3 env

7) Activate iyo chaiyo nharaunda:

source env/bin/activate

8) Isa zvinodiwa zve loadgen:

pip3 install -r requirements.txt

9) Kutanga loadgen:

python3 loadgen.py

Pakutanga loadgen inoratidza chimwe chinhu senge meseji inotevera:

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

Mune imwe terminal hwindo Server inoburitsa mameseji anotevera kune 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: */*

Kubva pamaonero etiweki, iyo yese application inomhanya pane imwe chete host (komputa yemuno kana Cloud Shell virtual muchina). Saka unogona kushandisa localhostkutumira zvikumbiro kuna Server.
10) Kumira loadgen ΠΈ Server, pinda Ctrl-c mumahwindo ese ekupedzisira.
11) Muhwindo rekupedzisira loadgen deactivate iyo virtual environment:

deactivate

Kurongedza application mumidziyo

Kuti umhanye application paGKE, unofanirwa kurongedza sampuli yekushandisa - Server ΠΈ loadgen - mukati midziyo. Chigaba inzira yekurongedza application yekuitsaura kubva kunharaunda yayo.

Kurongedza application mumudziyo, unoda dockerfile. dockerfile is a text file inotsanangura mirairo yekuvaka iyo application source code uye zvinoenderana nayo Docker mufananidzo. Kana yangovakwa, iwe unoisa chifananidzo kune registry yemidziyo senge Docker Hub kana Container Registry.

Muenzaniso watova nawo dockerfile nokuti Server ΠΈ loadgen nemirairo yese inodiwa yekuunganidza mifananidzo. Pazasi - dockerfile nokuti 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" ]

  • chikwata KUBVA python: 3-slim sechigadziko inoudza Docker kuti ashandise ichangoburwa Python 3 mufananidzo sehwaro.
  • chikwata COPY. . inokopa mafaera ekutanga kune yazvino dhairekitori rekushanda (munyaya yedu chete server.py) kune mudziyo wefaira system.
  • ENTRYPOINT inotsanangura murairo unoshandiswa kutanga mudziyo. Kwatiri, murairo uyu wakada kufanana newawaimboita server.py kubva kusource code.
  • chikwata EXPOSE zvinoratidza kuti Server inomirira data kuburikidza nechiteshi 8080. Chikwata ichi hachisi inopa zviteshi. Iyi ndiyo imwe mhando yezvinyorwa inodiwa kuvhura chiteshi 8080 paunotanga mudziyo.

Kugadzirira kuisa mudziyo wako application

1) Seta zvinotevera nharaunda siyana. Tsiva PROJECT_ID kune yako GCP purojekiti ID.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

Kushandisa tsika PROJECT_ID ΠΈ GCR_REPO iwe unomaka iyo Docker mufananidzo paunoivaka uye woisundira kune yakavanzika Container Registry.

2) Seta iyo yakasarudzika GCP purojekiti yekuraira mutsara chishandiso gcloud.

gcloud config set project $PROJECT_ID

3) Seta iyo default zone yekuraira mutsara chishandiso gcloud.

gcloud config set compute/zone us-central1-b

4) Ita shuwa kuti iyo Container Registry sevhisi inogoneswa muchirongwa cheGCP.

gcloud services enable containerregistry.googleapis.com

Containerization server

  1. Enda kune dhairekitori apo muenzaniso unowanikwa Server:

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

  2. Unganidza mufananidzo uchishandisa dockerfile uye magariro akasiyana awakatsanangura kare:

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

Parameter -t inomiririra iyo Docker tag. Iri ndiro zita remufananidzo waunoshandisa paunenge uchitumira mudziyo.

  1. Isa mufananidzo kuContainer Registry:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

Containerization ye loadgen

1) Enda kune dhairekitori uko muenzaniso uripo loadgen:

cd ../loadgen

2) Unganidza mufananidzo:

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

3) Isa mufananidzo kuContainer Registry:

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

Ona rondedzero yemifananidzo

Ongorora runyorwa rwemifananidzo mune repository uye simbisa kuti mifananidzo yaiswa:

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

Murairo unoratidza mazita emifananidzo ichangobva kuiswa:

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

Kugadzira boka reGKE.

Aya midziyo anogona kumhanyiswa paCloud Shell virtual muchina kana pakombuta ine rairo docker runomhanya. Asi munzvimbo yekugadzira, iwe unoda nzira yepakati orchestrate midziyo. Semuenzaniso, iwe unoda sisitimu inoita shuwa kuti midziyo inogara ichimhanya, uye iwe unoda nzira yekukwira kumusoro uye kupurudzira ekuwedzera emidziyo mamiriro kana traffic ikawedzera.

Kuti umhanye macontainerized application aunogona kushandisa G.K.E.. GKE ipuratifomu yemidziyo yemidziyo inounganidza mashini chaiwo kuita sumbu. Imwe neimwe virtual muchina unonzi node. GKE masumbu akavakirwa pane yakavhurika sosi Kubernetes cluster manejimendi system. Kubernetes inopa nzira dzekudyidzana neiyo cluster.

Kugadzira boka reGKE:

1) Gadzira chikwata:

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

chikwata gcloud inogadzira istioready cluster muGCP purojekiti uye default zone yawakatsanangura. Kumhanyisa Istio, isu tinokurudzira kuve neanokwana mana nodes uye chaiwo muchina n1-chiyero-2.

Chikwata chinogadzira cluster mumaminetsi mashoma. Kana boka racho ragadzirira, murairo unobudisa chimwe chinhu chakadai meseji.

2) Ipa zvitupa mune yekuraira mutsara chishandiso kubectlkuishandisa kubata cluster:

gcloud container clusters get-credentials istioready

3) Iye zvino unogona kutaurirana naKubernetes kuburikidza kubectl. Semuenzaniso, murairo unotevera unogona kuziva mamiriro emanode:

kubectl get nodes

Murairo unoburitsa runyoro rwemanodhi:

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 Concepts

Dhiagiramu inoratidza application paGKE:

Kugadzirira chikumbiro cheIstio

Usati watumira midziyo muGKE, dzidza iwo akakosha pfungwa dzeKubernetes. Kune zvinongedzo kumagumo chaiko kana iwe uchida kudzidza zvakawanda.

  • Nodes uye masumbu. MuGKE, node ndeyechokwadi muchina. Pane mamwe mapuratifomu eKubernetes, node inogona kuve komputa kana muchina chaiwo. Cluster muunganidzwa wemanodhi anogona kutariswa sechikamu chimwe chete kwaunotumira application ine mudziyo.
  • Pods. MuKubernetes, midziyo inomhanya mumapodhi. A Pod muKubernetes chinhu chisingaonekwe. Podhi inobata chigaba chimwe kana kupfuura. Iwe unotumira server midziyo uye loadgen mumapodhi akasiyana. Kana paine akati wandei midziyo mune pod (semuenzaniso, server application uye proxy server), midziyo inotungamirirwa sechinhu chimwe chete uye kugovera zviwanikwa zvepod.
  • Deployments. MuKubernetes, kutumirwa chinhu chiri muunganidzwa wemapodhi akafanana. Deployment inotangisa akawanda replicas emapods akagovaniswa munzvimbo dzese dzemasumbu. Kuendesa otomatiki kunotsiva mapodhi atadza kana kusadaira.
  • Kubernetes service. Paunenge uchimhanyisa kodhi yekushandisa muGKE, kubatana pakati loadgen ΠΈ Server. Pawakatanga masevhisi paCloud Shell virtual muchina kana desktop, wakatumira zvikumbiro kuna Server at localhost: 8080. Kana yangoendeswa kuGKE, mapodhi anouraiwa pane anowanikwa node. Nekumisikidza, haugone kutonga kuti ndeipi node iri kushanda pairi, saka iwe pods hapana zvachose IP kero.
    Kuti uwane IP kero ye Server, iwe unofanirwa kutsanangura network abstraction pamusoro pemapodhi. Ndizvo zvazviri Kubernetes service. Iyo Kubernetes sevhisi inopa inoshingirira magumo kune seti yemapods. Kune vashoma marudzi emasevhisi. Server anoshandisa LoadBalancer, iyo inopa yekunze IP kero yekubata Server kubva kunze kwesumbu.
    Kubernetes zvakare ine yakavakirwa-mukati DNS system inopa DNS mazita (semuenzaniso, helloserver.default.cluster.local) mabasa. Nekuda kweizvi, mapodhi mukati mechikwata anotaurirana nemamwe mapodhi musumbu pane imwe kero yenguva dzose. Iro zita reDNS harigone kushandiswa kunze kwechikwata, senge muCloud Shell kana pakombuta.

Kubernetes manifests

Pawakamhanyisa application kubva kunobva, iwe wakashandisa iyo yakakosha kuraira python3

server.py

Imperative inoreva chiito: "ita izvi."

Kubernetes inoshandisa declarative model. Izvi zvinoreva kuti hatisi kuudza Kubernetes chaizvo zvekuita, asi zviri kutsanangura mamiriro aunoda. Semuenzaniso, Kubernetes anotanga uye anomisa mapodhi sezvinodiwa kuchengetedza iyo chaiyo mamiriro ehurongwa hunoenderana neinodiwa nyika.

Iwe unoratidza mamiriro aunoda mune manifests kana mafaera YAML. Iyo YAML faira ine zvakatemwa zvechimwe kana kupfuura Kubernetes zvinhu.

Muenzaniso une YAML faira re Server ΠΈ loadgen. Imwe neimwe YAML faira inotsanangura yaidiwa mamiriro ezvinhu ekutumira uye Kubernetes sevhisi.

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

  • mutsa inoratidza rudzi rwechinhu.
  • metadata.name inotsanangura zita rekutumira.
  • Munda wekutanga spec ine tsananguro yenzvimbo inodiwa.
  • spec.replicas inoratidza nhamba inodiwa yemapods.
  • Chikamu spec.template inotsanangura pod template. Pane munda mune iyo pod yakatarwa mufananidzo, iyo inotsanangura zita remufananidzo unoda kutorwa kubva muContainer Registry.

Basa racho rinotsanangurwa sezvizvi:

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

  • LoadBalancer: Vatengi vanotumira zvikumbiro kuI IP kero yemutoro wekutakura, iyo ine IP kero inopfuurira uye inowanikwa kubva kunze kwesumbu.
  • targetPort: sezvaunorangarira, timu EXPOSE 8080 Π² dockerfile haina kupa zviteshi. Iwe unopa chiteshi 8080kuti ugone kubata mudziyo Server kunze kwesumbu. Munyaya yedu hellosvc.default.cluster.local:80 (zita pfupi: hellosvc) inoenderana nechiteshi 8080 Pod IP kero helloserver.
  • poti: Iyi ndiyo nhamba yechiteshi apo mamwe masevhisi ari musumbu anotumira zvikumbiro.

loadgen.yaml

Deployment chinhu kuti loadgen.yaml fanana server.yaml. Musiyano ndewekuti chinhu chekuendesa chine chikamu approx. Inotsanangura nharaunda dzakasiyana-siyana dzinodiwa loadgen uye iyo yawakaisa paunenge uchimhanyisa application kubva kunobva.

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

Nguva loadgen haigamuchire zvikumbiro zvinouya, zvemunda mhando kuratidzwa ClusterIP. Rudzi urwu runopa IP kero inoenderera iyo masevhisi ari musumbu anogona kushandisa, asi iyi kero yeIP haina kuratidzwa kune vekunze vatengi.

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

Kuendesa Containers muGKE

1) Enda kune dhairekitori uko muenzaniso uripo Server:

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

2) Vhura server.yaml mune text editor.
3) Tsiva zita mumunda mufananidzo kuzita remufananidzo wako weDocker.

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

Tsiva PROJECT_ID kune yako GCP purojekiti ID.
4) Chengetedza uye uvhare server.yaml.
5) Tumira iyo YAML faira kuKubernetes:

kubectl apply -f server.yaml

Kana wapedza kubudirira, murairo unoburitsa kodhi inotevera:

deployment.apps/helloserver created
service/hellosvc created

6) Enda kune dhairekitori uko loadgen:

cd ../loadgen

7) Vhura loadgen.yaml mune text editor.
8) Tsiva zita mumunda mufananidzo kuzita remufananidzo wako weDocker.

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

Tsiva PROJECT_ID kune yako GCP purojekiti ID.
9) Chengetedza uye uvhare loadgen.yaml, vhara text editor.
10) Tumira iyo YAML faira kuKubernetes:

kubectl apply -f loadgen.yaml

Kana wapedza kubudirira, murairo unoburitsa kodhi inotevera:

deployment.apps/loadgenerator created
service/loadgensvc created

11) Tarisa mamiriro emapods:

kubectl get pods

Murairo unoratidza mamiriro:

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

12) Bvisa matanda ekushandisa kubva pane pod loadgen. Tsiva POD_ID kune identifier kubva pamhinduro yapfuura.

kubectl logs loadgenerator-POD_ID

13) Tora ekunze IP kero hellosvc:

kubectl get service

Mhinduro yekuraira inotaridzika seizvi:

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) Tumira chikumbiro kuna hellosvc: kutsiva EXTERNAL_IP kune yekunze IP kero hellosvc.

curl http://EXTERNAL_IP

Ngatitorei paIstio

Iwe unotova neapp yakatumirwa kuGKE. loadgen inogona kushandisa Kubernetes DNS (hellosvc:80) kutumira zvikumbiro kuna Serveruye iwe unogona kutumira zvikumbiro kune Server nekunze IP kero. Kunyangwe Kubernetes aine akawanda maficha, pane rumwe ruzivo rusipo nezve masevhisi:

  • Masevhisi anodyidzana sei? Ndehupi hukama pakati pemasevhisi? Ko traffic inoyerera sei pakati pemasevhisi? Unozviziva here izvozvo loadgen inotumira zvikumbiro ku Server, asi fungidzira kuti hapana chaunoziva nezve application. Kuti tipindure mibvunzo iyi, ngatitarisei runyoro rwekumhanya pods muGKE.
  • Metrics. Kusvika papi Server inopindura kuchikumbiro chiri kuuya? Ndezvipi zvikumbiro pasekondi imwe neimwe zvinogamuchirwa neseva? Inopa mameseji ezvikanganiso here?
  • Chengetedzo Information. Traffic pakati loadgen ΠΈ Server inongopfuura HTTP kana by mTLS?

Istio inopindura mibvunzo iyi yese. Kuti uite izvi, Istio inoisa proxy yepadivi nhume mune imwe neimwe pod. Iyo Envoy proxy inobata zvese zvinopinda uye zvinobuda traffic kune midziyo yekushandisa. Zvinoreva kuti Server ΠΈ loadgen gamuchira kuburikidza nesidecar proxy Envoy, uye traffic yese kubva loadgen ΠΊ Server inopinda nemumiriri weEnvoy.

Kubatana pakati peEvoy proxies kunoumba mesh yebasa. Iyo sevhisi mesh dhizaini inopa dhizaini yekutonga pamusoro peKubernetes.

Kugadzirira chikumbiro cheIstio

Sezvo Envoy proxies inomhanya mumidziyo yavo, Istio inogona kuiswa pamusoro peGKE cluster ine inenge isina shanduko kukodhi yekushandisa. Asi iwe waita rimwe basa kuti chikumbiro chako chigadzirire kutungamirwa neIstio:

  • Masevhisi emidziyo yese. To deployments Server ΠΈ loadgen yakasungirirwa kubasa reKubernetes. Kunyange loadgen, iyo isingagamuchiri zvikumbiro zvinouya, kune sevhisi.
  • Zviteshi mumasevhisi zvinofanirwa kunge zvine mazita. Kunyangwe zviteshi zvebasa zvinogona kusiiwa zvisina kudomwa muGKE, Istio inoda kuti iwe utaure port name maererano neprotocol yake. Mune iyo YAML faira chiteshi che Server inonzi http:nekuti sevha inoshandisa iyo protocol HTTP. Kana sevhisi kushandiswa gRPC, ungapa zita rechiteshi grpc.
  • Kutumirwa kunomisikidzwa. Naizvozvo, unogona kushandisa Istio's traffic manejimendi maficha, akadai sekupatsanura traffic pakati peshanduro dzebasa rimwe chete.

Kuisa Istio

Pane nzira mbiri dzekuisa Istio. Inogona gonesa Istio pakuwedzera kweGKE kana isa iyo yakavhurwa sosi vhezheni yeIstio pacluster. NeIstio paGKE, unogona kubata nyore Istio kumisikidzwa uye kukwidziridzwa mukati meGKE cluster lifecycle. Kana iwe uchida yazvino vhezheni yeIstio kana kutonga kwakawanda pamusoro peIstio control panel yako yekumisikidza, isa iyo yakavhurwa sosi vhezheni panzvimbo yeIstio paGKE yekuwedzera. Kuti usarudze pane nzira, verenga chinyorwa Ndinoda Istio paGKE?.

Sarudza sarudzo, dzokorora gwara rakakodzera, uye tevera mirairo yekuisa Istio pane yako cluster. Kana iwe uchida kushandisa Istio neyako ichangobva kuiswa application, gonesa sidecar kuita ye namespace Default.

Kuchenesa

Kuti udzivise kubhadhariswa kuGoogle Cloud Platform account yezviwanikwa zvawashandisa muchidzidzo ichi, dzima bhokisi remudziyo kana wangoisa Istio uye kutamba nesample application. Izvi zvinobvisa zvese zviwanikwa zvecluster, senge compute zviitiko, disks, uye network zviwanikwa.

Chii chinotevera?

Source: www.habr.com

Voeg