Iarratas a ullmhú le haghaidh Istio

Iarratas a ullmhú le haghaidh Istio

Is uirlis áisiúil é Istio chun feidhmchláir dháilte a nascadh, a dhaingniú agus chun monatóireacht a dhéanamh orthu. Úsáideann Istio teicneolaíochtaí éagsúla chun bogearraí a rith agus a bhainistiú ar scála, lena n-áirítear coimeádáin chun cód feidhmchláir a phacáistiú agus spleáchais le haghaidh imscaradh, agus Kubernetes chun na coimeádáin sin a bhainistiú. Mar sin, le bheith ag obair le Istio ní mór go mbeadh a fhios agat conas a oibríonn feidhmchlár le seirbhísí iolracha bunaithe ar na teicneolaíochtaí seo без Istio. Má tá na huirlisí agus na coincheapa seo ar eolas agat cheana féin, ná bíodh drogall ort an rang teagaisc seo a scipeáil agus dul díreach chuig an rannóg Suiteáil Istio ar Google Kubernetes Engine (GKE) nó síneadh a shuiteáil Istio ar GKE.

Is treoir céim ar chéim é seo nuair a shiúlfaimid tríd an bpróiseas iomlán ó chód foinse go coimeádán GKE chun tuiscint bhunúsach a thabhairt duit ar na teicneolaíochtaí seo trí shampla. Feicfidh tú freisin conas a ghiaráil Istio cumhacht na dteicneolaíochtaí seo. Glacann sé seo leis nach bhfuil aon rud ar eolas agat faoi choimeádáin, Kubernetes, meshes seirbhíse, nó Istio.

tascanna

Sa rang teagaisc seo, déanfaidh tú na tascanna seo a leanas:

  1. Ag foghlaim feidhmchlár simplí dia duit le seirbhísí iolracha.
  2. Rith an feidhmchlár ón gcód foinse.
  3. Pacáistiú an iarratais i gcoimeádáin.
  4. Cruthú braisle Kubernetes.
  5. Coimeádáin a imscaradh isteach i mbraisle.

Sula dtosaíonn tú

Lean na treoracha chun Kubernetes Engine API a chumasú:

  1. Téigh go Leathanach inneall Kubernetes sa chonsól Google Cloud Platform.
  2. Cruthaigh nó roghnaigh tionscadal.
  3. Fan go dtí go mbeidh an API agus na seirbhísí gaolmhara cumasaithe. Seans go dtógfaidh sé seo cúpla nóiméad.
  4. Cinntigh go bhfuil an bhilleáil socraithe do do thionscadal Google Cloud Platform. Foghlaim conas billeáil a chumasú.

Sa rang teagaisc seo, is féidir leat Cloud Shell a úsáid, a ullmhaíonn an meaisín fíorúil g1-beag in Google Compute Engine le Linux bunaithe ar Debian, nó le ríomhaire Linux nó macOS.

Rogha A: Cloud Shell a úsáid

Na buntáistí a bhaineann le Cloud Shell a úsáid:

  • Timpeallachtaí forbartha Python 2 agus Python 3 (lena n-áirítear virtualenv) atá cumraithe go hiomlán.
  • Uirlisí Líne Ordú cloud, docker, git и cubectl, a úsáidfimid suiteáilte cheana féin.
  • Tá roinnt mhaith agat le roghnú astu eagarthóirí téacs:
    1. Eagarthóir cód, a osclaíonn leis an deilbhín eagarthóireachta ag barr fhuinneog Cloud Shell.
    2. Emacs, Vim nó Nano, a osclaíonn ón líne ordaithe i Cloud Shell.

Úsáid a bhaint as Scamall Bhlaosc:

  1. Téigh go dtí an consól GCP.
  2. Cliceáil an cnaipe Gníomhachtaigh Cloud Shell (Gníomhachtaigh Cloud Shell) ag barr na fuinneoige consól GCP.

Iarratas a ullmhú le haghaidh Istio

Sa chuid íochtair Consól GCP Osclófar seisiún Cloud Shell le líne ordaithe i bhfuinneog nua.

Iarratas a ullmhú le haghaidh Istio

Rogha B: Uirlisí Líne Ceannais a Úsáid go háitiúil

