Ho lokisa kopo bakeng sa Istio

Ho lokisa kopo bakeng sa Istio

Istio ke sesebelisoa se bonolo sa ho hokahanya, ho boloka le ho beha leihlo lits'ebetso tse ajoang. Istio e sebelisa mekhoa e fapaneng ea theknoloji ho tsamaisa le ho laola software ka tekanyo, ho kenyelletsa le lijana ho paka khoutu ea kopo le litšepeho bakeng sa ho romelloa, le Kubernetes ho laola lijana tseo. Ka hona, ho sebetsa le Istio o tlameha ho tseba hore na ts'ebeliso e nang le lits'ebeletso tse ngata e thehiloeng ho mahlale ana e sebetsa joang ntle le Istio. Haeba u se u ntse u tseba lisebelisoa le mehopolo ena, ikutloe u lokolohile ho tlola thuto ena 'me u ee karolong eo ka kotloloho Ho kenya Istio ho Google Kubernetes Engine (GKE) kapa ho kenya katoloso Istio ho GKE.

Ena ke tataiso ea mohato ka mohato moo re tla tsamaea ka mokhoa oohle ho tloha mohloling oa mohloli ho ea ho setsi sa GKE ho u fa kutloisiso ea motheo ea theknoloji ena ka mohlala. U tla boela u bone kamoo Istio e sebelisang matla a mahlale ana. Sena se nka hore ha o tsebe letho ka lijana, Kubernetes, meshes ea litšebeletso, kapa Istio.

mesebetsi

Thutong ena, o tla phethela mesebetsi e latelang:

  1. Ho ithuta sesebelisoa se bonolo sa lefats'e se nang le lits'ebeletso tse ngata.
  2. Kenya sesebelisoa ho tsoa ho khoutu ea mohloli.
  3. Ho paka kopo ka lijaneng.
  4. Ho theha sehlopha sa Kubernetes.
  5. Ho kenya lijana ka har'a sehlopha.

Pele o qala

Latela litaelo ho thusa Kubernetes Engine API:

  1. Eya ho Kubernetes Engine leqepheng la ho Google Cloud Platform console.
  2. Etsa kapa khetha morero.
  3. Ema ho fihlela API le lits'ebeletso tse amanang li buletsoe. Sena se ka nka metsotso e seng mekae.
  4. Netefatsa hore tefiso e behiloe morero oa hau oa Platform ea Google Cloud. Ithute mokhoa oa ho lumella tefiso.

Thutong ena, o ka sebelisa Cloud Shell, e lokisang mochini o sebetsang g1-e nyenyane ho Google Compute Engine ka Linux e thehiloeng ho Debian, kapa khomphutha ea Linux kapa ea macOS.

Khetho A: Ho Sebelisa Cloud Shell

Melemo ea ho sebelisa Cloud Shell:

  • Python 2 le Python 3 tikoloho ea nts'etsopele (ho kenyeletsoa virtualenv) li hlophisitsoe ka botlalo.
  • Taelo Line Tools gcloud, docker, git и kubctl, tseo re tla li sebelisa li se li kentsoe.
  • U na le tse 'maloa tseo u ka khethang ho tsona bahlophisi ba mongolo:
    1. Mohlophisi oa khoutu, e bulang ka lets'oao la ho hlophisa kaholimo ho fensetere ea Cloud Shell.
    2. Emacs, Vim kapa Nano, e bulang ho tsoa moleng oa taelo ho Cloud Shell.

Ho sebelisa Cloud Shell:

  1. Eya ho khomphutha ea GCP.
  2. ebe o tobetsa konopo Kenya tšebetsong Cloud Shell (Kenya Cloud Shell) ka holimo ho fensetere ea khomphutha ea GCP.

Ho lokisa kopo bakeng sa Istio

Karolong e ka tlase Khokahano ea GCP Seboka sa Cloud Shell se nang le mohala oa taelo se tla buleha ka fensetere e ncha.

Ho lokisa kopo bakeng sa Istio

Khetho ea B: Ho Sebelisa Lisebelisoa tsa Line Line sebakeng sa heno

