Versión 1.12

Instalación de un solo proyecto en GKE

En esta guía, se explica cómo instalar, migrar o actualizar a la versión 1.12.0 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:

Requisitos previos

En esta guía, suponemos que ya tienes lo siguiente:

Diferencias entre Anthos Service Mesh y Anthos

Anthos Service Mesh está disponible con Anthos o como un servicio independiente. Las API de Google se utilizan para determinar cómo se te factura. Para usar Anthos Service Mesh como servicio independiente, no habilites la API de Anthos 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.

  • Para los suscriptores de Anthos, asegúrate de habilitar la API de Anthos.

    Habilitar la API

  • Si no estás suscrito a Anthos, puedes instalar Anthos Service Mesh, pero ciertos elementos y funciones de la IU en Google Cloud Console solo están disponibles para los suscriptores de Anthos. Si quieres obtener información sobre lo que está disponible para suscriptores y no suscriptores, consulta las diferencias en la IU de Anthos Service Mesh y Anthos.

  • Si habilitaste la API de Anthos, pero deseas usar Anthos Service Mesh como un servicio independiente, inhabilita la API de Anthos.

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 para istio-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 se podrían basar en una versión de GKE que no es compatible con Anthos Service Mesh 1.12.0. Para obtener más información, consulta Entornos 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 nombres istio-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 Cloud Console. 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:

  1. Ve a Cloud Console.
  2. Selecciona tu proyecto de Cloud.
  3. Haz clic en el botón Activar Cloud Shell que se encuentra en la parte superior de la ventana de Cloud Console.

    Google Cloud Platform Console

    Se abrirá una sesión de Cloud Shell en un marco nuevo en la parte inferior de Cloud Console, que mostrará una ventana de la línea de comandos.

    Sesión de Cloud Shell

  4. 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 Cloud SDK 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 ...
  5. Copia el comando largo y pégalo para actualizar los componentes.

Computadora local de Linux

  1. Asegúrate de tener instaladas las siguientes herramientas:

    • El SDK de Cloud (la herramienta de línea de comandos de gcloud)
    • Las herramientas de línea de comandos estándar: awk, curl, grep, sed y tr
    • git
    • kpt
    • kubectl
    • jq
  2. Autentica con el SDK de Cloud:

    gcloud auth login
    
  3. Actualiza los componentes:

    gcloud components update
    
  4. Asegúrate de que git esté en tu ruta para que kpt 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.

  1. Descarga la versión de la secuencia de comandos que instala Anthos Service Mesh 1.12.0 en el directorio de trabajo actual:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.12 > install_asm
    
  2. Haz que la secuencia de comandos sea ejecutable:

    chmod +x install_asm
    

¿Qué sigue?