Configurar el proyecto y el clúster por tu cuenta

Cuando instalas Cloud Service Mesh con asmcli, puede configurar tu proyecto y tu clúster si incluyes la marca --enable_all o las marcas de habilitación más específicas. Si prefieres hacer la configuración tú mismo en lugar de que asmcli haga los cambios, sigue los pasos que se indican en esta página.

Si ya tienes instalada una versión anterior de Cloud Service Mesh, no es necesario que hagas ningún cambio en tu proyecto o clúster antes de usar asmcli para actualizar a la versión más reciente de Cloud Service Mesh.

De forma predeterminada, asmcli no instala istio-ingressgateway. Te recomendamos que implementes y gestiones el plano de control y las pasarelas por separado. Cloud Service Mesh admite la inyección automática en las implementaciones de gateway, lo que facilita las actualizaciones de Cloud Service Mesh. Después de actualizar Cloud Service Mesh, reinicia las puertas de enlace igual que tus servicios para aplicar la nueva configuración del plano de control. Para obtener más información, consulta el artículo sobre cómo instalar y actualizar gateways.

Antes de empezar

Configurar el proyecto

  1. Obtén el ID 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 de control de la consola de Google Cloud .

      Ir a la página Panel de control

    2. Haz clic en la lista desplegable situada en la parte superior de la página. En la ventana Seleccionar de que aparece, selecciona tu proyecto.

      El ID del proyecto se muestra en la tarjeta Información del proyecto del panel de control del proyecto.

  2. Crea una variable de entorno para el grupo de cargas de trabajo con el ID de proyecto:

    export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
    
  3. Asigna los roles de Gestión de Identidades y Accesos (IAM) necesarios. Si eres propietario del proyecto, tienes todos los permisos necesarios para completar la instalación. Si no eres propietario de un proyecto, necesitas que alguien que lo sea te conceda los siguientes roles de gestión de identidades y accesos específicos. En el siguiente comando, sustituye PROJECT_ID por el ID del proyecto del paso anterior y GCP_EMAIL_ADDRESS por la cuenta que usas para iniciar sesión en 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 al ejecutar asmcli, se definen los roles de gestión de identidades y accesos necesarios.

  4. Habilita las APIs de Google necesarias:

    gcloud services enable \
        --project=PROJECT_ID \
        mesh.googleapis.com
    

    Además de mesh.googleapis.com, este comando también habilita las siguientes APIs:

    API Finalidad Se puede inhabilitar
    meshconfig.googleapis.com Cloud Service Mesh usa la API Mesh Configuration para reenviar datos de configuración de tu malla a Google Cloud. Además, si habilitas la API Mesh Configuration, podrás acceder a las páginas de Cloud Service Mesh en la Google Cloud consola y usar la autoridad de certificación de Cloud Service Mesh. No
    meshca.googleapis.com Relacionado con la autoridad de certificación de Cloud Service Mesh que usa Cloud Service Mesh gestionado. No
    container.googleapis.com Obligatorio para crear clústeres de Google Kubernetes Engine (GKE). No
    gkehub.googleapis.com Se requiere para gestionar la malla como una flota. No
    monitoring.googleapis.com Obligatorio para recoger telemetría de cargas de trabajo de malla. No
    stackdriver.googleapis.com Es necesario para usar la interfaz de usuario de los Servicios. No
    opsconfigmonitoring.googleapis.com Es necesario para usar la interfaz de usuario de Servicios en clústeresGoogle Cloud . No
    connectgateway.googleapis.com Es necesario para que el plano de control de Cloud Service Mesh gestionado pueda acceder a las cargas de trabajo de la malla. Sí*
    trafficdirector.googleapis.com Habilita un plano de control gestionado de alta disponibilidad y escalable. Sí*
    networkservices.googleapis.com Habilita un plano de control gestionado de alta disponibilidad y escalable. Sí*
    networksecurity.googleapis.com Habilita un plano de control gestionado de alta disponibilidad y escalable. Sí*

    Habilitar las APIs puede tardar un minuto o más en completarse. Cuando las APIs estén habilitadas, verás un resultado similar al siguiente:

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

    Si incluyes la marca --enable_all o --enable_apis al ejecutar asmcli, se habilitarán las APIs necesarias.

Configurar un clúster

Si incluye la marca --enable_all o una de las marcas de habilitación más granulares, asmcli configura el clúster por usted.

  1. Registra el clúster en la flota.

  2. Inicializa tu proyecto para prepararlo para la instalación. Entre otras cosas, este comando crea una cuenta de servicio para que los componentes del plano de datos, como el proxy sidecar, puedan acceder de forma segura a los datos y recursos de tu proyecto. En el siguiente comando, sustituye FLEET_PROJECT_ID por el proyecto host de la flota:

    curl --request POST  \
     --header "Authorization: Bearer $(gcloud auth print-access-token)" \
     --header "Content-Type: application/json" \
     --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.svc.id.goog","PROJECT_ID.svc.id.goog"]}' \
     "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"
    

    El comando responde con llaves vacías: {}

  3. En el caso de los clústeres de GKE on Google Cloud , define la zona o la región predeterminadas de la CLI de Google Cloud. Si no defines 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, define la zona predeterminada:

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

      gcloud config set compute/region CLUSTER_LOCATION
      
  4. En los clústeres de GKE on Google Cloud , habilita Workload Identity:

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

    Habilitar Workload Identity puede tardar entre 10 y 15 minutos.

  5. En los clústeres de GKE on Google Cloud , habilita Cloud Monitoring y Cloud Logging en GKE:

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

Tu proyecto y tu clúster ya están listos para una nueva instalación con asmcli.

Siguientes pasos