Haeba u tla be u sebetsa komporong e sebelisang Linux kapa macOS, u tla hloka ho hlophisa le ho kenya likarolo tse latelang:

  1. Iketsetse Python 3 le Python 2 tikoloho ea ntlafatso.

  2. Kenya Cloud SDK ka sesebelisoa sa mola oa taelo gcloud.

  3. Beha kubctl - sesebelisoa sa mola oa taelo bakeng sa ho sebetsa le Kubernetes.

    gcloud components install kubectl

  4. Beha Khatiso ea Sechaba ea Docker (CE). U tla sebelisa sesebelisoa sa line line dockerho etsa litšoantšo tsa setshelo bakeng sa sesebelisoa sa mohlala.

  5. Kenya sesebelisoa Taolo ea mofuta oa Githo fumana mohlala oa kopo ho GitHub.

Khoasolla mohlala oa khoutu

  1. Khoasolla khoutu ea mohloli helloserver:

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

  2. Eya ho lethathamo la khoutu ea mohlala:

    cd istio-samples/sample-apps/helloserver

Lekola sesebelisoa se nang le lits'ebeletso tse ngata

Mohlala oa kopo o ngotsoe ka Python mme o na le likarolo tse peli tse sebelisanang ho sebelisoa LULA:

  • seva: seva e bonolo e nang le ntlha e le 'ngoe FUMANA, /, e hatisang "hello world" ho console.
  • loadgen: mongolo o romellang sephethephethe ho seva, ka palo e lokisehang ea likopo motsotsoana.

Ho lokisa kopo bakeng sa Istio

E sebelisa sesebelisoa ho tsoa ho khoutu ea mohloli

Ho hlahloba mohlala oa sesebelisoa, tsamaisa ho Cloud Shell kapa komporong ea hau.
1) Ka lethathamong la libuka istio-samples/sample-apps/helloserver matha seva:

python3 server/server.py

Qalong seva se latelang se hlaha:

INFO:root:Starting server...

2) Bula fensetere e 'ngoe ea terminal ho romella likopo ho seva. Haeba u sebelisa Cloud Shell, tobetsa konopo ea eketsa ho bula lenaneo le leng.
3) Romela kopo ho seva:

curl http://localhost:8080

likarabo tsa seva:

Hello World!

4) Ho tsoa bukeng eo u jarollotseng mohlala oa khoutu, e ea bukeng e nang le eona loadgen:

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

5) Theha mefuta e latelang ea tikoloho:

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

6) Matha virtualenv:

virtualenv --python python3 env

7) Kenya tšebetsong tikoloho ea sebele:

source env/bin/activate

8) Beha litlhoko tsa loadgen:

pip3 install -r requirements.txt

9) Matha loadgen:

python3 loadgen.py

Qalong loadgen e hlahisa ntho e kang ena molaetsa o latelang:

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

Ka fensetere e 'ngoe ea terminal seva e hlahisa melaetsa e latelang ho 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: */*

Ho latela pono ea marang-rang, ts'ebeliso eohle e sebetsa ho moamoheli a le mong (khomphutha ea lehae kapa mochini o sebetsang oa Cloud Shell). Kahoo u ka sebelisa Localhostho romela likopo ho seva.
10) Ho emisa loadgen и seva, kena Ctrl-c fensetereng e 'ngoe le e 'ngoe ea terminal.
11) Ka fensetere ea terminal loadgen tima tikoloho ea sebele:

deactivate

Ho paka kopo ka lijaneng

Ho tsamaisa kopo ho GKE, o hloka ho paka mohlala oa kopo - seva и loadgen - ka hare lik'hontheinara. Setshelo ke mokhoa oa ho paka sesebelisoa ho se arola tikolohong ea sona.

Ho kenya kopo ka har'a setshelo, oa hloka dockerfile. dockerfile ke faele ea mongolo e hlalosang litaelo tsa ho aha khoutu ea mohloli oa kopo le litšepeho tsa eona ho Setšoantšo sa Docker. Ha e se e hahiloe, o kenya setšoantšo ho ngoliso ea setshelo joalo ka Docker Hub kapa Registry ea Container.

Mohlala o se o ntse o le teng dockerfile etsoe seva и loadgen ka litaelo tsohle tse hlokahalang ho bokella litšoantšo. Ka tlase - dockerfile etsoe seva:

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

  • sehlopha HO TSOA ho python: 3-slim e le setsi e bolella Docker ho sebelisa tsa morao-rao Setšoantšo sa Python 3 joalo ka motheo.
  • sehlopha KHOPISA. . e kopitsa lifaele tsa mohloli bukeng ea hona joale e sebetsang (ho rona feela seva.py) ho sistimi ea faele ea setshelo.
  • MOKHOAOA e hlalosa taelo e sebedisoang ho qala setshelo. Tabeng ea rona, taelo ena e batla e tšoana le eo u neng u e sebelisa seva.py ho tsoa ho khoutu ea mohloli.
  • sehlopha BONOLOA e bontša hore seva e emetse data ka boema-kepe 8080. Sehlopha sena ha se joalo e fana ka likou. Ena ke mofuta o mong oa litokomane tse hlokahalang ho bula boema-kepe 8080 ha o qala setshelo.