Má tá tú ag obair ar ríomhaire ag rith Linux nó macOS, beidh ort na comhpháirteanna seo a leanas a chumrú agus a shuiteáil:

  1. Saincheap Timpeallacht forbartha Python 3 agus Python 2.

  2. Suiteáil Cloud SDK le uirlis líne ordaithe cloud.

  3. Socraigh cubectl - uirlis líne ordaithe chun oibriú leis Kubernetes.

    gcloud components install kubectl

  4. Socraigh Eagrán Pobail Docker (CE). Úsáidfidh tú an uirlis líne ordaithe dockerchun íomhánna coimeádáin a chruthú don fheidhmchlár samplach.

  5. Suiteáil an uirlis Rialú leagan gitchun an t-iarratas samplach a fháil ó GitHub.

Íoslódáil an cód coiriúil sampla

  1. Íoslódáil an cód foinse freastalaí dia duit:

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

  2. Téigh go dtí an eolaire cód samplach:

    cd istio-samples/sample-apps/helloserver

Feidhmchlár le seirbhísí iolracha a iniúchadh

Tá an feidhmchlár samplach scríofa i Python agus tá dhá chomhpháirt ann a idirghníomhaíonn ag baint úsáide as REST:

  • freastalaí: freastalaí simplí le críochphointe amháin FAIGH, /, a phriontálann "hello world" chuig an consól.
  • loadgen: script a sheolann trácht chuig freastalaí, le líon in-chumraithe iarratas in aghaidh an tsoicind.

Iarratas a ullmhú le haghaidh Istio

Feidhmchlár a rith ón gcód foinseach

Chun an feidhmchlár samplach a iniúchadh, rith é in Cloud Shell nó ar do ríomhaire.
1) Sa chatalóg istio-samplaí/sample-apps/helloserver rith freastalaí:

python3 server/server.py

Ag am tosaithe freastalaí tá an méid seo a leanas ar taispeáint:

INFO:root:Starting server...

2) Oscail fuinneog teirminéil eile chun iarratais a sheoladh chucu freastalaí. Má tá Cloud Shell in úsáid agat, cliceáil ar an deilbhín leis chun seisiún eile a oscailt.
3) Iarratas a sheoladh chuig freastalaí:

curl http://localhost:8080

freagraí freastalaí:

Hello World!

4) Ón eolaire inar íoslódáil tú an cód samplach, téigh go dtí an eolaire ina bhfuil loadgen:

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

5) Cruthaigh na hathróga timpeallachta seo a leanas:

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

6) Rith virtualenv:

virtualenv --python python3 env

7) Gníomhachtaigh an timpeallacht fhíorúil:

source env/bin/activate

8) Socraigh ceanglais maidir le loadgen:

pip3 install -r requirements.txt

9) Rith loadgen:

python3 loadgen.py

Ag am tosaithe loadgen rud éigin cosúil leis an teachtaireacht seo a leanas a thaispeáint:

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

I bhfuinneog teirminéil eile freastalaí aschuireann sé na teachtaireachtaí seo a leanas chuig an consól:

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

Ó thaobh líonrú de, ritheann an feidhmchlár ar fad ar óstach amháin (ríomhaire áitiúil nó meaisín fíorúil Cloud Shell). Dá bhrí sin is féidir leat é a úsáid localhostchun iarratais a sheoladh chuig freastalaí.
10) A stopadh loadgen и freastalaí, isteach Ctrl-c i ngach fuinneog teirminéil.
11) Sa fhuinneog críochfoirt loadgen an timpeallacht fhíorúil a dhíghníomhachtú:

deactivate

Iarratas a phacáistiú i gcoimeádáin

Chun an feidhmchlár a rith ar GKE, ní mór duit an feidhmchlár samplach a phacáistiú − freastalaí и loadgen - ag Gabhdáin. Is bealach é coimeádán chun feidhmchlár a phacáistiú chun é a leithlisiú óna dtimpeallacht.

Chun iarratas a phacáil isteach i gcoimeádán, ní mór duit dockerfile. dockerfile Is comhad téacs é a shainíonn orduithe chun cód foinse an fheidhmchláir agus a spleáchais a thógáil isteach Íomhá docker. Nuair a bheidh tú tógtha, uaslódálann tú an íomhá chuig clárlann coimeádán mar Docker Hub nó Clárlann Coimeádán.

Tá an sampla cheana féin dockerfile le haghaidh freastalaí и loadgen leis na horduithe riachtanacha go léir chun íomhánna a bhailiú. Thíos - dockerfile le haghaidh freastalaí:

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

  • Foireann Ó python: 3-caol mar bhonn insíonn do Docker an ceann is déanaí a úsáid Python 3 íomhá mar bhonn.
  • Foireann CÓIP. . cóipeáil na comhaid foinse chuig an eolaire oibre reatha (ár gcás amháin freastalaí.py) chuig córas comhaid an choimeádáin.
  • ENTRYPOINT sainmhíníonn sé an t-ordú a úsáidtear chun an coimeádán a thosú. Is é ár gcás, tá an t-ordú seo beagnach mar an gcéanna leis an gceann a d'úsáid tú a rith freastalaí.py ón gcód foinse.
  • Foireann MÍNIÚ léiríonn sin freastalaí ag fanacht le haghaidh sonraí tríd an gcalafort 8080. Níl an fhoireann seo Soláthraíonn calafoirt. Is doiciméadú de chineál éigin é seo a theastaíonn chun an calafort a oscailt 8080 nuair a thosaíonn an coimeádán.

Ag ullmhú chun d'iarratas a choimeád

1) Socraigh na hathróga timpeallachta seo a leanas. Ionadaigh PROJECT_ID chuig do ID tionscadail GCP.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

Ag baint úsáide as luachanna PROJECT_ID и GCR_REPO clibíonn tú íomhá an Docker nuair a thógann tú é agus brú chuig Clárlann Coimeádán príobháideach í.

2) Socraigh an tionscadal GCP réamhshocraithe don uirlis líne ordaithe cloud.

gcloud config set project $PROJECT_ID

3) Socraigh an crios réamhshocraithe don uirlis líne ordaithe cloud.

gcloud config set compute/zone us-central1-b

4) Bí cinnte go bhfuil an tseirbhís Chlárlann Coimeádán cumasaithe sa tionscadal GCP.

gcloud services enable containerregistry.googleapis.com

Freastalaí coimeádaithe

  1. Téigh go dtí an eolaire ina bhfuil an sampla suite freastalaí:

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

  2. Bailigh an íomhá ag baint úsáide as dockerfile agus na hathróga timpeallachta a shainigh tú níos luaithe:

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

Paraiméadar -t is ionann an chlib Docker. Seo é ainm na híomhá a úsáideann tú agus an coimeádán á imscaradh.

  1. Uaslódáil an íomhá chuig an gClárlann Coimeádán:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

Coimeádán loadgen

1) Téigh go dtí an eolaire ina bhfuil an sampla suite loadgen:

cd ../loadgen

2) Bailigh an íomhá:

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

3) Uaslódáil an íomhá chuig an gClárlann Coimeádán:

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

Féach ar liosta íomhánna

Athbhreithnigh liosta na n-íomhánna sa stór agus deimhnigh go bhfuil na híomhánna uaslódáilte:

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

Taispeánann an t-ordú ainmneacha na n-íomhánna nua-uaslódála:

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

Cruthú braisle GKE.

D’fhéadfaí na coimeádáin seo a rith ar mheaisín fíorúil Cloud Shell nó ar ríomhaire leis an ordú docker reáchtáil. Ach i dtimpeallacht táirgthe, is gá duit bealach chun coimeádáin a stiúradh go lárnach. Mar shampla, tá córas ag teastáil uait a chinntíonn go mbíonn coimeádáin ag rith i gcónaí, agus ní mór duit bealach chun cásanna coimeádán breise a mhéadú agus a chasadh suas má mhéadaíonn an trácht.

Is féidir leat úsáid a bhaint as feidhmchláir coimeádaithe a rith G.K.E.. Is ardán orchestration coimeádán é GKE a chomhbhailíonn meaisíní fíorúla i mbraisle. Tugtar nód ar gach meaisín fíorúil. Tá braislí GKE bunaithe ar chóras bainistíochta braisle foinse oscailte Kubernetes. Soláthraíonn Kubernetes meicníochtaí chun idirghníomhú leis an mbraisle.

Cnuasach GKE á chruthú:

1) Cruthaigh braisle:

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

Foireann cloud cruthaíonn sé braisle istioready sa tionscadal GCP agus sa chrios réamhshocraithe a shonraigh tú. Chun Istio a rith, molaimid go mbeadh ar a laghad 4 nóid agus meaisín fíorúil agat n1-chaighdeán-2.

Cruthaíonn an fhoireann an braisle i gceann cúpla bomaite. Nuair a bhíonn an braisle réidh, aschuir an t-ordú rud éigin mar seo сообщение.

2) Cuir dintiúir ar fáil san uirlis líne ordaithe cubectlé a úsáid chun an braisle a bhainistiú:

gcloud container clusters get-credentials istioready

