Preparant una sol·licitud per a Istio

Preparant una sol·licitud per a Istio

Istio és una eina convenient per connectar, assegurar i supervisar aplicacions distribuïdes. Istio utilitza una varietat de tecnologies per executar i gestionar programari a escala, inclosos els contenidors per empaquetar el codi de l'aplicació i les dependències per al desplegament, i Kubernetes per gestionar aquests contenidors. Per tant, per treballar amb Istio cal saber com funciona una aplicació amb múltiples serveis basats en aquestes tecnologies без Istio. Si aquestes eines i conceptes ja us són familiars, no dubteu a ometre aquest tutorial i anar directament a la secció Instal·lació d'Istio a Google Kubernetes Engine (GKE) o instal·lar una extensió Istio a GKE.

Aquesta és una guia pas a pas on recorrerem tot el procés, des del codi font fins al contenidor de GKE, per donar-vos una comprensió bàsica d'aquestes tecnologies mitjançant un exemple. També veureu com Istio aprofita el poder d'aquestes tecnologies. Això suposa que no saps res sobre contenidors, Kubernetes, malles de servei o Istio.

tasques

En aquest tutorial, realitzareu les tasques següents:

  1. Aprenentatge d'una senzilla aplicació Hello World amb múltiples serveis.
  2. Executeu l'aplicació des del codi font.
  3. Embalatge de l'aplicació en contenidors.
  4. Creació d'un clúster de Kubernetes.
  5. Desplegament de contenidors en un clúster.

Abans de començar

Seguiu les instruccions per activar l'API de Kubernetes Engine:

  1. Anar a Pàgina de Kubernetes Engine a la consola de Google Cloud Platform.
  2. Crea o selecciona un projecte.
  3. Espereu fins que l'API i els serveis relacionats estiguin habilitats. Això pot trigar uns quants minuts.
  4. Assegureu-vos que la facturació estigui configurada per al vostre projecte de Google Cloud Platform. Obteniu informació sobre com activar la facturació.

En aquest tutorial, podeu utilitzar Cloud Shell, que prepara la màquina virtual g1-small a Google Compute Engine amb Linux basat en Debian, o un ordinador Linux o macOS.

Opció A: Ús de Cloud Shell

Beneficis d'utilitzar Cloud Shell:

  • Entorns de desenvolupament Python 2 i Python 3 (incloent virtualenv) estan totalment configurats.
  • Eines de línia d'ordres gcloud, docker, git и kubectl, que farem servir ja estan instal·lats.
  • Tens diversos per triar editors de text:
    1. Editor de codis, que s'obre amb la icona d'edició a la part superior de la finestra de Cloud Shell.
    2. Emacs, Vim o Nano, que s'obren des de la línia d'ordres a Cloud Shell.

Usar Cloud Shell:

  1. Aneu a la consola de GCP.
  2. premsa Activa Cloud Shell (Activeu Cloud Shell) a la part superior de la finestra de la consola GCP.

Preparant una sol·licitud per a Istio

A la part inferior consola GCP S'obrirà una sessió de Cloud Shell amb una línia d'ordres en una finestra nova.

Preparant una sol·licitud per a Istio

Opció B: Ús local d'eines de línia d'ordres

Si treballareu en un ordinador amb Linux o macOS, haureu de configurar i instal·lar els components següents:

  1. Personalitzar Entorn de desenvolupament Python 3 i Python 2.

  2. Instal·leu Cloud SDK amb l'eina de línia d'ordres gcloud.

  3. Instal·lar kubectl - Eina de línia d'ordres per treballar Kubernetes.

    gcloud components install kubectl

  4. Instal·lar Docker Community Edition (CE). Utilitzareu l'eina de línia d'ordres dockerper crear imatges de contenidors per a l'aplicació de mostra.

  5. Instal·leu l'eina Control de versions de Gitper obtenir l'aplicació de mostra de GitHub.

Descarrega el codi de mostra

  1. Descarrega el codi font hola servidor:

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

  2. Aneu al directori de codi d'exemple:

    cd istio-samples/sample-apps/helloserver

Explorant una aplicació amb múltiples serveis

L'aplicació de mostra està escrita en Python i consta de dos components que interactuen utilitzant RESTA:

  • servidor: servidor simple amb un punt final ACONSEGUIR, /, que imprimeix "hola món" a la consola.
  • loadgen: script que envia trànsit a servidor, amb un nombre configurable de peticions per segon.

