Mediante este instructivo, instalarás Anthos Service Mesh 1.9.8-asm.6 con una secuencia de comandos
proporcionada por Google, install_asm
, en un nuevo clúster de Google Kubernetes Engine (GKE). En este instructivo, se explica cómo realizar las siguientes acciones:
- Configurar tu proyecto de Google Cloud
- Crear un clúster de GKE con la cantidad mínima de CPU virtuales que requiere Anthos Service Mesh
- Instalar Anthos Service Mesh con un plano de control en el clúster
- Implementar una aplicación de ejemplo para que puedas ver los datos de telemetría en los paneles de Anthos Service Mesh en la consola de Google Cloud.
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 esta guía de inicio rápido, puedes borrar el clúster 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 Kubernetes Engine API.
-
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 Kubernetes Engine API.
- Toma nota de tu ID del proyecto.
Aunque la Anthos Service Mesh requiere otras API, la secuencia de comandos install_asm
las habilita para ti. Para mantener bajos los costos de facturación, la secuencia de comandos install_asm
no habilita la API de GKE Enterprise. Existen algunas diferencias menores en la consola de Google Cloud cuando la API de GKE Enterprise está habilitada. Para obtener más información sobre estas diferencias, consulta Diferencias de la IU de GKE Enterprise y Anthos Service Mesh.
Instala las herramientas requeridas
Puedes ejecutar la secuencia de comandos en Cloud Shell o en tu máquina local que ejecuta Linux. Cloud Shell instala previamente todas las herramientas necesarias. Ten en cuenta que macOS no es compatible porque viene con una versión anterior de Bash.
Cloud Shell
Cloud Shell aprovisiona una máquina virtual (VM) g1-small de Compute Engine que ejecuta un sistema operativo Linux basado en Debian. Las ventajas de usar Cloud Shell son las siguientes:
Cloud Shell incluye
gcloud
,kubectl
,kpt
y otras herramientas de línea de comandos que necesitas.El directorio $HOME de Cloud Shell tiene 5 GB de espacio de almacenamiento persistente.
Puedes elegir entre los editores de texto:
El editor de código, al que puedes acceder desde edit en la parte superior de la ventana de Cloud Shell
Emacs, Vim o Nano, a los que puedes acceder desde la línea de comandos en Cloud Shell.
Para usar Cloud Shell, sigue estos pasos:
- Ve a la consola de Google Cloud.
- Selecciona tu proyecto de Google Cloud.
Haz clic en el botón Activar Cloud Shell en la parte superior de la consola de Google Cloud.
Se abrirá una sesión de Cloud Shell en un marco nuevo en la parte inferior de la consola de Google Cloud, que mostrará una ventana de la línea de comandos.
Computadora local de Linux
Asegúrate de tener instaladas las siguientes herramientas:
- La CLI de Google Cloud
- Las herramientas de línea de comandos estándar:
awk
,curl
,grep
,sed
,sha256sum
ytr
- git
- kpt
- kubectl
- jq
Autentica con Google Cloud CLI
gcloud auth login
Actualiza los componentes:
gcloud components update
Asegúrate de que
git
esté en tu ruta para quekpt
pueda encontrarlo.
Cree un clúster de GKE
Ejecuta el siguiente comando para crear el clúster con la cantidad mínima de CPU virtuales que requiere Anthos Service Mesh. En el comando, reemplaza los marcadores de posición por la siguiente información:
- CLUSTER_NAME: es el nombre de tu clúster. El nombre solo puede contener caracteres alfanuméricos en minúsculas y
-
, debe comenzar con una letra y terminar con un carácter alfanumérico, además, no debe tener más de 40 caracteres. - PROJECT_ID: es el ID del proyecto en el que se creará el clúster.
- CLUSTER_LOCATION es la zona del clúster, como
us-central1-a
.
gcloud container clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION \ --machine-type=e2-standard-4 \ --num-nodes=2 \ --workload-pool=PROJECT_ID.svc.id.goog
- CLUSTER_NAME: es el nombre de tu clúster. El nombre solo puede contener caracteres alfanuméricos en minúsculas y
Obtén credenciales de autenticación para interactuar con el clúster. En este comando, también se establece el contexto actual de
kubectl
en el clúster.gcloud container clusters get-credentials CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Descarga la secuencia de comandos de instalación de ASM
Descarga la versión de la secuencia de comandos que instala Anthos Service Mesh 1.9.8 en el directorio de trabajo actual:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9 > install_asm
Descarga el SHA-256 del archivo en el directorio de trabajo actual:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9.sha256 > install_asm.sha256
Con ambos archivos en el mismo directorio, verifica la descarga:
sha256sum -c --ignore-missing install_asm.sha256
Si la verificación se realiza de forma correcta, el comando genera este resultado:
install_asm: OK
.Para mayor compatibilidad, el archivo
install_asm.sha256
incluye la suma de verificación dos veces a fin de permitir que cualquier versión de la secuencia de comandos cambie su nombre ainstall_asm
. Si recibes un error que indica que--ignore-missing
no existe, vuelve a ejecutar el comando anterior sin la marca--ignore-missing
.Haz que la secuencia de comandos sea ejecutable:
chmod +x install_asm
Instale Anthos Service Mesh
Ejecuta la secuencia de comandos install_asm
con las siguientes opciones para instalar Anthos Service Mesh en el clúster que creaste anteriormente. Si no cierras esta página desde que creaste el clúster, los marcadores de posición tienen los valores que ingresaste para el comando gcloud container clusters create
.
./install_asm \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--mode install \
--output_dir ./asm-downloads \
--enable_all
La secuencia de comandos install_asm
puede tardar varios minutos en completarse. La secuencia de comandos genera mensajes informativos para que puedas seguir su progreso.
El comando ejecuta install_asm
con las siguientes opciones:
--mode install
: ejecuta la secuencia de comandos para una instalación nueva y habilita la autoridad certificadora de Anthos Service Mesh (CA de Mesh), que es la autoridad certificada predeterminada (CA) para las instalaciones.--output_dir ./asm-downloads
: es el directorio en el que la secuencia de comandos descarga los archivos desde el repositorioanthos-service-mesh
, y desde el que descarga y extrae el archivo de instalación de Anthos Service Mesh, que contieneistioctl
, muestras y manifiestos.--enable-registration
: permite que la secuencia de comandos registre el clúster en el proyecto en el que este se encuentra.--enable_all
: permite que la secuencia de comandos habilite las API de Google obligatorias, configure los permisos de Identity and Access Management y realice las actualizaciones necesarias en tu clúster, que incluye habilitar Workload Identity de GKE.
Implementa la muestra de Online Boutique
Descarga la muestra mediante
kpt
:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Crea un espacio de nombres para la aplicación:
kubectl create namespace demo
Habilita la inserción automática del sidecar (inserción automática). Usa el siguiente comando para ubicar la etiqueta en el servicio
istiod
, que contiene el valor de la etiqueta de revisión que se usará en pasos posteriores.kubectl -n istio-system get pods -l app=istiod --show-labels
El resultado es similar al siguiente:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-198-6-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586 istiod-asm-198-6-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586
En el resultado, en la columna
LABELS
, observa el valor de la etiqueta de revisiónistiod
, que está después del prefijoistio.io/rev=
. En este ejemplo, el valor esasm-198-6
.Aplica la etiqueta de revisión a los espacios de nombres. En el siguiente comando, REVISION es el valor de la etiqueta de revisión
istiod
que anotaste en el paso anterior.kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
Puedes ignorar el mensaje
"istio-injection not found"
en el resultado. Esto significa que el espacio de nombres no tenía la etiquetaistio-injection
, que debería aparecer en las nuevas instalaciones de Anthos Service Mesh o en implementaciones nuevas. Debido a que la inserción automática falla si un espacio de nombres tiene tanto laistio-injection
como la etiqueta de revisión, todos los comandoskubectl label
de la documentación de Anthos Service Mesh incluyen la acción de quitar la etiquetaistio-injection
.Implementa la muestra en el clúster:
kubectl apply -n demo -f online-boutique
Obtén la dirección IP externa de la puerta de enlace de entrada de la siguiente forma:
kubectl get service istio-ingressgateway -n istio-system
El resultado es similar al siguiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE istio-ingressgateway LoadBalancer 10.19.247.233 35.239.7.64 80:31380/TCP,443:31390/TCP,31400:31400/TCP 27m
En este ejemplo, la dirección IP de la puerta de enlace de entrada es
35.239.7.64
.Visita la aplicación en tu navegador para confirmar la instalación:
http://EXTERNAL_IP/
Consulta los paneles de la malla de servicios
Después de implementar las cargas de trabajo en el clúster con los proxies de sidecar incorporados, puedes explorar las páginas de Anthos Service Mesh en la consola de Google Cloud para ver todas las funciones de observabilidad que ofrece Anthos Service Mesh. Ten en cuenta que los datos de telemetría toman uno o dos minutos en aparecer en la consola de Google Cloud después de implementar las cargas de trabajo.
El acceso a Anthos Service Mesh en la consola de Google Cloud se controla mediante la Administración de identidades y accesos (IAM). Para acceder a las páginas de Anthos Service Mesh, el propietario del proyecto debe otorgar a los usuarios la función de editor o visualizador del proyecto, o los roles más restrictivas que se describen en Controla el acceso a Anthos Service Mesh en la consola de Google Cloud.
En la consola de Google Cloud, ve a Anthos Service Mesh.
Selecciona el proyecto de Google Cloud de la lista desplegable de la barra de menú.
Si tienes más de una malla de servicios, selecciona la malla en la lista desplegable Malla de servicios.
Para obtener más información, consulta Explora Anthos Service Mesh en la consola de Google Cloud.
Limpia
Antes de limpiar, si te interesa obtener más información sobre la TLS mutua, consulta Anthos Service Mesh con el ejemplo mTLS.
Si deseas evitar cargos adicionales, borra el clúster:
gcloud container clusters delete CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Si deseas conservar el clúster y quitar la muestra de Online Retail, realiza la siguiente acción:
kubectl delete namespaces demo
¿Qué sigue?
Conoce más sobre:
- Requisitos del clúster
- Revisa las opciones y marcas de la secuencia de comandos de
install_asm
. - Implementa servicios
- Los comandos de
gcloud
que se usan en este instructivo