3) Anois is féidir leat cumarsáid a dhéanamh le Kubernetes trí cubectl. Mar shampla, is féidir leis an ordú seo a leanas stádas na nóid a fháil amach:

kubectl get nodes

Táirgeann an t-ordú liosta nóid:

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

Coincheapa Eochair Kubernetes

Taispeánann an léaráid feidhmchlár ar GKE:

Iarratas a ullmhú le haghaidh Istio

Sula n-imscarann ​​tú coimeádáin in GKE, foghlaim príomhchoincheapa Kubernetes. Tá naisc ag an deireadh más mian leat níos mó a fhoghlaim.

  • Nóid agus braislí. In GKE, is meaisín fíorúil é nód. Ar ardáin eile Kubernetes, is féidir le nód a bheith ina ríomhaire nó ina mheaisín fíorúil. Is éard is braisle ann ná cnuasach nóid is féidir a mheas mar aonad aonair ina n-imscarann ​​tú feidhmchlár coimeádán.
  • Potaí. I Kubernetes, ritheann coimeádáin i pods. Is aonad doroinnte é Pod in Kubernetes. Coinníonn Pod coimeádán amháin nó níos mó. Imscarann ​​tú coimeádáin freastalaí agus loadgen i pods ar leith. Nuair a bhíonn roinnt coimeádáin i pod (mar shampla, freastalaí iarratais agus seachfhreastalaí), déantar coimeádáin a bhainistiú mar aonán aonair agus roinntear acmhainní pod.
  • Imscaradh. In Kubernetes, is réad é imscaradh ar bailiúchán de phodaí comhionanna é. Seolann an t-imscaradh go leor macasamhla de choda scaipthe thar nóid bhraisle. Tagann an t-imscaradh go huathoibríoch in ionad pods ar theip orthu nó nach bhfreagraíonn.
  • Seirbhís Kubernetes. Nuair a bheidh cód iarratais á rith i GKE, an nasc idir loadgen и freastalaí. Nuair a chuir tú tús le seirbhísí ar mheaisín fíorúil nó ar dheasc Cloud Shell, sheol tú iarratais chuig freastalaí ag localhost: 8080. Nuair a dhéantar iad a imscaradh chuig GKE, déantar pods a fhorghníomhú ar na nóid atá ar fáil. De réir réamhshocraithe, níl aon smacht agat ar an nód a bhfuil an pod ag rith air, mar sin duitse pods gan aon seoltaí IP buana.
    Chun seoladh IP a fháil le haghaidh freastalaí, ní mór duit astarraingt líonra a shainiú ar bharr na pods. Sin a bhfuil sé Seirbhís Kubernetes. Soláthraíonn an tseirbhís Kubernetes críochphointe marthanach do shraith pods. Tá cúpla cineálacha seirbhísí. freastalaí úsáidí Luchtaigh Cothromóir, a sholáthraíonn seoladh IP seachtrach chun teagmháil a dhéanamh freastalaí ón taobh amuigh den bhraisle.
    Tá córas DNS ionsuite ag Kubernetes freisin a sannann ainmneacha DNS (mar shampla, helloserver.default.braisle.áitiúil) seirbhísí. A bhuí leis seo, déanann pods laistigh den bhraisle cumarsáid le pods eile sa bhraisle ag seoladh buan. Ní féidir an t-ainm DNS a úsáid lasmuigh den bhraisle, mar shampla i Cloud Shell nó ar ríomhaire.

Léirítear Kubernetes

Nuair a rith tú an feidhmchlár ón bhfoinse, d'úsáid tú an t-ordú riachtanach python3

freastalaí.py

Ciallaíonn Imperative briathar: "déan é seo."

Úsáideann Kubernetes samhail dhearbhaitheach. Ciallaíonn sé seo nach bhfuil muid ag insint go díreach do Kubernetes cad atá le déanamh, ach ag cur síos ar an staid inmhianaithe. Mar shampla, tosaíonn agus stopann Kubernetes pods de réir mar is gá chun staid iarbhír an chórais a choinneáil comhsheasmhach leis an stát atá ag teastáil.

Léiríonn tú an staid inmhianaithe i manifests nó comhaid YAML. Tá sonraíochtaí le haghaidh réad Kubernetes amháin nó níos mó i gcomhad YAML.

Tá comhad YAML le haghaidh freastalaí и loadgen. Sonraíonn gach comhad YAML staid inmhianaithe an réad imscartha agus seirbhís Kubernetes.

