Подготовка на апликација за Истио

Подготовка на апликација за Истио

Istio е удобна алатка за поврзување, обезбедување и следење на дистрибуирани апликации. Istio користи различни технологии за извршување и управување со софтвер во обем, вклучувајќи контејнери за пакување на кодот на апликацијата и зависности за распоредување, а Kubernetes за управување со тие контејнери. Затоа, за да работите со Istio мора да знаете како функционира апликација со повеќе услуги базирани на овие технологии без Истио. Ако овие алатки и концепти веќе ви се познати, слободно прескокнете го ова упатство и одете директно на делот Инсталирање на Istio на Google Kubernetes Engine (GKE) или инсталирање на екстензија Истио на ГКЕ.

Ова е водич чекор-по-чекор каде што ќе го поминеме целиот процес од изворниот код до контејнерот GKE за да ви дадеме основно разбирање за овие технологии преку пример. Исто така, ќе видите како Istio ја користи моќта на овие технологии. Ова претпоставува дека не знаете ништо за контејнери, Kubernetes, сервисни мрежи или Istio.

задачи

Во ова упатство, ќе ги завршите следните задачи:

  1. Учење едноставна апликација hello world со повеќе услуги.
  2. Стартувај ја апликацијата од изворниот код.
  3. Пакување на апликацијата во контејнери.
  4. Создавање кластер Kubernetes.
  5. Распоредување на контејнери во кластер.

Пред да започнете

Следете ги упатствата за да го овозможите Kubernetes Engine API:

  1. Оди до Страница на Kubernetes Engine во конзолата на Google Cloud Platform.
  2. Креирајте или изберете проект.
  3. Почекајте додека не се овозможат API и поврзаните услуги. Ова може да потрае неколку минути.
  4. Проверете дали наплатата е поставена за вашиот проект на Google Cloud Platform. Научете како да овозможите наплата.

Во ова упатство, можете да го користите Cloud Shell, кој ја подготвува виртуелната машина g1-small во Google Compute Engine со Linux базиран на Debian или компјутер со Linux или macOS.

Опција А: Користење Cloud Shell

Придобивки од користењето на Cloud Shell:

  • Околини за развој на Python 2 и Python 3 (вклучувајќи виртуелен) се целосно конфигурирани.
  • Алатки за командна линија gcloud, докер, оди и кубектел, кои ќе ги користиме се веќе инсталирани.
  • Имате неколку да изберете уредувачи на текст:
    1. Уредувач на кодови, што се отвора со иконата за уредување на горниот дел од прозорецот Cloud Shell.
    2. Emacs, Vim или Nano, кои се отвораат од командната линија во Cloud Shell.

Да се ​​користи Облак школка:

  1. Одете во GCP конзолата.
  2. Кликнете на копчето Активирајте го Cloud Shell (Активирај Cloud Shell) на горниот дел од прозорецот на GCP конзолата.

Подготовка на апликација за Истио

Во долниот дел GCP конзола Сесија на Cloud Shell со командна линија ќе се отвори во нов прозорец.

Подготовка на апликација за Истио

Опција Б: Локално користење на алатките за командна линија

Ако работите на компјутер со Linux или macOS, ќе треба да ги конфигурирате и инсталирате следните компоненти:

  1. Приспособете Развојна околина на Python 3 и Python 2.

  2. Инсталирајте Cloud SDK со алатка за командна линија gcloud.

  3. Намести кубектел - алатка за командна линија за работа со Кубернети.

    gcloud components install kubectl

  4. Намести Docker Community Edition (CE). Ќе ја користите алатката за командна линија докерда креирате слики од контејнери за апликацијата примерок.

  5. Инсталирајте ја алатката Контрола на верзијата на Gitза да ја добиете примерокот на апликацијата од GitHub.

Преземете примерок код

  1. Преземете го изворниот код helloserver:

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

  2. Одете во директориумот со примери со кодови:

    cd istio-samples/sample-apps/helloserver

Истражување на апликација со повеќе услуги

Примерочната апликација е напишана во Python и се состои од две компоненти кои комуницираат со користење ОДМОР:

  • сервер: едноставен сервер со една крајна точка ДОБИЈ, /, кој печати „здраво свет“ на конзолата.
  • натоварувач: скрипта што испраќа сообраќај до сервер, со конфигуриран број на барања во секунда.

