Versión 1.9

Configuración para la instalación de Anthos Service Mesh en GKE

En esta página, se explican los requisitos de instalación de Anthos Service Meshy, y la configuración de tu proyecto de Cloud y clústeres de Google Kubernetes Engine (GKE) para una malla que contiene clústeres que están en el mismo proyecto. Cuando usas la secuencia de comandos proporcionada por Google, install_asm, la secuencia de comandos puede configurar tu proyecto y tu clúster si incluyes la marca --enable_all o las marcas de habilitación más detalladas. Si prefieres realizar la configuración tú mismo en lugar de que install_asm haga los cambios, sigue los pasos de esta página. Si ya tienes instalada una versión anterior de Anthos Service Mesh, no es necesario que realices ningún cambio en tu proyecto o clúster antes de usar install_asm para actualizar a la versión más reciente de Anthos Service Mesh.

Antes de comenzar

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

Requisitos

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

    • Su tipo de máquina debe tener, al menos, cuatro CPU virtuales, como e2-standard-4. Si el tipo de máquina del clúster no tiene al menos cuatro 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 ocho CPU virtuales. Si el tipo de máquina tiene cuatro CPU virtuales, el clúster debe tener al menos dos nodos. Si el tipo de máquina tiene ocho CPU virtuales, el clúster solo necesita un nodo. Si necesitas agregar nodos, consulta Cambia el tamaño de un clúster.

    • Para preparar tu clúster antes de instalar Anthos Service Mesh, habilita Workload Identity. 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.

    • De manera opcional, puedes 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.9.2. 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.

  • Un proyecto de Google Cloud solo puede tener una malla asociada.

Cuando ejecutas install_asm, valida que tu clúster cumpla con el tipo de máquina mínimo requerido y la cantidad de nodos.

Configura el proyecto

  1. Obtén el ID del proyecto y el número del proyecto en el que se creó el clúster.

    gcloud

    Ejecuta el comando siguiente:

    gcloud projects list
    

    Console

    1. Ve a la página Panel en Cloud Console.

      Ir a la página Panel

    2. Haz clic en la lista desplegable en la parte superior de la página. En la ventana Seleccionar una opción que aparece, elige tu proyecto.

      El ID y el número del proyecto se muestran en la tarjeta de Información del proyecto del panel del proyecto:

  2. Crea las siguientes variables de entorno:

    • Configura el grupo de carga de trabajo con el ID del proyecto:

      export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
      
    • Configure el ID de malla con el número de proyecto:

      export MESH_ID="proj-PROJECT_NUMBER"
      
  3. Configura las funciones de administración de identidades y accesos (IAM) requeridas. Si eres el propietario del proyecto, tienes todos los permisos necesarios para completar la instalación. Si no eres un propietario del proyecto, necesitas que alguien te otorgue las siguientes funciones específicas de IAM. En el siguiente comando, reemplaza PROJECT_ID por el ID del proyecto del paso anterior y GCP_EMAIL_ADDRESS por la cuenta que usas para acceder a Google Cloud.

    ROLES=(
    'roles/servicemanagement.admin' \
    'roles/serviceusage.serviceUsageAdmin' \
    'roles/meshconfig.admin' \
    'roles/compute.admin' \
    'roles/container.admin' \
    'roles/resourcemanager.projectIamAdmin' \
    'roles/iam.serviceAccountAdmin' \
    'roles/iam.serviceAccountKeyAdmin' \
    'roles/gkehub.admin')
    for role in "${ROLES[@]}"
    do
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "user:GCP_EMAIL_ADDRESS" \
        --role="$role"
    done
    

    Si incluyes las marcas --enable_all o --enable_gcp_iam_roles cuando ejecutas install_asm, se configuran las funciones de IAM necesarias para ti.

  4. Habilita las siguientes API de Google:

    gcloud services enable \
        --project=${PROJECT_ID} \
        container.googleapis.com \
        compute.googleapis.com \
        monitoring.googleapis.com \
        logging.googleapis.com \
        cloudtrace.googleapis.com \
        meshca.googleapis.com \
        meshtelemetry.googleapis.com \
        meshconfig.googleapis.com \
        iamcredentials.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        cloudresourcemanager.googleapis.com \
        stackdriver.googleapis.com

    Habilitar las API puede tomar un minuto o más en completarse. Cuando las API están habilitadas, ves un resultado similar al siguiente:

    Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished
    successfully.
    

    Si incluyes la marca --enable_all o --enable_apis cuando ejecutas install_asm, se habilitarán las API necesarias.

Configura el clúster

Si incluyes la marca --enable_all o una de las marcas de habilitación más detalladas, la secuencia de comandos install_asm configura tu clúster por ti.

  1. Establece la zona o región predeterminada para la herramienta de línea de comandos de gcloud. Si no estableces el valor predeterminado aquí, asegúrate de especificar la opción --zone o --region en los comandos gcloud container clusters de esta página.

    • Si tienes un clúster de una sola zona, configura la predeterminada:

      gcloud config set compute/zone CLUSTER_LOCATION
      
    • Si tienes un clúster regional, configura la región predeterminada:

      gcloud config set compute/region CLUSTER_LOCATION
      
  2. Configura la etiqueta mesh_id en el clúster. Si el clúster tiene etiquetas existentes que deseas conservar, debes incluirlas cuando agregues la etiqueta de mesh_id.

    1. Para ver si el clúster tiene etiquetas existentes, haz lo siguiente:

      gcloud container clusters describe CLUSTER_NAME \
          --project PROJECT_ID
      

      Busca el campo resourceLabels en el resultado. Cada etiqueta se almacena en una línea separada en el campo resourceLabels, por ejemplo:

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      Para mayor comodidad, puedes agregar las etiquetas a una variable de entorno. A continuación, reemplaza YOUR_EXISTING_LABELS por una lista separada por comas de las etiquetas existentes en el clúster con el formato KEY=VALUE, por ejemplo env=dev,release=stable:

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
      
    2. Establece la etiqueta mesh_id:

      • Si el clúster tiene etiquetas existentes que deseas conservar, actualiza el clúster con el mesh_id y las etiquetas existentes:

        gcloud container clusters update CLUSTER_NAME \
            --project PROJECT_ID \
            --update-labels=mesh_id${MESH_ID},${EXISTING_LABELS}
        
      • Si el clúster no tiene ninguna etiqueta existente, actualízalo solo con la etiqueta mesh_id:

        gcloud container clusters update CLUSTER_NAME \
            --project=PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID}
        
  3. Habilita Workload Identity:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --workload-pool=${WORKLOAD_POOL}
    

    La habilitación de Workload Identity puede tardar de 10 a 15 minutos.

  4. Habilita Cloud Monitoring y Cloud Logging en GKE:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --enable-stackdriver-kubernetes
    

¿Qué sigue?

Tu proyecto y tu clúster de GKE están listos para una instalación o migración nueva de Istio. Cuando instalas Anthos Service Mesh con install_asm, la secuencia de comandos valida tu proyecto y clúster antes de llamar a istioctl install, lo que evita fallas en la instalación.

Antes de comenzar: