En esta guía, se explica cómo instalar, migrar o actualizar a la versión 1.11.8 de Anthos Service Mesh para una malla que contiene uno o más clústeres de GKE que se encuentran en el mismo proyecto. Debes usar una secuencia de comandos proporcionada por Google, install_asm
, que configura tu proyecto y tu clúster y, luego, instala Anthos Service Mesh con istioctl install
.
Puedes usar esta guía y la secuencia de comandos para los siguientes casos de uso de integración:
Actualiza desde cualquier versión y versión de parche 1.7 o posterior a Anthos Service Mesh 1.11.8. No se admiten las actualizaciones a versiones anteriores.
Migra de Istio de código abierto a Anthos Service Mesh. Si tienes Istio 1.6 o una versión anterior, primero debes actualizar antes de migrar a Anthos Service Mesh. Si tienes Istio 1.7 o una versión posterior, es posible que puedas usar Migra de Istio 1.7 o posterior a la CA de Mesh y Anthos Service Mesh. Si necesitas realizar una actualización, ve a la página Actualiza Istio en la versión de Istio aplicable. Ten en cuenta que no se prueba ni se recomienda de forma oficial la actualización de Istio en más de una versión secundaria (por ejemplo, de 1.6.x a 1.8.x) en un paso. Asegúrate de revisar la sección Prepárate para la migración desde Istio a fin de planificar tu migración.
Requisitos previos
En esta guía, suponemos que ya tienes lo siguiente:
- Un proyecto de Google Cloud
- Una cuenta de facturación de Cloud
- Un clúster de GKE que cumple con los requisitos.
Diferencias entre Anthos Service Mesh y Anthos
Anthos Service Mesh está disponible con GKE Enterprise o como servicio independiente. Las API de Google se utilizan para determinar cómo se te factura. Para usar Anthos Service Mesh como un servicio independiente, no habilites la API de GKE Enterprise en tu proyecto. La secuencia de comandos habilita todas las otras API de Google requeridas para ti. Para obtener información sobre los precios de Anthos Service Mesh, consulta la página Precios.
Si eres suscriptor de GKE Enterprise, asegúrate de habilitar la API de GKE Enterprise.
Si no eres suscriptor de GKE Enterprise, aún puedes instalar Anthos Service Mesh, pero ciertos elementos y funciones de la IU en la consola de Google Cloud solo están disponibles para los suscriptores de GKE Enterprise. Si deseas obtener información sobre lo que está disponible para suscriptores y no suscriptores, consulta Diferencias entre la IU de GKE Enterprise y Anthos Service Mesh.
Si habilitaste la API de GKE Enterprise, pero deseas usar Anthos Service Mesh como servicio independiente, inhabilita la API de GKE Enterprise.
Requisitos
El clúster de GKE debe cumplir con los siguientes requisitos:
El clúster de GKE debe ser estándar, ya que los clústeres de Autopilot tienen limitaciones de webhooks que no permiten el
MutatingWebhookConfiguration
paraistio-sidecar-injector
.Un tipo de máquina que tenga, al menos, 4 CPU virtuales, como
e2-standard-4
. Si el tipo de máquina del clúster no tiene al menos 4 CPU virtuales, cámbialo como se describe en Migra cargas de trabajo a diferentes tipos de máquina.La cantidad mínima de nodos depende del tipo de máquina. Anthos Service Mesh requiere al menos 8 CPU virtuales. Si el tipo de máquina tiene 4 CPU virtuales, tu clúster debe tener al menos 2 nodos. Si el tipo de máquina tiene 8 CPU virtuales, el clúster solo necesita 1 nodo. Si necesitas agregar nodos, consulta Cambia el tamaño de un clúster.
De forma predeterminada, la secuencia de comandos habilita Workload Identity en tu clúster. Workload Identity es el método recomendado para llamar a las API de Google. Habilitar Workload Identity cambia la forma en que se protegen las llamadas de tus cargas de trabajo a las API de Google, como se describe en Limitaciones de Workload Identity.
Si vas a realizar una instalación nueva y planeas usar la autoridad certificadora de Anthos ServiceMesh (CA de Mesh), puedes usar el grupo de identidad de carga de trabajo de la flota como alternativa a las cargas de trabajo de GKE. Para usar la CA de malla con el grupo de identidad de la carga de trabajo de la flota (vista previa), debes seguir los pasos de Registra un clúster antes de ejecutar la secuencia de comandos o incluir la marca
--enable_registration
cuando ejecutes la secuencia de comandos para permitir que la secuencia de comandos registre el clúster en el proyecto en el que se encuentra el clúster. Para ver un ejemplo de ejecución de la secuencia de comandos, consulta Habilita la CA de Mesh con el grupo de identidad de la carga de identidad de la flota.Aunque es una acción opcional, se recomienda inscribir el clúster en un canal de versiones. Te recomendamos que te inscribas en el canal de versiones regular, ya que otros podrían basarse en una versión de GKE que no es compatible con Anthos Service Mesh 1.11.8. Para obtener más información, consulta Plataformas compatibles. Sigue las instrucciones en Inscribe un clúster existente en un canal de versiones si tienes una versión estática de GKE.
Para que se los incluya en la malla de servicios, los puertos de servicio deben tener un nombre, y ese nombre debe incluir el protocolo del puerto en la siguiente sintaxis:
name: protocol[-suffix]
, en la que los corchetes indican un sufijo opcional que debe comenzar con un guion. Para obtener más información, consulta Asigna nombres a puertos de servicio.Si instalas Anthos Service Mesh en un clúster privado, debes abrir el puerto 15017 en el firewall a fin de que los webhooks que se usan para la inyección automática de sidecar y la validación de configuración funcionen. Para obtener más información, consulta Abre un puerto en un clúster privado.
Si creaste un perímetro de servicio en tu organización, es posible que debas agregar el servicio de CA de Mesh al perímetro. Para obtener más información, consulta Agrega la CA de Mesh a un perímetro de servicio.
Para las migraciones,
istiod
debe instalarse en el espacio de nombresistio-system
.Un proyecto de Google Cloud solo puede tener una malla asociada.
Si deseas cambiar los límites de recursos predeterminados para el contenedor del archivo adicional
istio-proxy
, los valores nuevos deben ser mayores que los valores predeterminados a fin de evitar eventos de memoria (OOM).Para las cargas de trabajo de Windows Server, no se admite Istio. Si tu clúster tiene grupos de nodos de Linux y Windows Server, aún puedes instalar Anthos Service Mesh y usarlo en tus cargas de trabajo de Linux.
Personaliza el plano de control
Las funciones que son compatibles con Anthos Service Mesh varían entre plataformas. Te recomendamos que revises las Funciones admitidas para saber cuáles son compatibles con GKE en Google Cloud. Algunas funciones están habilitadas de forma predeterminada, y otras pueden habilitarlas de forma opcional mediante la creación de un archivo de superposición IstioOperator
.
Cuando ejecutas la secuencia de comandos install_asm
, puedes especificar la opción --custom_overlay
con el archivo de superposición.
Elige una autoridad certificada
Para las instalaciones y las migraciones nuevas desde Istio, puedes usar la autoridad certificadora de Anthos Service Mesh (CA de Mesh) oCitadel de Istio como autoridad certificadora (CA) para la emisión de certificados de TLS mutua (mTLS).
A menos que necesites una CA personalizada, como HashiCorp Vault, te recomendamos que uses la CA de Mesh por los siguientes motivos:
- La CA de Mesh es un servicio altamente confiable y escalable que está optimizado para cargas de trabajo escaladas de forma dinámica en Google Cloud.
- Con la CA de Mesh, Google administra la seguridad y la disponibilidad del backend de CA.
- La CA de Mesh te permite tener una sola raíz de confianza entre clústeres.
En las instalaciones nuevas de Anthos Service Mesh, la secuencia de comandos habilita la CA de Mesh de forma predeterminada.
Si migras desde Istio, puedes elegir migrar a la CA de Mesh o seguir usando la CA de Istio. La migración a la CA de Mesh desde la CA de Istio requiere la migración de la raíz de confianza. Cuando realizas la migración a la CA de Mesh, tienes las siguientes opciones:
Programa el tiempo de inactividad para la migración. Operativamente, esta es la opción más sencilla, pero debido a que el tráfico de mTLS se interrumpe durante la migración, debes programar el tiempo de inactividad. Para ver un ejemplo del uso de la secuencia de comandos en este caso, consulta Migra a la CA de Mesh con tiempo de inactividad.
Distribuye la nueva raíz de confianza y, luego, migra a la CA de Mesh. Con este enfoque, el tráfico de mTLS no se interrumpe, por lo que no debes tener que programar el tiempo de inactividad, pero el proceso de migración tiene muchos más pasos. Para obtener más información, consulta Migra a la CA de Mesh.
Si eliges seguir usando la CA de Istio cuando migras a Anthos Service Mesh, el tráfico de mTLS no se interrumpe porque la CA raíz no se cambia. Aunque esta ruta de migración no es perjudicial para las cargas de trabajo existentes, solo puedes usar el plano de control en el clúster. El plano de control administrado de Google requiere la CA de Mesh.
En los certificados de CA de Mesh, se incluyen los siguientes datos sobre los servicios de tu aplicación:
- El ID del proyecto de Google Cloud
- El espacio de nombres de GKE
- El nombre de la cuenta de servicio de GKE
Registra tu clúster
Debes registrar tu clúster con la flota para obtener acceso a la interfaz de usuario unificada en la consola de Google Cloud. Una flota proporciona una forma unificada de ver y administrar los clústeres y sus cargas de trabajo, incluidos los clústeres fuera de Google Cloud.
Puedes seguir los pasos en Registra un clúster o incluir la marca --enable_registration
cuando ejecutes la secuencia de comandos para permitir que la secuencia de comandos registre el clúster en el proyecto que el clúster está en uso.
Instala las herramientas necesarias
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.
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 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.
Actualiza los componentes:
gcloud components update
El comando responderá con un resultado similar al siguiente:
ERROR: (gcloud.components.update) You cannot perform this action because the gcloud CLI component manager is disabled for this installation. You can run the following command to achieve the same result for this installation: sudo apt-get update && sudo apt-get --only-upgrade install ...
Copia el comando largo y pégalo para actualizar los componentes.
Computadora local de Linux
Asegúrate de tener instaladas las siguientes herramientas:
- Google Cloud CLI
- Las herramientas de línea de comandos estándar:
awk
,curl
,grep
,sed
ytr
- git
- kpt
- kubectl
- jq
Autentica con la CLI de gcloud:
gcloud auth login
Actualiza los componentes:
gcloud components update
Asegúrate de que
git
esté en tu ruta para quekpt
pueda encontrarlo.
Descarga la secuencia de comandos
En esta sección, se describe cómo descargar la secuencia de comandos, configurar los parámetros necesarios y opcionales, y ejecutar la secuencia de comandos. Para obtener una explicación detallada de lo que hace la secuencia de comandos, consulta Información sobre la secuencia de comandos.
Descarga la versión de la secuencia de comandos que instala Anthos Service Mesh 1.11.8 en el directorio de trabajo actual:
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.11 > install_asm
Haz que la secuencia de comandos sea ejecutable:
chmod +x install_asm
¿Qué sigue?
- Instalaciones nuevas de Anthos Service Mesh
- Actualiza Anthos Service Mesh a la versión más reciente
- Migrar desde Istio
- Reinstalar la misma versión
- Referencia