Preparant una sol·licitud per a Istio

Execució d'una aplicació des del codi font

Per explorar l'aplicació de mostra, executeu-la a Cloud Shell o al vostre ordinador.
1) Al catàleg istio-samples/sample-apps/helloserver correr servidor:

python3 server/server.py

En començar servidor es mostra el següent:

INFO:root:Starting server...

2) Obriu una altra finestra de terminal per enviar sol·licituds servidor. Si utilitzeu Cloud Shell, feu clic a la icona d'afegir per obrir una altra sessió.
3) Envieu una sol·licitud a servidor:

curl http://localhost:8080

respostes del servidor:

Hello World!

4) Des del directori on heu descarregat el codi de mostra, aneu al directori que conté loadgen:

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

5) Creeu les variables d'entorn següents:

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

6) Corre virtualenv:

virtualenv --python python3 env

7) Activa l'entorn virtual:

source env/bin/activate

8) Establir requisits per loadgen:

pip3 install -r requirements.txt

9) Corre loadgen:

python3 loadgen.py

En començar loadgen mostra alguna cosa com el missatge següent:

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

En una altra finestra de terminal servidor envia els missatges següents a la consola:

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

Des d'una perspectiva de xarxa, tota l'aplicació s'executa en un únic host (ordinador local o màquina virtual Cloud Shell). Per tant, podeu utilitzar localhostper enviar peticions a servidor.
10) Aturar-se loadgen и servidor, entra Ctrl-c a cada finestra de terminal.
11) A la finestra del terminal loadgen desactivar l'entorn virtual:

deactivate

Embalatge d'una aplicació en contenidors

Per executar l'aplicació a GKE, cal empaquetar l'aplicació de mostra − servidor и loadgen - dins contenidors. Un contenidor és una manera d'empaquetar una aplicació per aïllar-la del seu entorn.

Per empaquetar una aplicació en un contenidor, cal Dockerfile. Dockerfile és un fitxer de text que defineix les ordres per construir el codi font de l'aplicació i les seves dependències Imatge de Docker. Un cop construïda, pengeu la imatge a un registre de contenidors com ara Docker Hub o Registre de contenidors.

L'exemple ja ho té Dockerfile per servidor и loadgen amb totes les ordres necessàries per recollir imatges. Baix - Dockerfile per servidor:

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

  • Equip DE python: 3-slim com a base diu a Docker que utilitzi l'últim Imatge de Python 3 com a base.
  • Equip CÒPIA. . copia els fitxers font al directori de treball actual (només en el nostre cas server.py) al sistema de fitxers del contenidor.
  • PUNT D'ENTRADA defineix l'ordre que s'utilitza per iniciar el contenidor. En el nostre cas, aquesta ordre és gairebé la mateixa que la que vau executar server.py del codi font.
  • Equip EXPOSAR indica que servidor espera dades a través del port 8080. Aquest equip no ho és ofereix ports. Aquesta és una mena de documentació que es necessita per obrir el port 8080 en iniciar el contenidor.

Preparant-se per contener la vostra aplicació

1) Establiu les variables d'entorn següents. Substitueix PROJECT_ID a l'identificador del vostre projecte de GCP.

export PROJECT_ID="PROJECT_ID"

export GCR_REPO="preparing-istio"

Utilitzant valors PROJECT_ID и GCR_REPO etiqueteu la imatge de Docker quan la creeu i l'envieu a un registre de contenidors privat.

2) Establiu el projecte GCP predeterminat per a l'eina de línia d'ordres gcloud.

gcloud config set project $PROJECT_ID

3) Establiu la zona predeterminada per a l'eina de línia d'ordres gcloud.

gcloud config set compute/zone us-central1-b

4) Assegureu-vos que el servei Container Registry estigui habilitat al projecte GCP.

gcloud services enable containerregistry.googleapis.com

Servidor de contenidorització

  1. Aneu al directori on es troba l'exemple servidor:

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

  2. Muntar la imatge utilitzant Dockerfile i les variables d'entorn que heu definit anteriorment:

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