Ho itokisetsa ho kenya kopo ea hau

1) Beha maemo a latelang a tikoloho. Tlosa sebaka PROJECT_ID ho ID ea projeke ea hau ea GCP.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

Ho sebelisa litekanyetso PROJECT_ID и GCR_REPO u tšoaea setšoantšo sa Docker ha u se haha ​​​​'me u se sutumelletsa ho Registry ea Container e ikemetseng.

2) Beha projeke ea kamehla ea GCP bakeng sa sesebelisoa sa mola oa taelo gcloud.

gcloud config set project $PROJECT_ID

3) Beha sebaka sa kamehla bakeng sa sesebelisoa sa mola oa taelo gcloud.

gcloud config set compute/zone us-central1-b

4) Etsa bonnete ba hore tšebeletso ea Registry ea Container e ea sebetsa morerong oa GCP.

gcloud services enable containerregistry.googleapis.com

Seva ea Containerization

  1. Eya ho directory moo mohlala o leng teng seva:

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

  2. Kopanya setšoantšo ka ho sebelisa dockerfile le mefuta e fapaneng ea tikoloho eo u e hlalositseng pejana:

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

Parameter -t e emetse tag ea Docker. Lena ke lebitso la setšoantšo seo u se sebelisang ha u tsamaisa setshelo.

  1. Kenya setšoantšo ho Registry ea Container:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

Containerization ea loadgen

1) Eya ho directory moo mohlala o leng teng loadgen:

cd ../loadgen

2) Bokella setšoantšo:

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

3) Kenya setšoantšo ho Registry ea Container:

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

Sheba lenane la litšoantšo

Hlahloba lethathamo la litšoantšo sebakeng sa polokelo 'me u netefatse hore litšoantšo li kentsoe:

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

Taelo e bonts'a mabitso a litšoantšo tse sa tsoa kenngoa:

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

Ho theha sehlopha sa GKE.

Lits'oants'o tsena li ka tsamaisoa ka mochini o sebetsang oa Cloud Shell kapa komporong e nang le taelo docker e matha. Empa sebakeng sa tlhahiso, o hloka mokhoa oa ho hlophisa lijana tse bohareng. Mohlala, o hloka sistimi e etsang bonnete ba hore lijana li lula li sebetsa, 'me u hloka mokhoa oa ho phahamisa le ho qhekella maemo a mang a lijana haeba sephethephethe se eketseha.

Ho tsamaisa lisebelisoa tse nang le lisebelisoa tseo u ka li sebelisang G.K.E.. GKE ke sethala sa 'mino oa lijana se kopanyang mechini e fumanehang ka har'a sehlopha. Mochini o mong le o mong o bitsoang node. Lihlopha tsa GKE li thehiloe mohloling o bulehileng oa tsamaiso ea lihlopha tsa Kubernetes. Kubernetes e fana ka mekhoa ea ho sebelisana le sehlopha.

Ho theha sehlopha sa GKE:

1) Theha sehlopha:

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

sehlopha gcloud e theha sehlopha sa istioready projekeng ea GCP le libaka tsa kamehla tseo u li boletseng. Ho tsamaisa Istio, re khothaletsa ho ba le bonyane li-node tse 4 le mochini o sebetsang n1-e tloaelehileng-2.

Sehlopha se theha sehlopha ka mor'a metsotso e seng mekae. Ha sehlopha se se se lokile, taelo e hlahisa ntho e kang ena molaetsa.

2) Fana ka lintlha tsa boitsebiso ho sesebelisoa sa mola oa taelo kubctlho e sebelisa ho laola sehlopha:

gcloud container clusters get-credentials istioready

3) Joale o ka buisana le Kubernetes ka kubctl. Mohlala, taelo e latelang e ka fumana boemo ba li-node:

kubectl get nodes

Taelo e hlahisa lethathamo la li-node:

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

Likhopolo tsa bohlokoa tsa Kubernetes