freastalaí.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

  • chineál léiríonn an cineál an réad.
  • meiteashonraí.ainm sonraíonn an t-ainm imlonnaithe.
  • An chéad réimse Sonraíocht tá cur síos ar an staid inmhianaithe.
  • sonra.macasamhla léiríonn an líon inmhianaithe pods.
  • Roinn sampla.teimpléad sainmhíníonn teimpléad pod. Tá réimse sa tsonraíocht pod íomha, a shonraíonn ainm na híomhá atá le baint as an gClárlann Coimeádán.

Sainmhínítear an tseirbhís mar seo a leanas:

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

  • Luchtaigh Cothromóir: Cuireann cliaint iarratais chuig seoladh IP an chothromóra ualaigh, a bhfuil seoladh IP leanúnach aige agus atá inrochtana ón taobh amuigh den bhraisle.
  • spriocPort: mar is cuimhin leat, an fhoireann Nochtadh 8080 в dockerfile níor chuir sé poirt ar fáil. Soláthraíonn tú an port 8080ionas gur féidir leat teagmháil a dhéanamh leis an gcoimeádán freastalaí taobh amuigh den bhraisle. Inár gcás hellosvc.default.cluster.local:80 (ainm gearr: dia duit) fhreagraíonn don phort 8080 Seoltaí IP pod freastalaí dia duit.
  • calafort: Seo an uimhir phoirt a seolfaidh seirbhísí eile sa bhraisle iarratais.

loadgen.yaml

Imscaradh agóid le loadgen.yaml cuma freastalaí.yaml. Is é an difríocht ná go bhfuil roinn sa réad imscartha env. Sainíonn sé na hathróga timpeallachta atá de dhíth loadgen agus a shuiteáil tú nuair a bhí an feidhmchlár á rith ón bhfoinse.

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

Am loadgen ní ghlacann sé le hiarratais isteach, don réimse cineál léirithe ClusterIP. Soláthraíonn an cineál seo seoladh IP leanúnach ar féidir le seirbhísí sa bhraisle a úsáid, ach níl an seoladh IP seo nochta do chliaint sheachtracha.

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

Coimeádáin a Imscaradh i GKE

1) Téigh go dtí an eolaire ina bhfuil an sampla suite freastalaí:

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

2) Oscailte freastalaí.yaml i eagarthóir téacs.
3) Ionadaigh an t-ainm sa réimse íomha le hainm do íomhá Docker.

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

Ionadaigh PROJECT_ID chuig do ID tionscadail GCP.
4) Sábháil agus dún freastalaí.yaml.
5) Imscaradh an comhad YAML chuig Kubernetes:

kubectl apply -f server.yaml

Nuair a bheidh sé críochnaithe go rathúil, táirgeann an t-ordú an cód seo a leanas:

deployment.apps/helloserver created
service/hellosvc created

6) Téigh go dtí an eolaire áit loadgen:

cd ../loadgen

7) Oscailte loadgen.yaml i eagarthóir téacs.
8) Ionadaigh an t-ainm sa réimse íomha le hainm do íomhá Docker.

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

Ionadaigh PROJECT_ID chuig do ID tionscadail GCP.
9) Sábháil agus dún loadgen.yaml, dún an t-eagarthóir téacs.
10) Imscaradh an comhad YAML chuig Kubernetes:

kubectl apply -f loadgen.yaml

Nuair a bheidh sé críochnaithe go rathúil, táirgeann an t-ordú an cód seo a leanas:

deployment.apps/loadgenerator created
service/loadgensvc created

11) Seiceáil stádas na pods:

kubectl get pods

Taispeánann an t-ordú an stádas:

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

12) Bain logaí iarratais as an pod loadgen. Ionadaigh POD_ID chuig an aitheantóir ón bhfreagra roimhe seo.

kubectl logs loadgenerator-POD_ID

13) Faigh seoltaí IP seachtracha dia duit:

kubectl get service

Breathnaíonn an freagra ordaithe rud éigin mar seo:

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) Iarratas a sheoladh chuig dia duit: ionad EXTERNAL_IP chuig seoladh IP seachtrach dia duit.

curl http://EXTERNAL_IP

Gabhaimid ar Istio