Paràmetre -t representa l'etiqueta Docker. Aquest és el nom de la imatge que utilitzeu en desplegar el contenidor.

  1. Carregueu la imatge al Registre de contenidors:
    docker push gcr.io/$PROJECT_ID/$GCR_REPO/helloserver:v0.0.1

Contenedorització de loadgen

1) Aneu al directori on es troba l'exemple loadgen:

cd ../loadgen

2) Recolliu la imatge:

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

3) Carregueu la imatge al Registre de contenidors:

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

Veure una llista d'imatges

Reviseu la llista d'imatges del repositori i comproveu que les imatges s'han penjat:

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

L'ordre mostra els noms de les imatges recentment penjades:

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

S'està creant un clúster de GKE.

Aquests contenidors es podrien executar en una màquina virtual Cloud Shell o en un ordinador amb l'ordre corredera. Però en un entorn de producció, necessiteu una manera d'orquestrar els contenidors de manera centralitzada. Per exemple, necessiteu un sistema que garanteixi que els contenidors estiguin sempre en funcionament, i necessiteu una manera d'augmentar i augmentar les instàncies de contenidors addicionals si el trànsit augmenta.

Per executar aplicacions en contenidors podeu utilitzar G.K.E.. GKE és una plataforma d'orquestració de contenidors que agrega màquines virtuals en un clúster. Cada màquina virtual s'anomena node. Els clústers de GKE es basen en el sistema de gestió de clústers de codi obert Kubernetes. Kubernetes proporciona mecanismes per interactuar amb el clúster.

Creació d'un clúster de GKE:

1) Creeu un clúster:

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

Equip gcloud crea un clúster ja preparat al projecte GCP i a la zona predeterminada que heu especificat. Per executar Istio, recomanem tenir almenys 4 nodes i una màquina virtual n1-estàndard-2.

L'equip crea el clúster en pocs minuts. Quan el clúster està llest, l'ordre genera alguna cosa com això сообщение.

2) Proporcioneu credencials a l'eina de línia d'ordres kubectlper utilitzar-lo per gestionar el clúster:

gcloud container clusters get-credentials istioready

3) Ara podeu comunicar-vos amb Kubernetes mitjançant kubectl. Per exemple, l'ordre següent pot esbrinar l'estat dels nodes:

kubectl get nodes

L'ordre produeix una llista de 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

Conceptes clau de Kubernetes

El diagrama mostra una aplicació a GKE:

Preparant una sol·licitud per a Istio

Abans de desplegar contenidors a GKE, aprèn els conceptes clau de Kubernetes. Hi ha enllaços al final si voleu saber-ne més.

  • Nodes i clústers. A GKE, un node és una màquina virtual. En altres plataformes Kubernetes, un node pot ser un ordinador o una màquina virtual. Un clúster és una col·lecció de nodes que es pot considerar una unitat única on es desplega una aplicació en contenidors.
  • Beines. A Kubernetes, els contenidors s'executen en beines. Un pod a Kubernetes és una unitat indivisible. Un pod conté un o més contenidors. Desplegueu contenidors del servidor i loadgen en beines separades. Quan hi ha diversos contenidors en un pod (per exemple, un servidor d'aplicacions i servidor intermediari), els contenidors es gestionen com una única entitat i comparteixen recursos de pod.
  • Desplegaments. A Kubernetes, un desplegament és un objecte que és una col·lecció de pods idèntics. El desplegament llança diverses rèpliques de pods distribuïdes entre nodes del clúster. El desplegament substitueix automàticament els pods que han fallat o que no responen.
  • Servei Kubernetes. Quan s'executa el codi de l'aplicació a GKE, la connexió entre loadgen и servidor. Quan vau iniciar serveis en una màquina virtual o escriptori de Cloud Shell, vau enviar sol·licituds a servidor a localhost: 8080. Un cop implementats a GKE, els pods s'executen als nodes disponibles. De manera predeterminada, no teniu cap control sobre quin node s'executa el pod, així que vosaltres beines sense adreces IP permanents.
    Per obtenir una adreça IP per servidor, heu de definir una abstracció de xarxa a la part superior dels pods. Això és el que és Servei Kubernetes. El servei Kubernetes proporciona un punt final persistent per a un conjunt de pods. N'hi ha uns quants tipus de serveis. servidor usos LoadBalancer, que proporciona una adreça IP externa per contactar servidor des de fora del clúster.
    Kubernetes també té un sistema DNS integrat que assigna noms DNS (per exemple, helloserver.default.cluster.local) serveis. Gràcies a això, els pods del clúster es comuniquen amb altres pods del clúster en una adreça permanent. El nom DNS no es pot utilitzar fora del clúster, com ara a Cloud Shell o en un ordinador.