Setšoantšo se bontša kopo ho GKE:

Ho lokisa kopo bakeng sa Istio

Pele o kenya lijana ho GKE, ithute lintlha tsa bohlokoa tsa Kubernetes. Ho na le lihokelo qetellong haeba u batla ho ithuta haholoanyane.

  • Li-node le lihlopha. Ho GKE, node ke mochine oa sebele. Li-platform tse ling tsa Kubernetes, node e ka ba komporo kapa mochini o sebetsang. Cluster ke pokello ea li-node tse ka nkoang e le yuniti e le 'ngoe moo o kenyang ts'ebeliso ea lisebelisoa.
  • Liphotjana. Kubernetes, lijana li tsamaea ka har'a li-pods. Pod e Kubernetes ke yuniti e sa arohaneng. Pod e na le sejana se le seng kapa ho feta. U tsamaisa lijana tsa seva le loadgen ka likotoana tse fapaneng. Ha ho na le lijana tse 'maloa ka har'a pod (mohlala, seva sa kopo le seva ea moemeli), lijana li laoloa e le mokhatlo o le mong 'me li arolelana lisebelisoa tsa pod.
  • Tsamaiso. Ho Kubernetes, ho tsamaisoa ke ntho eo e leng pokello ea li-pods tse tšoanang. Deployment e hlahisa likopi tse ngata tsa li-pods tse ajoang ho pholletsa le lihlopha tsa lihlopha. Ho tsamaisa ka bohona ho nka sebaka sa li-pods tse hlolehileng kapa tse sa arabeleng.
  • Tšebeletso ea Kubernetes. Ha o sebelisa khoutu ea ts'ebeliso ho GKE, khokahano lipakeng tsa loadgen и seva. Ha o ne o qala lits'ebeletso mochining kapa komporong ea Cloud Shell, o ile oa romella likopo ho seva ho localhost: 8080. Hang ha e rometsoe ho GKE, li-pods li etsoa ho li-node tse fumanehang. Ka kamehla, ha u na taolo ea hore na pod e ntse e sebetsa ho efe, kahoo uena li-pods ha ho liaterese tsa IP tse sa feleng.
    Ho fumana aterese ea IP bakeng sa seva, o hloka ho hlalosa ho tlosoa ha marang-rang holim'a li-pods. Ke seo eleng sona Tšebeletso ea Kubernetes. Ts'ebeletso ea Kubernetes e fana ka pheletso e phehellang bakeng sa sehlopha sa li-pods. Ho na le tse seng kae mefuta ea litšebeletso. seva sebedisa LoadBalancer, e fanang ka aterese ea IP ea kantle eo u ka ikopanyang le eona seva ho tsoa ka ntle ho sehlopha.
    Kubernetes e boetse e na le sistimi e hahelletsoeng ea DNS e fanang ka mabitso a DNS (mohlala, helloserver.default.cluster.local) litšebeletso. Ka lebaka la sena, li-pods tse ka har'a sehlopha li buisana le li-pods tse ling ka har'a sehlotšoana atereseng e sa feleng. Lebitso la DNS le ke ke la sebelisoa kantle ho sehlopha, joalo ka Cloud Shell kapa komporong.

Kubernetes e bontša

Ha o ne o tsamaisa kopo ho tsoa mohloling, o sebelisitse taelo ea bohlokoa python3

seva.py

Imperative e bolela leetsi: "etsa sena."

Kubernetes e sebelisa mohlala oa phatlalatso. Sena se bolela hore ha re bolelle Kubernetes hantle seo a lokelang ho se etsa, empa ho e-na le hoo re hlalosa boemo bo lakatsehang. Ka mohlala, Kubernetes e qala le ho emisa li-pods kamoo ho hlokahalang ho boloka boemo ba sebele ba tsamaiso bo lumellana le boemo bo lakatsehang.

U bontša boemo bo lakatsehang ho li-manifest kapa lifaeleng YAML. Faele ea YAML e na le litlhaloso tsa ntho e le 'ngoe kapa ho feta tsa Kubernetes.

Mohlala o na le faele ea YAML bakeng sa seva и loadgen. Faele e 'ngoe le e' ngoe ea YAML e bolela boemo bo lakatsehang ba ntho e rometsoeng le ts'ebeletso ea Kubernetes.