Подготовка на апликација за Истио

Водење апликација од изворниот код

За да ја истражите апликацијата примерок, стартувајте ја во Cloud Shell или на вашиот компјутер.
1) Во каталогот istio-samples/sample-apps/helloserver трчај сервер:

python3 server/server.py

При стартување сервер се прикажува следново:

INFO:root:Starting server...

2) Отворете друг терминален прозорец за испраќање барања сервер. Ако користите Cloud Shell, кликнете на иконата за додавање за да отворите друга сесија.
3) Испратете барање до сервер:

curl http://localhost:8080

серверот одговори:

Hello World!

4) Од директориумот каде што сте го преземале примерокот на кодот, одете во директориумот што го содржи натоварувач:

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

5) Креирајте ги следните променливи на околината:

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

6) Лансирање виртуелен:

virtualenv --python python3 env

7) Активирајте ја виртуелната средина:

source env/bin/activate

8) Поставете барања за натоварувач:

pip3 install -r requirements.txt

9) Лансирање натоварувач:

python3 loadgen.py

При стартување натоварувач прикажува нешто како следнава порака:

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

Во друг терминален прозорец сервер ги емитува следните пораки на конзолата:

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

Од мрежна перспектива, целата апликација работи на еден домаќин (локален компјутер или виртуелна машина Cloud Shell). Затоа можете да користите localhostда испрати барања до сервер.
10) Да застане натоварувач и сервер, внесете Ctrl-c во секој терминален прозорец.
11) Во терминалниот прозорец натоварувач деактивирајте ја виртуелната средина:

deactivate

Пакување апликација во контејнери

За да ја извршите апликацијата на GKE, треба да ја спакувате примерната апликација − сервер и натоварувач - во Контејнерите. Контејнер е начин да се пакува апликација за да се изолира од нејзината околина.

За да спакувате апликација во контејнер, ви треба dockerfile. dockerfile е текстуална датотека која ги дефинира командите за вградување на изворниот код на апликацијата и неговите зависности во Докер слика. Откако ќе се изгради, ја поставувате сликата во регистар на контејнер како што е Docker Hub или Регистар на контејнери.

Примерот веќе има dockerfile за сервер и натоварувач со сите потребни команди за собирање слики. Подолу - dockerfile за сервер:

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

  • Тим ОД python:3-тенок како основа му кажува на Докер да го користи најновото Слика од Python 3 како основа.
  • Тим КОПИРАЈ. . ги копира изворните датотеки во тековниот работен директориум (само во нашиот случај server.py) во датотечен систем на контејнерот.
  • ВЛЕЗНА ТОЧКА ја дефинира командата што се користи за стартување на контејнерот. Во нашиот случај, оваа команда е речиси иста како онаа што ја користевте за да ја извршите server.py од изворниот код.
  • Тим ИЗЛОЕТЕ укажува на тоа сервер чека податоци преку пристаништето 8080. Овој тим не е обезбедува пристаништа. Ова е некаква документација што е потребна за отворање на пристаништето 8080 при стартување на контејнерот.

Подготовка за контејнеризирање на вашата апликација

1) Поставете ги следните променливи на околината. Заменете PROJECT_ID на вашиот проект ID на GCP.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

Користење на вредности PROJECT_ID и GCR_REPO ја означувате сликата на Docker кога ја создавате и ја туркате во приватен регистар на контејнер.

2) Поставете го стандардниот проект GCP за алатката за командна линија gcloud.

gcloud config set project $PROJECT_ID

3) Поставете ја стандардната зона за алатката за командна линија gcloud.

gcloud config set compute/zone us-central1-b

4) Проверете дали е овозможена услугата Container Registry во проектот GCP.

gcloud services enable containerregistry.googleapis.com

Сервер за контејнеризација

  1. Одете во директориумот каде што се наоѓа примерот сервер:

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

  2. Соберете ја сликата користејќи dockerfile и променливите на животната средина што ги дефиниравте претходно:

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