Kubernetes es manifesta

Quan vau executar l'aplicació des de la font, vau utilitzar l'ordre imperatiu python3

server.py

L'imperatiu implica un verb: "fes això".

Usa Kubernetes model declaratiu. Això vol dir que no estem dient a Kubernetes exactament què ha de fer, sinó que descrivim l'estat desitjat. Per exemple, Kubernetes inicia i atura els pods segons sigui necessari per assegurar-se que l'estat real del sistema coincideix amb l'estat desitjat.

Indiqueu l'estat desitjat en manifests o fitxers YAML. Un fitxer YAML conté especificacions per a un o més objectes de Kubernetes.

L'exemple conté un fitxer YAML per a servidor и loadgen. Cada fitxer YAML especifica l'estat desitjat de l'objecte de desplegament i del servei Kubernetes.

server.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: helloserver
spec:
  selector:
    matchLabels:
      app: helloserver
  replicas: 1
  template:
    metadata:
      labels:
        app: helloserver
    spec:
      terminationGracePeriodSeconds: 5
      restartPolicy: Always
      containers:
      - name: main
        image: gcr.io/google-samples/istio/helloserver:v0.0.1
        imagePullPolicy: Always

  • tipus indica el tipus d'objecte.
  • metadades.nom especifica el nom del desplegament.
  • Primer camp spec conté una descripció de l'estat desitjat.
  • rèpliques especificacions indica el nombre desitjat de beines.
  • Secció plantilla especificació defineix una plantilla de pod. Hi ha un camp a l'especificació del pod imatge, que especifica el nom de la imatge que cal extreure del Registre de contenidors.

El servei es defineix de la següent manera:

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

  • LoadBalancer: els clients envien sol·licituds a l'adreça IP de l'equilibrador de càrrega, que té una adreça IP persistent i és accessible des de fora del clúster.
  • port de destinació: com recordeu, l'equip EXPOSA 8080 в Dockerfile no va proporcionar ports. Tu proporciones el port 8080perquè pugueu contactar amb el contenidor servidor fora del clúster. En el nostre cas hellosvc.default.cluster.local:80 (nom curt: holavc) correspon al port 8080 Adreces IP del pod hola servidor.
  • port: Aquest és el número de port on altres serveis del clúster enviaran sol·licituds.

loadgen.yaml

Objecte de desplegament a loadgen.yaml sembla server.yaml. La diferència és que l'objecte de desplegament conté una secció env. Defineix les variables d'entorn que es necessiten loadgen i que heu instal·lat en executar l'aplicació des de la font.

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

Temps loadgen no accepta peticions entrants, pel camp type indicat ClústerIP. Aquest tipus proporciona una adreça IP persistent que poden utilitzar els serveis del clúster, però aquesta adreça IP no està exposada a clients externs.

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

Implementació de contenidors a GKE

1) Aneu al directori on es troba l'exemple servidor:

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

2) Obert server.yaml en un editor de text.
3) Substituïu el nom al camp imatge al nom de la imatge de Docker.

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

Substitueix PROJECT_ID a l'identificador del vostre projecte de GCP.
4) Desa i tanca server.yaml.
5) Desplegueu el fitxer YAML a Kubernetes:

kubectl apply -f server.yaml

Un cop finalitzada amb èxit, l'ordre produeix el codi següent:

deployment.apps/helloserver created
service/hellosvc created

6) Aneu al directori on loadgen:

cd ../loadgen

7) Obert loadgen.yaml en un editor de text.
8) Substituïu el nom al camp imatge al nom de la imatge de Docker.

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

Substitueix PROJECT_ID a l'identificador del vostre projecte de GCP.
9) Desa i tanca loadgen.yaml, tanqueu l'editor de text.
10) Desplegueu el fitxer YAML a Kubernetes:

kubectl apply -f loadgen.yaml

Un cop finalitzada amb èxit, l'ordre produeix el codi següent:

deployment.apps/loadgenerator created
service/loadgensvc created

11) Comproveu l'estat de les beines:

kubectl get pods

L'ordre mostra l'estat:

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

12) Extraieu els registres d'aplicacions del pod loadgen. Substitueix POD_ID a l'identificador de la resposta anterior.

kubectl logs loadgenerator-POD_ID

13) Obteniu adreces IP externes holavc:

kubectl get service

La resposta de l'ordre s'assembla a això:

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) Envieu una sol·licitud a holavc: substituir EXTERNAL_IP a una adreça IP externa holavc.

curl http://EXTERNAL_IP

Enfrontem l'Istio

Ja teniu una aplicació implementada a GKE. loadgen pot utilitzar Kubernetes DNS (hola: 80) per enviar sol·licituds servidori podeu enviar sol·licituds a servidor per adreça IP externa. Tot i que Kubernetes té moltes funcions, falta informació sobre els serveis:

  • Com interactuen els serveis? Quines són les relacions entre els serveis? Com flueix el trànsit entre serveis? En sou conscients? loadgen envia peticions a servidor, però imagina que no saps res de l'aplicació. Per respondre aquestes preguntes, mirem la llista de pods en funcionament a GKE.
  • Mètriques. Quant de temps servidor respon a una sol·licitud entrant? Quantes peticions per segon rep el servidor? Dona missatges d'error?
  • Informació de seguretat. Trànsit entre loadgen и servidor només passa HTTP o per mTLS?

Istio respon a totes aquestes preguntes. Per fer-ho, Istio col·loca un proxy sidecar Enviat a cada beina. El servidor intermediari Envoy intercepta tot el trànsit entrant i sortint als contenidors d'aplicacions. Vol dir això servidor и loadgen rebre mitjançant el proxy sidecar Envoy i tot el trànsit des de loadgen к servidor passa pel proxy Envoy.

Les connexions entre servidors intermediaris d'Envoy formen una malla de servei. L'arquitectura de malla de servei proporciona una capa de control a la part superior de Kubernetes.

Preparant una sol·licitud per a Istio

Com que els servidors intermediaris d'Envoy s'executen als seus propis contenidors, Istio es pot instal·lar a sobre d'un clúster de GKE gairebé sense canvis al codi de l'aplicació. Però heu fet una mica de feina per preparar la vostra aplicació per ser gestionada per Istio:

  • Serveis per a tots els contenidors. Als desplegaments servidor и loadgen vinculat al servei Kubernetes. Fins i tot loadgen, que no rep sol·licituds entrants, hi ha un servei.
  • Els ports dels serveis han de tenir noms. Tot i que els ports de servei es poden deixar sense nom a GKE, Istio requereix que ho especifiqueu nom del port d'acord amb el seu protocol. Al fitxer YAML el port per servidor anomenat httpperquè el servidor utilitza el protocol HTTP... Si servei usat gRPC, anomenaries el port grpc.
  • Els desplegaments estan marcats. Per tant, podeu utilitzar les funcions de gestió del trànsit d'Istio, com ara dividir el trànsit entre versions del mateix servei.

Instal·lació

Hi ha dues maneres d'instal·lar Istio. Llauna habiliteu Istio a l'extensió GKE o instal·leu la versió de codi obert d'Istio al clúster. Amb Istio a GKE, podeu gestionar fàcilment les instal·lacions i les actualitzacions d'Istio al llarg del cicle de vida del clúster de GKE. Si voleu la darrera versió d'Istio o més control sobre la configuració del vostre tauler de control d'Istio, instal·leu la versió de codi obert en lloc de l'extensió Istio a GKE. Per decidir sobre l'enfocament, llegiu l'article Necessito Istio a GKE?.

Seleccioneu una opció, reviseu la guia adequada i seguiu les instruccions per instal·lar Istio al vostre clúster. Si voleu utilitzar Istio amb la vostra aplicació recentment implementada, habilitar la implementació de sidecar per a l'espai de noms defecte.

Neteja

Per evitar que us cobren al vostre compte de Google Cloud Platform pels recursos que heu utilitzat en aquest tutorial, suprimiu el clúster de contenidors un cop hàgiu instal·lat Istio i hàgiu jugat amb l'aplicació de mostra. Això eliminarà tots els recursos del clúster, com ara instàncies de càlcul, discs i recursos de xarxa.

Què serà el següent?

Font: www.habr.com

Afegeix comentari