seva.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

  • Mosa e bontsha mofuta wa ntho.
  • metadata.name e hlalosa lebitso la thomelo.
  • Tšimo ea pele mohlomong e na le tlhaloso ya boemo bo batloang.
  • tse khethehileng e bontsha palo e batloang ya diphotjana.
  • Karolo spec.template e hlalosa pod template. Ho na le sebaka se itseng sa pod setšoantšo, e hlalosang lebitso la setšoantšo se lokelang ho ntšoa ho Registry ea Container.

Tšebeletso e hlalosoa ka tsela e latelang:

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

  • LoadBalancer: Bareki ba romella likopo ho aterese ea IP ea sekala sa mojaro, e nang le aterese ea IP e tsitsitseng mme e fumaneha ho tsoa ka ntle ho sehlopha.
  • targetPort: ha u ntse u hopola, sehlopha HLAHALA 8080 в dockerfile ha ea fana ka likou. U fana ka boema-kepe 8080e le hore o ka ikopanya le setshelo seva kantle ho sehlopha. Tabeng ea rona hellosvc.default.cluster.local:80 (lebitso le khuts'oane: hellosvc) e lumellana le boema-kepe 8080 Pod liaterese tsa IP helloserver.
  • kepe boo: Ena ke nomoro ea boema-kepe moo lits'ebeletso tse ling ho sehlopha li tla romella likopo.

loadgen.yaml

Ntho ea thomello ho loadgen.yaml sheba joalo ka seva.yaml. Phapang ke hore ntho ea ho romelloa e na le karolo romeletsa. E hlalosa maemo a tikoloho a hlokehang loadgen le eo o e kentseng ha o tsamaisa sesebelisoa ho tsoa mohloling.

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

Hang loadgen ha e amohele likopo tse kenang, bakeng sa tšimo mofuta bonts'itsoe ClusterIP. Mofuta ona o fana ka aterese ea IP e phehellang eo lits'ebeletso tse ka har'a sehlopha li ka li sebelisang, empa aterese ena ea IP ha e hlahe ho bareki ba kantle.

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

Ho tsamaisa Lijana ho GKE

1) Eya ho directory moo mohlala o leng teng seva:

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

2) Bula seva.yaml mohlophisi oa mongolo.
3) Beha lebitso sebakeng setšoantšo lebitsong la setšoantšo sa hau sa Docker.

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

Tlosa sebaka PROJECT_ID ho ID ea projeke ea hau ea GCP.
4) Boloka le ho koala seva.yaml.
5) Kenya faele ea YAML ho Kubernetes:

kubectl apply -f server.yaml

Ha o qetile ka katleho, taelo e hlahisa khoutu e latelang:

deployment.apps/helloserver created
service/hellosvc created

6) Eya ho directory moo loadgen:

cd ../loadgen

7) Bula loadgen.yaml mohlophisi oa mongolo.
8) Beha lebitso sebakeng setšoantšo lebitsong la setšoantšo sa hau sa Docker.

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

Tlosa sebaka PROJECT_ID ho ID ea projeke ea hau ea GCP.
9) Boloka le ho koala loadgen.yaml, koala mongolo oa mongolo.
10) Kenya faele ea YAML ho Kubernetes:

kubectl apply -f loadgen.yaml

Ha o qetile ka katleho, taelo e hlahisa khoutu e latelang:

deployment.apps/loadgenerator created
service/loadgensvc created

11) Sheba boemo ba li-pods:

kubectl get pods

Taelo e bontša boemo:

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

12) Ntša lits'ebetso tsa kopo ho tloha pod loadgen. Tlosa sebaka POD_ID ho ea ho sekhetho ho tsoa karabong e fetileng.

kubectl logs loadgenerator-POD_ID

13) Fumana liaterese tsa IP tsa kantle hellosvc:

kubectl get service

Karabo ea taelo e shebahala tjena:

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) Romela kopo ho hellosvc: nkela sebaka EXTERNAL_IP ho aterese ea IP ea kantle hellosvc.

curl http://EXTERNAL_IP

Ha re nkeng Istio