Tá feidhmchlár imlonnaithe chuig GKE agat cheana féin. loadgen is féidir Kubernetes DNS a úsáid (Dia duitvc:80) iarratais a chur chuig freastalaíagus is féidir leat iarratais a sheoladh chuig freastalaí trí sheoladh IP seachtrach. Cé go bhfuil go leor gnéithe ag Kubernetes, tá roinnt faisnéise in easnamh faoi na seirbhísí:

  • Conas a idirghníomhaíonn seirbhísí? Cad iad na caidrimh idir seirbhísí? Conas a shreabhann an trácht idir seirbhísí? An bhfuil a fhios agat go bhfuil loadgen seolann iarratais chuig freastalaí, ach samhlaigh nach bhfuil aon rud ar eolas agat faoin bhfeidhmchlár. Chun na ceisteanna seo a fhreagairt, déanaimis féachaint ar an liosta de na pods reatha in GKE.
  • Méadracht. Cé chomh fada freastalaí freagra a thabhairt ar iarratas isteach? Cé mhéad iarratas in aghaidh an tsoicind a fhaigheann an freastalaí? An dtugann sé teachtaireachtaí earráide?
  • Faisnéis Slándála. Trácht idir loadgen и freastalaí ach Gabhann tríd HTTP nó le mTLS?

Freagraíonn Istio na ceisteanna seo go léir. Chun seo a dhéanamh, cuireann Istio seachfhreastalaí taobhcharr Toscaire i ngach pod. Déanann seachfhreastalaí an Toscaire gach trácht isteach agus amach a idircheapadh chuig coimeádáin feidhmchláir. Ciallaíonn sé sin freastalaí и loadgen fháil trí Thoscaire seachfhreastalaí taobhcharr, agus gach trácht ó loadgen к freastalaí téann tríd an seachfhreastalaí Toscaire.

Cruthaíonn naisc idir seachvótálaithe Toscaire mogalra seirbhíse. Soláthraíonn an ailtireacht mogalra seirbhíse sraith rialaithe ar bharr Kubernetes.

Iarratas a ullmhú le haghaidh Istio

Ós rud é go ritheann seachvótálaithe Toscaire ina gcoimeádáin féin, is féidir Istio a shuiteáil ar bharr braisle GKE gan beagnach aon athruithe ar an gcód iarratais. Ach tá roinnt oibre déanta agat chun d’iarratas a ullmhú le bheith á bhainistiú ag Istio:

  • Seirbhísí do gach coimeádán. Chun imscaradh freastalaí и loadgen ceangailte le seirbhís Kubernetes. Fiú loadgen, nach bhfaigheann iarratais ag teacht isteach, tá seirbhís.
  • Caithfidh ainmneacha a bheith ar chalafoirt i seirbhísí. Cé gur féidir poirt seirbhíse a fhágáil gan ainm in GKE, éilíonn Istio duit a shonrú ainm poirt de réir a phrótacail. Sa chomhad YAML an port le haghaidh freastalaí ar a dtugtar httptoisc go n-úsáideann an freastalaí an prótacal HTTP. Dá seirbhís úsáidtear gRPC, d'ainmnighfeá an port grpc.
  • Tá imscaradh bratach. Mar sin, is féidir leat gnéithe bainistíochta tráchta Istio a úsáid, mar shampla trácht a roinnt idir leaganacha den tseirbhís chéanna.

Suiteáil

Tá dhá bhealach ann chun Istio a shuiteáil. An féidir chumasú Istio ar síneadh GKEshuiteáil an leagan foinse oscailte de Istio ar an mbraisle. Le Istio ar GKE, is féidir leat suiteálacha agus uasghráduithe Istio a bhainistiú go héasca ar feadh shaolré braisle GKE. Más mian leat an leagan is déanaí de Istio nó níos mó smachta ar do chumraíocht painéal rialaithe Istio, suiteáil an leagan foinse oscailte in ionad an síneadh Istio on GKE. Chun cinneadh a dhéanamh ar an gcur chuige, léigh an t-alt An bhfuil Istio ar GKE de dhíth orm?.

Roghnaigh rogha, athbhreithnigh an treoir chuí, agus lean na treoracha chun Istio a shuiteáil ar do bhraisle. Más mian leat Istio a úsáid le d’fheidhmchlár nua-imlonnaithe, cur i bhfeidhm taobhcharr a chumasú don ainmspás réamhshocraithe.

Glanadh

Chun nach ngearrfar táille ar do chuntas Google Cloud Platform as na hacmhainní a d’úsáid tú sa rang teagaisc seo, scrios an bhraisle coimeádán nuair a bheidh Istio suiteáilte agat agus nuair a bheidh tú ag imirt leis an bhfeidhmchlár samplach. Bainfidh sé seo na hacmhainní braisle go léir, ar nós cásanna ríomha, dioscaí agus acmhainní líonra.

Cad atá romhainn?

Foinse: will.com

Add a comment