Параметар -t ја претставува ознаката Docker. Ова е името на сликата што ја користите при распоредување на контејнерот.

  1. Поставете ја сликата во регистарот на контејнери:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

Контејнеризација на натоварувач

1) Одете во директориумот каде што се наоѓа примерот натоварувач:

cd ../loadgen

2) Соберете ја сликата:

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

3) Поставете ја сликата во регистарот на контејнери:

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

Погледнете список со слики

Прегледајте го списокот со слики во складиштето и потврдете дека сликите се поставени:

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

Командата ги прикажува имињата на новопоставените слики:

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

Креирање на кластер GKE.

Овие контејнери може да се извршуваат на виртуелна машина Cloud Shell или на компјутер со командата докерски трчаат. Но, во производствена средина, потребен ви е начин за централно оркестрирање на контејнерите. На пример, потребен ви е систем кој гарантира дека контејнерите секогаш работат и ви треба начин да ги зголемите и вртите дополнителни примероци на контејнери доколку сообраќајот се зголеми.

За да стартувате контејнеризирани апликации што можете да ги користите ГКЕ. GKE е платформа за оркестрација на контејнери која ги собира виртуелните машини во кластер. Секоја виртуелна машина се нарекува јазол. Кластерите GKE се засноваат на системот за управување со кластери Kubernetes со отворен код. Kubernetes обезбедува механизми за интеракција со кластерот.

Креирање на кластер GKE:

1) Создадете кластер:

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

Тим gcloud создава веќе подготвен кластер во проектот GCP и стандардната зона што ја наведовте. За да го стартувате Istio, препорачуваме да имате најмалку 4 јазли и виртуелна машина n1-стандард-2.

Тимот го создава кластерот за неколку минути. Кога кластерот е подготвен, командата ќе даде вакво нешто сообщение.

2) Обезбедете акредитиви во алатката за командна линија кубектелда го користите за управување со кластерот:

gcloud container clusters get-credentials istioready

3) Сега можете да комуницирате со Kubernetes преку кубектел. На пример, следнава команда може да го дознае статусот на јазлите:

kubectl get nodes

Командата произведува листа на јазли:

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

Дијаграмот покажува апликација на GKE:

Подготовка на апликација за Истио

Пред да распоредите контејнери во GKE, научете ги клучните концепти на Kubernetes. Има линкови на самиот крај доколку сакате да дознаете повеќе.

  • Јазли и кластери. Во GKE, јазол е виртуелна машина. На други Kubernetes платформи, јазол може да биде компјутер или виртуелна машина. Кластерот е збирка јазли што може да се сметаат за единствена единица каде што распоредувате контејнеризирана апликација.
  • Мешунки. Во Кубернетес, контејнерите работат во мешунки. Под во Кубернетес е неделива единица. Во Pod има еден или повеќе контејнери. Распоредувате контејнери за сервер и натоварувач во посебни мешунки. Кога има неколку контејнери во подлогата (на пример, сервер за апликации и прокси-сервер), контејнерите се управуваат како единствен ентитет и споделуваат ресурси со подлоги.
  • Распоредувања. Во Kubernetes, распоредувањето е објект што е збирка од идентични подлоги. Распоредувањето лансира повеќекратни копии на мешунки дистрибуирани низ јазлите на кластерот. Распоредувањето автоматски ги заменува подлогите што не успеале или не реагираат.
  • Услуга Кубернетес. Кога се извршува кодот на апликацијата во GKE, врската помеѓу натоварувач и сервер. Кога започнавте услуги на виртуелна машина или работна површина Cloud Shell, испраќавте барања до сервер во localhost: 8080. Откако ќе се распоредат во GKE, подовите се извршуваат на достапните јазли. Стандардно, немате контрола врз кој јазол работи подлогата, така што вие мешунки нема постојани IP адреси.
    За да добиете IP адреса за сервер, треба да дефинирате мрежна апстракција на врвот на мешунките. Тоа е она што е Услуга Кубернетес. Услугата Kubernetes обезбедува постојана крајна точка за множество парчиња. Има неколку видови на услуги. сервер користи LoadBalancer, кој обезбедува надворешна IP адреса за контакт сервер од надвор од кластерот.
    Kubernetes исто така има вграден DNS систем кој доделува имиња на DNS (на пример, helloserver.default.cluster.local) услуги. Благодарение на ова, мешунките во кластерот комуницираат со други места во кластерот на постојана адреса. Името на DNS не може да се користи надвор од кластерот, како на пример во Cloud Shell или на компјутер.