U se u ntse u e-na le kopo e rometsoeng ho GKE. loadgen o ka sebelisa Kubernetes DNS (hellosvc:80) ho romela likopo ho seva'me u ka romela likopo ho seva ka aterese ea IP ea kantle. Leha Kubernetes e na le likarolo tse ngata, ho na le tlhahisoleseling e haellang mabapi le lits'ebeletso:

  • Litšebeletso li sebelisana joang? Likamano pakeng tsa litšebeletso ke life? Sephethephethe se tsamaea joang lipakeng tsa litšebeletso? Na u tseba seo loadgen e romela likopo ho seva, empa nahana hore ha u tsebe letho ka kopo. Ho araba lipotso tsena, a re shebeng lethathamo la li-pods tse sebetsang ho GKE.
  • Melemo. Bolelele bo bokae seva e araba kopo e tlang? Ke likopo tse kae ka motsotsoana tse amoheloang ke seva? Na e fana ka melaetsa ea liphoso?
  • Boitsebiso ba Tšireletso. Sephethephethe pakeng tsa loadgen и seva e feta feela http kapa ka mTLS?

Istio e araba lipotso tsena kaofela. Ho etsa sena, Istio e beha moemeli oa koloi e ka thōko moromuoa sebakeng se seng le se seng. Moemeli oa Envoy o thibela sephethephethe sohle se kenang le se tsoang ho lijana tsa kopo. Ho bolela seo seva и loadgen amohela ka sidecar proxy Envoy, le sephethephethe sohle se tsoang loadgen к seva e feta ka moemeli oa moemeli.

Likamano lipakeng tsa baemeli ba baemeli li theha mesh ea litšebeletso. Mehaho ea mesh ea litšebeletso e fana ka taolo holim'a Kubernetes.

Ho lokisa kopo bakeng sa Istio

Kaha li-proxies tsa Envoy li matha ka har'a lijana tsa tsona, Istio e ka kenngoa ka holim'a sehlopha sa GKE hoo e batlang e se na liphetoho ho khoutu ea kopo. Empa o entse mosebetsi o mong ho lokisa kopo ea hau hore e laoloe ke Istio:

  • Litšebeletso tsa lijana tsohle. Ho deployments seva и loadgen e hokahane le ts'ebeletso ea Kubernetes. Leha ho le joalo loadgen, e sa amoheleng likopo tse kenang, ho na le tšebeletso.
  • Boema-kepe ba litšebeletso bo tlameha ho ba le mabitso. Leha likou tsa lits'ebeletso li ka siuoa li sa boleloa ka mabitso ho GKE, Istio e hloka hore u hlalose lebitso la koung ho latela protocol ea hae. Ho faele ea YAML boema-kepe ba seva e bitsoa -httphobane seva se sebelisa protocol http... Haeba tšebeletso ea sebedisoa GRPC, u ka reha boema-kepe grpc.
  • Lisebelisoa li tšoailoe. Ka hona, o ka sebelisa likarolo tsa taolo ea sephethephethe sa Istio, joalo ka ho arola sephethephethe lipakeng tsa mefuta ea ts'ebeletso e le 'ngoe.

Ho kenya Istio

Ho na le mekhoa e 'meli ea ho kenya Istio. Ka thusa Istio ka katoloso ea GKE kapa kenya mofuta o bulehileng oa mohloli oa Istio sehlopheng. Ka Istio ho GKE, o ka khona ho laola lits'ebetso tsa Istio habonolo le lintlafatso ho pholletsa le bophelo ba sehlopha sa GKE. Haeba u batla mofuta oa morao-rao oa Istio kapa taolo e eketsehileng holim'a tlhophiso ea phanele ea taolo ea Istio, kenya mofuta oa mohloli o bulehileng sebakeng sa Istio ho katoloso ea GKE. Ho etsa qeto ka mokhoa oa ho atamela, bala sehlooho Na ke hloka Istio ho GKE?.

Khetha khetho, bala tataiso e nepahetseng, 'me u latele litaelo tsa ho kenya Istio sehlopheng sa hau. Haeba u batla ho sebelisa Istio ka sesebelisoa sa hau se sa tsoa sebelisoa, nolofalletsa ts'ebetsong ea sidecar bakeng sa sebaka sa mabitso ya kamehla.

Ho hloekisa

Ho qoba ho lefisoa ak'haonte ea hau ea Sethala sa Google Cloud bakeng sa lisebelisoa tseo u li sebelisitseng thutong ena, hlakola sehlopha sa linkho ha u se u kentse Istio le ho bapala ka mohlala oa sesebelisoa. Sena se tla tlosa lisebelisoa tsohle tsa sehlopha, joalo ka maemo a khomphutha, li-disk, le lisebelisoa tsa marang-rang.

Ke'ng e latelang?

Source: www.habr.com

Eketsa ka tlhaloso