Instalación, migración y actualización de GKE

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

  • Si eres suscriptor de GKE Enterprise, asegúrate de habilitar la API de GKE Enterprise.

    Habilitar la API

  • 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 quieres obtener información sobre los precios de Anthos Service Mesh para usuarios no suscritos, consulta Precios.

La secuencia de comandos habilita todas las otras API de Google requeridas para ti.

Requisitos

  • El clúster de GKE debe cumplir con los siguientes requisitos:

    • 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.8.6. 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 para que el webhook se use con la incorporación automática de sidecar y funcione de manera correcta. 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.

Elige una autoridad certificada

Para las instalaciones y migraciones nuevas, puedes usar la autoridad certificada de Anthos Service Mesh (CA de Mesh) o Citadel (ahora incorporada en istiod) como autoridad certificada (CA) para emitir certificados de mutual TLS (mTLS).

Por lo general, recomendamos que uses 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.

Sin embargo, hay casos en los que podrías considerar usar Citadel, como los que se mencionan a continuación:

  • Si tienes una CA personalizada.
  • Si realizas la migración desde Istio.

    Si eliges Citadel, hay poco tiempo de inactividad porque el tráfico de mTLS no se interrumpe durante la migración. Si eliges CA de Mesh, debes programar el tiempo de inactividad para la migración, ya que la raíz de confianza cambia de Citadel a la CA de Mesh. Para completar la migración a la raíz de confianza de la CA de Mesh, debes reiniciar todos los Pods en todos los espacios de nombres. Durante este proceso, los Pods antiguos no pueden establecer conexiones mTLS con los Pods nuevos.

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. 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  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 la consola de Google Cloud.
  2. Selecciona tu proyecto de Google Cloud.
  3. Haz clic en el botón Activar Cloud Shell en la parte superior de la consola de Google Cloud.

    Google Cloud Platform Console

    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.

    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 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 ...
  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:

  2. Autentica con la CLI de gcloud:

    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.8.6 en el directorio de trabajo actual:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.8 > install_asm
    
  2. Descarga el SHA-256 del archivo en el directorio de trabajo actual:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.8.sha256 > install_asm.sha256
    
  3. 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 a install_asm. Si recibes un error que indica que --ignore-missing no existe, vuelve a ejecutar el comando anterior sin la marca --ignore-missing.

  4. Haz que la secuencia de comandos sea ejecutable:

    chmod +x install_asm
    

¿Qué sigue?