En este instructivo, se describe cómo implementar aplicaciones en varios clústeres de Kubernetes mediante una malla de servicios de varios clústeres de Istio. Una malla de servicios de varios clústeres de Istio permite que los servicios que se ejecutan en varios clústeres de Kubernetes se comuniquen de forma segura entre sí. Los clústeres de Kubernetes pueden ejecutarse en cualquier lugar, incluso en diferentes plataformas en la nube, por ejemplo, clústeres de Google Kubernetes Engine (GKE) que se ejecutan en Google Cloud o un clúster de Kubernetes en un centro de datos local.
Este instructivo está pensado para los operadores que desean crear una malla de servicios en clústeres de GKE en varias redes. Se requiere conocimiento básico de Kubernetes, como implementaciones, servicios, entrada, etcétera. Se recomienda tener conocimiento básico de Istio, pero no es obligatorio.
Istio es una implementación de código abierto de una malla de servicios que te permite descubrir servicios que se ejecutan en clústeres de Kubernetes y enrutar y conectarte de forma segura y dinámica a ellos. Istio también proporciona un framework basado en políticas de enrutamiento, balanceo de cargas, limitación, telemetría, interrupción de circuitos, autenticación y autorización de llamadas de servicio en la malla con pocos cambios, o ninguno, en el código de tu aplicación. Cuando Istio se instala en un clúster de Kubernetes, usa el registro de servicio de Kubernetes para descubrir y crear de forma automática una malla de servicios interconectados (o microservicios) que se ejecutan en varios clústeres de GKE. Istio usa proxies de sidecar de Envoy que se ejecutan en cada pod a fin de administrar el enrutamiento y la seguridad del tráfico entre pods, y proporcionar observabilidad para todos los microservicios y cargas de trabajo que se ejecutan en el clúster.
Puede que los microservicios que se ejecutan en un clúster de Kubernetes necesiten comunicarse con microservicios que se ejecutan en otros clústeres de Kubernetes. Por ejemplo, es posible que los microservicios necesiten comunicarse entre regiones y que los propietarios de entornos o microservicios deban mantener sus propios clústeres de Kubernetes. Istio te permite crear una malla de servicios más allá de un único clúster de Kubernetes para incluir microservicios que se ejecutan en clústeres remotos y microservicios externos que se ejecutan en VM, fuera de Kubernetes.
Istio proporciona dos opciones de configuración principales para implementaciones de varios clústeres:
- Malla de servicios de varios clústeres con un plano de control remoto primario
- Malla de servicios de varios clústeres con planos de control de varias instancias principales
En una configuración de plano de control con varias instancias, cada clúster tiene su propia instalación de plano de control de Istio y cada plano de control administra su propia malla de servicios local. Puedes configurar una única malla de servicios lógica compuesta por la participación de microservicios en cada clúster, mediante puertas de enlace de Istio, una autoridad certificadora (CA) raíz común y descubrimiento de servicios automáticos en varios clústeres de GKE. Como resultado, cada clúster administra su propia malla de servicios de varios clústeres y todo el acceso entrante del clúster pasa por la puerta de enlace este-oeste de Istio. Este enfoque no tiene requisitos de herramientas de redes especiales, siempre que se pueda acceder a las puertas de enlace este-oeste de Istio en todos los clústeres.
En este instructivo, implementarás Istio en dos clústeres de GKE con la arquitectura de plano de control con varias instancias principales. En este instructivo, usarás una aplicación de microservicios de demostración llamada Online Boutique que se divide en dos clústeres de GKE. Para ver el lenguaje de cada microservicio, consulta la página README.
Debes compilar la siguiente arquitectura dentro de un proyecto de Cloud.
En esta arquitectura, tienes un clúster west
y un clúster central
en dos redes (o VPC) independientes, cada una con una puerta de enlace de este. Los clústeres se comunican con varios microservicios de forma local (en el mismo clúster) y no local (en el otro clúster).
Objetivos
- Crear dos clústeres de GKE,
west
ycentral
, en dos regiones y VPC diferentes. - Instalar Istio en modo de varias instancias principales en ambos clústeres de GKE
- Instalar la aplicación Online Boutique dividida en ambos clústeres
- Inspeccionar la malla de servicios en ambos clústeres.
Costos
En este documento, usarás los siguientes componentes facturables de Google Cloud:
Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios.
Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE and Cloud Source Repositories APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE and Cloud Source Repositories APIs.
Configura tu entorno
Ejecuta todos los comandos de terminal en este instructivo desde Cloud Shell.
En la consola de Google Cloud, abre Cloud Shell.
Si deseas descargar los archivos necesarios para este instructivo, clona el siguiente repositorio de GitHub:
cd $HOME git clone https://github.com/GoogleCloudPlatform/istio-multicluster-gke.git
Convierte la carpeta de repositorio en tu carpeta
$WORKDIR
desde la que realizarás todas las tareas relacionadas con este instructivo:cd $HOME/istio-multicluster-gke WORKDIR=$(pwd)
Puedes borrar la carpeta cuando termines con el instructivo.
Instala
kubectx
/kubens
:git clone https://github.com/ahmetb/kubectx $WORKDIR/kubectx export PATH=$PATH:$WORKDIR/kubectx
Estas herramientas facilitan el trabajo con varios clústeres de Kubernetes, ya que cambian contextos o espacios de nombres.
Crea VPC y clústeres de GKE
En esta sección, crearás dos VPC y dos clústeres de GKE, uno en cada VPC. Necesitarás dos VPC distintas si quieres demostrar que no se necesitan requisitos de herramientas de redes adicionales para la implementación de varias instancias principales de Istio en varias redes. El tráfico de servicio a servicio entre clústeres fluye de forma segura a través de Internet. El enrutamiento de tráfico a través de la Internet pública entre clústeres ofrece las siguientes ventajas:
- Admite direcciones IP superpuestas en clústeres. Las direcciones IP de nodo, pod y servicio pueden superponerse entre clústeres.
- No requiere conectividad adicional entre clústeres. Tampoco requiere intercambio de tráfico, interconexión ni VPN entre redes de clústeres.
- Permite que los clústeres existan en múltiples entornos. Esto significa que los clústeres pueden existir en Google Cloud y en centros de datos locales en los que los operadores no tengan control sobre las herramientas de redes o las direcciones IP, pero necesiten conectarse de forma segura a microservicios que se ejecutan en clústeres de Kubernetes.
Ten en cuenta que, incluso a través de clústeres, puedes ayudar a proteger la comunicación de servicio a servicio entre clústeres mediante el uso de conexiones mutuas de TLS (mTLS). Estas conexiones ayudan a evitar ataques de intermediarios mediante la verificación de los certificados válidos emitidos por Citadel.
Puedes usar direcciones IP privadas para comunicarte entre clústeres. Sin embargo, este enfoque requiere una consideración adicional de diseño de herramientas de redes. Por ejemplo, podrías incluir un direccionamiento IP que no se superponga entre todos los clústeres que participan en la malla de varios clústeres. También podrías garantizar que todos los pods puedan comunicarse a través del espacio de direcciones privado (RFC 1918), lo que significa reglas de firewall adecuadas dentro de una VPC global de Google Cloud, o dentro de una interconexión o VPN si te conectas a redes ajenas a Google Cloud. Para este instructivo, configurarás la arquitectura que se centra en la comunicación segura de servicio a servicio a través de la Internet pública, lo que te brinda una mayor flexibilidad de herramientas de redes.
En Cloud Shell, crea las VPC:
gcloud compute networks create vpc-west --subnet-mode=auto gcloud compute networks create vpc-central --subnet-mode=auto
Establece la variable
KUBECONFIG
a fin de usar un nuevo archivokubeconfig
para este instructivo:export KUBECONFIG=${WORKDIR}/istio-kubeconfig
Crea dos clústeres de GKE, uno llamado
west
en la zonaus-west2-a
en la redvpc-west
, y otro llamadocentral
en la zonaus-central1-a
en la redvpc-central
:gcloud container clusters create west --zone us-west2-a \ --machine-type "e2-standard-2" --disk-size "100" \ --scopes "https://www.googleapis.com/auth/compute",\ "https://www.googleapis.com/auth/devstorage.read_only",\ "https://www.googleapis.com/auth/logging.write",\ "https://www.googleapis.com/auth/monitoring",\ "https://www.googleapis.com/auth/servicecontrol",\ "https://www.googleapis.com/auth/service.management.readonly",\ "https://www.googleapis.com/auth/trace.append" \ --num-nodes "4" --network "vpc-west" --async gcloud container clusters create central --zone us-central1-a \ --machine-type "e2-standard-2" --disk-size "100" \ --scopes "https://www.googleapis.com/auth/compute",\ "https://www.googleapis.com/auth/devstorage.read_only",\ "https://www.googleapis.com/auth/logging.write",\ "https://www.googleapis.com/auth/monitoring",\ "https://www.googleapis.com/auth/servicecontrol",\ "https://www.googleapis.com/auth/service.management.readonly",\ "https://www.googleapis.com/auth/trace.append" \ --num-nodes "4" --network "vpc-central"
Espera unos minutos hasta que se creen ambos clústeres. Verifica que el estado de cada clúster sea
RUNNING
:gcloud container clusters list
El resultado es similar al siguiente:
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS central us-central1-a 1.17.14-gke.1600 104.197.127.140 e2-standard-2 1.17.14-gke.1600 4 RUNNING west us-west2-a 1.17.14-gke.1600 34.94.217.4 e2-standard-2 1.17.14-gke.1600 4 RUNNING
Conéctate a ambos clústeres para generar entradas en el archivo
kubeconfig
:export PROJECT_ID=$(gcloud info --format='value(config.project)') gcloud container clusters get-credentials west --zone us-west2-a --project ${PROJECT_ID} gcloud container clusters get-credentials central --zone us-central1-a --project ${PROJECT_ID}
Crea un usuario y un contexto para cada clúster a fin de usar el archivo
kubeconfig
para crear la autenticación a los clústeres. Después de crear el archivokubeconfig
, puedes cambiar el contexto entre clústeres con rapidez.Usa
kubectx
a fin de cambiar el nombre de los contextos para mayor comodidad:kubectx west=gke_${PROJECT_ID}_us-west2-a_west kubectx central=gke_${PROJECT_ID}_us-central1-a_central
Otorga a tu usuario de Google la función
cluster-admin
para ambos clústeres:kubectl create clusterrolebinding user-admin-binding \ --clusterrole=cluster-admin --user=$(gcloud config get-value account) \ --context west kubectl create clusterrolebinding user-admin-binding \ --clusterrole=cluster-admin --user=$(gcloud config get-value account) \ --context central
Esta función te permite realizar tareas administrativas en estos clústeres.
Configura certificados en ambos clústeres
En Istio, Citadel es la autoridad certificadora (CA) de Istio y es responsable de firmar y distribuir certificados a todos los proxies Envoy (proxies de sidecar de cargas de trabajo y proxies de puerta de enlace de entrada, este-oeste y salida) en la malla de servicios. De forma predeterminada, Citadel genera un certificado raíz autofirmado y una clave, y los usa para firmar los certificados de carga de trabajo. Citadel también puede usar un certificado y una clave especificados por el operador para firmar certificados de carga de trabajo. En este instructivo, los clústeres west
y central
mantienen mallas de servicio separadas con servicios de Citadel independientes que firman sus respectivas cargas de trabajo.
Si deseas establecer confianza entre microservicios a través de los clústeres, ambos certificados de firma (CA) de Citadel deben estar firmados por una autoridad certificada raíz común (CA raíz). Además, las cargas de trabajo necesitan un archivo de cadena de certificado para verificar la cadena de confianza de todas las CA intermedias entre el certificado de firma de Citadel y la CA raíz. Esta configuración se realiza con un secreto en el clúster de Kubernetes. Los archivos de certificado se proporcionan como parte de este instructivo. En tu entorno de producción, puedes usar certificados generados por tus sistemas PKI o tu equipo de seguridad (por ejemplo, puedes actuar como tu propia CA). Citadel usa el secreto creado y tiene las siguientes propiedades:
- El secreto debe llamarse
cacert
. - El secreto se crea a partir de cuatro archivos de certificado (proporcionados por el código de Istio para este instructivo), que se deben nombrar de la siguiente manera:
root-cert.pem
contiene la CA raíz. Este archivo es el mismo para los servicios de Citadel en los clústereswest
ycentral
. Ambos certificados de Citadel están firmados por esta CA raíz.ca-cert.pem
yca-key.pem
son el certificado de firma (CA) y la clave privada para el servicio de Citadel. Ambos certificados de Citadel deben estar firmados por la CA raíz (root-cert.pem
).ca-cert.pem
se usa para firmar las cargas de trabajo dentro de cada clúster.cert-chain.pem
es la cadena de confianza entre los certificados de carga de trabajo y la CA raíz. En este ejemplo,cert-chain.pem
contiene solo el certificadoca-cert.pem
; por lo tanto, estos archivos son idénticos. Este archivo establece confianza entre microservicios que se ejecutan en clústeres.
La instalación predeterminada de Citadel establece opciones de línea de comandos para configurar la ubicación de certificados y claves en función del secreto y los nombres de archivo predefinidos que se usan en el comando, es decir, un secreto llamado cacert
, un certificado raíz en un archivo llamado root-cert.pem
, una clave de Citadel en ca-key.pem
, y así sucesivamente.
En Cloud Shell, descarga Istio:
cd ${WORKDIR} export ISTIO_VERSION=1.9.0 curl -L https://istio.io/downloadIstio | ISTIO_VERSION=${ISTIO_VERSION} TARGET_ARCH=x86_64 sh - cd istio-${ISTIO_VERSION} export PATH=$PWD/bin:$PATH
En Cloud Shell, crea el secreto con los archivos de certificado apropiados:
for cluster in $(kubectx) do kubectl --context $cluster create namespace istio-system kubectl --context $cluster create secret generic cacerts -n istio-system \ --from-file=${WORKDIR}/istio-${ISTIO_VERSION}/samples/certs/ca-cert.pem \ --from-file=${WORKDIR}/istio-${ISTIO_VERSION}/samples/certs/ca-key.pem \ --from-file=${WORKDIR}/istio-${ISTIO_VERSION}/samples/certs/root-cert.pem \ --from-file=${WORKDIR}/istio-${ISTIO_VERSION}/samples/certs/cert-chain.pem; done
Instala Istio
En esta sección, instalarás Istio en los clústeres west
y central
.
En Cloud Shell, configurarás la red predeterminada para el clúster
west
.kubectl --context=west label namespace istio-system topology.istio.io/network=network1
Crea la configuración de Istio para el clúster
west
con una puerta de enlace dedicada al este-oeste:cd ${WORKDIR} cat <<EOF > istio-west.yaml apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: values: global: meshID: mesh1 multiCluster: clusterName: west network: network1 components: ingressGateways: - name: istio-eastwestgateway label: istio: eastwestgateway app: istio-eastwestgateway topology.istio.io/network: network1 enabled: true k8s: env: # sni-dnat adds the clusters required for AUTO_PASSTHROUGH mode - name: ISTIO_META_ROUTER_MODE value: "sni-dnat" # traffic through this gateway should be routed inside the network - name: ISTIO_META_REQUESTED_NETWORK_VIEW value: network1 service: ports: - name: status-port port: 15021 targetPort: 15021 - name: tls port: 15443 targetPort: 15443 - name: tls-istiod port: 15012 targetPort: 15012 - name: tls-webhook port: 15017 targetPort: 15017 EOF
Aplica la configuración al clúster
west
:istioctl install --context=west -f istio-west.yaml
Presiona
y
para continuar.Inspecciona las implementaciones en el espacio de nombres
istio-system
.kubectl --context=west -n istio-system get deployments
El resultado luce de la siguiente manera:
NAME READY UP-TO-DATE AVAILABLE AGE istio-eastwestgateway 1/1 1 1 2m11s istio-ingressgateway 1/1 1 1 8m43s istiod 1/1 1 1 8m56s
Espera a que se le asigne una dirección IP externa a la puerta de enlace este-oeste:
kubectl --context=west get svc istio-eastwestgateway -n istio-system
El resultado luce de la siguiente manera:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-eastwestgateway LoadBalancer 10.3.241.43 34.94.214.249 15021:30369/TCP,15443:30988/TCP,15012:31358/TCP,15017:32625/TCP 3m42s
Como los clústeres se encuentran en redes separadas, deberás exponer todos los servicios (*.local) en la puerta de enlace este-oeste en ambos clústeres. Dado que la puerta de enlace este-oeste es pública en Internet, solo los servicios que tengan un certificado mTLS y un ID de carga de trabajo de confianza podrán acceder a los servicios subyacentes, como si estuvieran en la misma red.
kubectl --context=west apply -n istio-system -f \ ${WORKDIR}/istio-${ISTIO_VERSION}/samples/multicluster/expose-services.yaml
Configura la red predeterminada para el clúster
central
.kubectl --context=central label namespace istio-system topology.istio.io/network=network2
Crea la configuración de Istio para el clúster
central
con una puerta de enlace dedicada al este-oeste:cd ${WORKDIR} cat <<EOF > istio-central.yaml apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: values: global: meshID: mesh1 multiCluster: clusterName: central network: network2 components: ingressGateways: - name: istio-eastwestgateway label: istio: eastwestgateway app: istio-eastwestgateway topology.istio.io/network: network2 enabled: true k8s: env: # sni-dnat adds the clusters required for AUTO_PASSTHROUGH mode - name: ISTIO_META_ROUTER_MODE value: "sni-dnat" # traffic through this gateway should be routed inside the network - name: ISTIO_META_REQUESTED_NETWORK_VIEW value: network2 service: ports: - name: status-port port: 15021 targetPort: 15021 - name: tls port: 15443 targetPort: 15443 - name: tls-istiod port: 15012 targetPort: 15012 - name: tls-webhook port: 15017 targetPort: 15017 EOF
Aplica la configuración al clúster
central
:istioctl install --context=central -f istio-central.yaml
Presiona
y
para continuar.Inspecciona las implementaciones en el espacio de nombres
istio-system
.kubectl --context=central -n istio-system get deployments
El resultado luce de la siguiente manera:
NAME READY UP-TO-DATE AVAILABLE AGE istio-eastwestgateway 1/1 1 1 2m11s istio-ingressgateway 1/1 1 1 8m43s istiod 1/1 1 1 8m56s
Espera a que se le asigne una dirección IP externa a la puerta de enlace este-oeste:
kubectl --context=central get svc istio-eastwestgateway -n istio-system
El resultado luce de la siguiente manera:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-eastwestgateway LoadBalancer 10.3.250.201 35.232.125.62 15021:30810/TCP,15443:31125/TCP,15012:30519/TCP,15017:30743/TCP 37s
Expón todos los servicios (*.local) en la puerta de enlace este-oeste en el clúster central.
kubectl --context=central apply -n istio-system -f \ ${WORKDIR}/istio-${ISTIO_VERSION}/samples/multicluster/expose-services.yaml
Habilita la detección de extremos
Instala un secreto remoto en el cluster
west
que proporcione acceso al servidor de API del clustercentral
.istioctl x create-remote-secret \ --context=central \ --name=central | \ kubectl apply -f - --context=west
Instala un secreto remoto en el cluster
central
que proporcione acceso al servidor de API del clusterwest
.istioctl x create-remote-secret \ --context=west \ --name=west | \ kubectl apply -f - --context=central
Implementa la app de Online Boutique
En esta sección, instalarás la aplicación Online Boutique en ambos clústeres. Online Boutique consta de 10 microservicios escritos en diferentes lenguajes de programación. Debes dividir estos microservicios en los clústeres central
y west
, como se muestra en la siguiente arquitectura.
Crea espacios de nombres para la app Online Boutique en ambos clústeres:
kubectl --context central create namespace online-boutique kubectl --context west create namespace online-boutique
Etiqueta los espacios de nombres para la inyección automática del proxy del archivo adicional de Istio:
kubectl --context central label namespace online-boutique istio-injection=enabled kubectl --context west label namespace online-boutique istio-injection=enabled
Implementa la app Online Bridge en los clústeres
west
ycentral
:kubectl --context central -n online-boutique apply -f $WORKDIR/istio-multi-primary/central kubectl --context west -n online-boutique apply -f $WORKDIR/istio-multi-primary/west
La app Online Boutique tarda unos minutos en poner en marcha todas las implementaciones.
Espera hasta que todas las implementaciones estén disponibles en ambos clústeres.
# In central cluster kubectl --context=central -n online-boutique wait --for=condition=available deployment emailservice --timeout=5m kubectl --context=central -n online-boutique wait --for=condition=available deployment checkoutservice --timeout=5m kubectl --context=central -n online-boutique wait --for=condition=available deployment shippingservice --timeout=5m kubectl --context=central -n online-boutique wait --for=condition=available deployment paymentservice --timeout=5m kubectl --context=central -n online-boutique wait --for=condition=available deployment adservice --timeout=5m kubectl --context=central -n online-boutique wait --for=condition=available deployment currencyservice --timeout=5m # In west cluster kubectl --context=west -n online-boutique wait --for=condition=available deployment frontend --timeout=5m kubectl --context=west -n online-boutique wait --for=condition=available deployment recommendationservice --timeout=5m kubectl --context=west -n online-boutique wait --for=condition=available deployment productcatalogservice --timeout=5m kubectl --context=west -n online-boutique wait --for=condition=available deployment cartservice --timeout=5m kubectl --context=west -n online-boutique wait --for=condition=available deployment redis-cart --timeout=5m kubectl --context=west -n online-boutique wait --for=condition=available deployment loadgenerator --timeout=5m
El resultado de todas las implementaciones se verá de la siguiente manera:
deployment.apps/frontend condition met
Accede a la aplicación de Online Boutique
Puedes acceder a la app Online Boutique desde la dirección IP pública istio-ingressgatway
desde cualquiera de los clústeres.
Obtén la dirección IP pública del servicio
istio-ingressgateway
de ambos clústeres.kubectl --context west get -n istio-system service istio-ingressgateway -o json | jq -r '.status.loadBalancer.ingress[0].ip' kubectl --context central get -n istio-system service istio-ingressgateway -o json | jq -r '.status.loadBalancer.ingress[0].ip'
En el resultado, se muestra la dirección IP externa:
Copia y pega la dirección IP de la puerta de enlace de entrada de Istio desde cualquier clúster en una pestaña del navegador web y, luego, actualiza la página. Verás la página principal de Online Boutique.
Navega por la app, explora varios productos, colócalos en tu carrito, paga, y mucho más.
Observa que la app Online Boutique es completamente funcional y se ejecuta en dos clústeres de Kubernetes en dos entornos.
Supervisa la malla de servicios
Puedes usar Kiali para supervisar y visualizar la malla de servicios. Kiali es una herramienta de observación de malla de servicios que se instala como parte de la instalación de Istio.
Implementa Prometheus y Kiali en el clúster
west
.kubectl --context west apply -f https://raw.githubusercontent.com/istio/istio/release-${ISTIO_VERSION:0:3}/samples/addons/prometheus.yaml kubectl --context west apply -f https://raw.githubusercontent.com/istio/istio/release-${ISTIO_VERSION:0:3}/samples/addons/kiali.yaml
Si la instalación de Kiali falla con errores, intente ejecutar el mismo comando nuevamente. Pueden existir algunos problemas de sincronización que se resolverán cuando el comando vuelva a ejecutarse.
Asegúrate de que los Pods de Prometheus y Kiali estén en ejecución:
kubectl --context west get pods -n istio-system
El resultado luce de la siguiente manera:
kiali-6d5c4bbb64-wpsqx 1/1 Running 0 72s prometheus-6d87d85c88-h2cwl 2/2 Running 0 92s
En Cloud Shell, expone Kiali en el clúster
west
:kubectl --context west port-forward svc/kiali 8080:20001 -n istio-system >> /dev/null &
Abre la interfaz web de Kiali en el clúster
west
. En Cloud Shell, selecciona Vista previa en la web y, luego, Vista previa en el puerto 8080.En el menú de la izquierda, selecciona Gráfico.
En la lista desplegable Seleccionar un espacio de nombres, selecciona online-boutique.
En el menú Gráfico, selecciona Service graph.
De manera opcional, desde el menú Display, selecciona Traffic Animation para ver como
loadgenerator
genera tráfico a la app.
Instalaste con éxito una aplicación dividida en varios clústeres. Los microservicios se comunican de forma segura a través de los clústeres mediante la puerta de enlace este-oeste de Istio con mTLS. Cada clúster mantiene y controla su propio plano de control de Istio, lo que evita cualquier punto único de fallo.
Limpia
Una vez que completaste el instructivo, borra los recursos que creaste en Google Cloud a fin de que no se te cobre por ellos en el futuro. En las siguientes secciones, se describe cómo borrar estos recursos.
Borra el proyecto
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Restablece kubeconfig
Restablece el archivo
kubeconfig
:unset KUBECONFIG rm istio-kubeconfig
¿Qué sigue?
- Obtén más información sobre Istio en Google Cloud.
- Consulta la página sobre la era de la malla de servicios y la función de Istio en el futuro de la nube híbrida.
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.