Кубернетес се манифестира

Кога ја извршувавте апликацијата од изворот, ја користевте императивната команда python3

server.py

Императив имплицира глагол: „направи го ова“.

Kubernetes користи декларативен модел. Ова значи дека ние не му кажуваме на Кубернети што точно да прави, туку ја опишуваме посакуваната состојба. На пример, Kubernetes започнува и запира подлоги колку што е потребно за да се осигура дека вистинската состојба на системот се совпаѓа со саканата состојба.

Ја покажувате саканата состојба во манифестациите или датотеките ЈАМЛ. Датотеката YAML содржи спецификации за еден или повеќе објекти на Кубернет.

Примерот содржи датотека YAML за сервер и натоварувач. Секоја датотека YAML ја одредува посакуваната состојба на објектот за распоредување и услугата Kubernetes.

сервер.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

  • вид го означува типот на објектот.
  • метаподатоци.име го одредува името на распоредувањето.
  • Прво поле спец содржи опис на посакуваната состојба.
  • спец.реплики го означува саканиот број на мешунки.
  • Дел спец.шаблон дефинира шаблон за pod. Има поле во спецификацијата на pod слика, што го одредува името на сликата што треба да се извади од регистарот на контејнери.

Услугата е дефинирана на следниов начин:

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

  • LoadBalancer: Клиентите испраќаат барања до IP адресата на балансерот на оптоварување, која има постојана IP адреса и е достапна надвор од кластерот.
  • targetPort: како што се сеќавате, тимот EXPOSE 8080 в dockerfile не обезбеди пристаништа. Вие го обезбедувате пристаништето 8080за да можете да го контактирате контејнерот сервер надвор од кластерот. Во нашиот случај hellosvc.default.cluster.local:80 (кратко име: hellosvc) одговара на пристаништето 8080 Под IP-адреси helloserver.
  • пристаниште: Ова е бројот на портата каде што другите услуги во кластерот ќе испраќаат барања.

loadgen.yaml

Предмет на распоредување на loadgen.yaml изгледа како сервер.yaml. Разликата е во тоа што објектот за распоредување содржи дел завист. Ги дефинира потребните променливи на животната средина натоварувач и кои сте ги инсталирале кога ја извршувате апликацијата од изворот.

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

Време натоварувач не прифаќа дојдовни барања, за теренот тип означен ClusterIP. Овој тип обезбедува постојана IP адреса што може да ја користат услугите во кластерот, но оваа IP адреса не е изложена на надворешни клиенти.

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

Распоредување на контејнери во GKE

1) Одете во директориумот каде што се наоѓа примерот сервер:

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

2) Отвори сервер.yaml во текстуален уредувач.
3) Заменете го името во полето слика до името на вашата слика на Docker.

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

Замени PROJECT_ID на вашиот проект ID на GCP.
4) Зачувај и затвори сервер.yaml.
5) Распоредете ја датотеката YAML на Kubernetes:

kubectl apply -f server.yaml

По успешното завршување, командата го произведува следниов код:

deployment.apps/helloserver created
service/hellosvc created

6) Одете во директориумот каде што натоварувач:

cd ../loadgen

7) Отвори loadgen.yaml во текстуален уредувач.
8) Заменете го името во полето слика до името на вашата слика на Docker.

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

Замени PROJECT_ID на вашиот проект ID на GCP.
9) Зачувај и затвори loadgen.yaml, затворете го уредувачот на текст.
10) Распоредете ја датотеката YAML на Kubernetes:

kubectl apply -f loadgen.yaml

По успешното завршување, командата го произведува следниов код:

deployment.apps/loadgenerator created
service/loadgensvc created

11) Проверете го статусот на мешунките:

kubectl get pods

Командата го покажува статусот:

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

12) Извлечете дневници на апликации од подлогата натоварувач. Заменете POD_ID до идентификаторот од претходниот одговор.

kubectl logs loadgenerator-POD_ID

13) Добијте надворешни IP адреси hellosvc:

kubectl get service

Одговорот на командата изгледа отприлика вака:

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) Испратете барање до hellosvc: замени EXTERNAL_IP на надворешна IP адреса hellosvc.

curl http://EXTERNAL_IP

Ајде да го земеме Истио

Веќе имате распоредена апликација на GKE. натоварувач може да користи Kubernetes DNS (hellosvc:80) за испраќање барања до сервери можете да испраќате барања до сервер со надворешна IP адреса. Иако Kubernetes има многу функции, недостасуваат некои информации за услугите:

  • Како комуницираат услугите? Какви се односите помеѓу услугите? Како тече сообраќајот помеѓу услугите? Дали сте свесни за тоа натоварувач испраќа барања до сервер, но замислете дека не знаете ништо за апликацијата. За да одговориме на овие прашања, ајде да го погледнеме списокот со подлоги што работат во GKE.
  • Метрика. Колку долго сервер одговара на дојдовното барање? Колку барања во секунда се примаат од серверот? Дали дава пораки за грешка?
  • Безбедносни информации. Сообраќај помеѓу натоварувач и сервер само поминува низ HTTP или од страна на mTLS?

Истио одговара на сите овие прашања. За да го направите ова, Istio поставува прокси за странична кола пратеник во секоја мешунка. Проксито Envoy го пресретнува целиот дојдовен и појдовен сообраќај до контејнерите на апликациите. Тоа значи дека сервер и натоварувач добиваат преку sidecar proxy Envoy, и целиот сообраќај од натоварувач к сервер оди преку полномошникот Енвој.

Врските помеѓу полномошниците на Envoy формираат сервисна мрежа. Сервисната мрежна архитектура обезбедува слој на контрола на врвот на Kubernetes.

Подготовка на апликација за Истио

Бидејќи проксите на Envoy работат во нивните сопствени контејнери, Istio може да се инсталира на врвот на кластерот GKE без речиси никакви промени во кодот на апликацијата. Но, направивте одредена работа за да ја подготвите вашата апликација да биде управувана од Istio:

  • Услуги за сите контејнери. До распоредувањата сервер и натоварувач врзани за услугата Кубернетес. Дури и натоварувач, кој не прима дојдовни барања, постои услуга.
  • Пристаништата во услугите мора да имаат имиња. Иако сервисните порти може да се остават неименувани во GKE, Istio бара од вас да наведете име на порта во согласност со неговиот протокол. Во датотеката YAML портата за сервер наречен httpбидејќи серверот го користи протоколот HTTP... Ако Сервис користени gRPC, би го именувале пристаништето грпц.
  • Распоредувањата се означени. Затоа, можете да ги користите функциите за управување со сообраќајот на Istio, како што е поделба на сообраќајот помеѓу верзии на истата услуга.

Инсталирање на Istio

Постојат два начина да се инсталира Istio. Може овозможете Istio на екстензијата GKE или инсталирајте ја верзијата со отворен код на Istio на кластерот. Со Istio на GKE, можете лесно да управувате со инсталациите и надградбите на Istio во текот на животниот циклус на кластерот GKE. Ако сакате најновата верзија на Istio или поголема контрола врз конфигурацијата на контролната табла на Istio, инсталирајте ја верзијата со отворен код наместо екстензијата Istio на GKE. За да одлучите за пристапот, прочитајте ја статијата Дали ми треба Istio на GKE?.

Изберете опција, прегледајте го соодветниот водич и следете ги инструкциите за да го инсталирате Istio на вашиот кластер. Ако сакате да го користите Istio со вашата ново распоредена апликација, овозможете имплементација на страничната лента за именскиот простор стандардно.

Чистење

За да избегнете наплата на вашата сметка на Google Cloud Platform за ресурсите што ги користевте во ова упатство, избришете го кластерот на контејнери штом ќе го инсталирате Istio и ќе си играте со апликацијата примерок. Ова ќе ги отстрани сите ресурси на кластерот, како што се компјутерски примероци, дискови и мрежни ресурси.

Што е следно?

Извор: www.habr.com

Додадете коментар