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 Mesh, 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

Configura el proyecto

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

    gcloud

    Ejecuta el siguiente comando:

    gcloud projects list
    

    Consola

    1. Ve a la página Panel en la consola de Google Cloud.

      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 desde 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 cargas de trabajo con el ID del proyecto:

      export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
      
    • Configura el ID de malla con el número del 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 la marca --enable_all o --enable_gcp_iam_roles cuando ejecutas install_asm, se configuran las funciones de IAM necesarias.

  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 Google Cloud CLI. 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
    

El proyecto y el clúster de GKE ahora están listos para una instalación o migración nueva desde Istio con install_asm. Cuando instalas Anthos Service Mesh con install_asm, la secuencia de comandos:

  1. Valida el proyecto y el clúster.
  2. Crea una cuenta de servicio en el proyecto para permitir que los componentes del plano de control accedan a los datos y recursos del proyecto.
  3. Configura los archivos de recursos personalizados (CR) IstioOperator necesarios con la información del proyecto y el clúster para habilitar las funciones predeterminadas.
  4. Llamadas istioctl install. Puedes especificar archivos de CR adicionales IstioOperator cuando llamas a install_asm para habilitar funciones opcionales.

¿Qué sigue?