Configura tu proyecto y tu clúster de GKE
Cuando instalas Cloud Service Mesh con asmcli
, puedes configurar el proyecto y el clúster de GKE en Google Cloud 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 asmcli
haga los cambios, sigue los pasos de esta página.
Si ya tienes instalada una versión anterior de Cloud Service Mesh, no es necesario que realices 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 se instala istio-ingressgateway
. Te recomendamos que implementes y administres el plano de control y las puertas de enlace por separado.
Cloud Service Mesh admite la inserción automática para las implementaciones de puertas de enlace, lo que facilita las actualizaciones de Cloud Service Mesh. Después de actualizar Cloud Service Mesh, reinicia las puertas de enlace, al igual que tus servicios, para obtener la nueva configuración del plano de control.
Para obtener más información, consulta Instala y actualiza puertas de enlace.
Antes de comenzar
- Revisa todos los requisitos
- Planifica la instalación o la actualización.
- Instala las herramientas necesarias
Configura tu proyecto
Obtén el ID del proyecto en el que se creó el clúster.
gcloud
Ejecuta el siguiente comando:
gcloud projects list
Console
Ve a la página Panel en la consola de Google Cloud.
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 del proyecto se muestra en la tarjeta de Información del proyecto del panel del proyecto.
Crea una variable de entorno para el grupo de cargas de trabajo con el ID del proyecto:
export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
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 yGCP_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 ejecutasasmcli
, se configuran los roles de IAM necesarios.Habilita las API 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 API:API Objetivo Se puede inhabilitar meshconfig.googleapis.com
Cloud Service Mesh usa la API de configuración de malla para retransmitir datos de configuración de tu malla a Google Cloud. Además, habilitar la API de configuración de malla te permite acceder a las páginas de Cloud Service Mesh en la consola de Google Cloud y usar la autoridad certificadora de Cloud Service Mesh. No meshca.googleapis.com
Se relaciona con la autoridad certificadora de Cloud Service Mesh que usa Cloud Service Mesh administrado. No container.googleapis.com
Obligatorio para crear clústeres de Google Kubernetes Engine (GKE). No gkehub.googleapis.com
Es obligatorio para administrar la malla como una flota. No monitoring.googleapis.com
Se requiere para capturar la telemetría de las cargas de trabajo en malla. No stackdriver.googleapis.com
Obligatorio para usar la IU de los servicios. No opsconfigmonitoring.googleapis.com
Obligatorio para usar la IU de servicios en clústeres fuera de Google Cloud. No connectgateway.googleapis.com
Es obligatorio para que el plano de control de Cloud Service Mesh administrado pueda acceder a las cargas de trabajo de la malla. Sí* trafficdirector.googleapis.com
Habilita un plano de control administrado escalable y con alta disponibilidad. Sí* networkservices.googleapis.com
Habilita un plano de control administrado escalable y con alta disponibilidad. Sí* networksecurity.googleapis.com
Habilita un plano de control administrado escalable y con alta disponibilidad. Sí* 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 ejecutasasmcli
, se habilitarán las APIs necesarias.
Configura tu clúster
Si incluyes la marca --enable_all
o una de las marcas de habilitación más detalladas, la secuencia de comandos asmcli
configura tu clúster por ti.
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 comandosgcloud 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
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.
Inicializa tu proyecto a fin de prepararlo para la instalación. Entre otras cosas, con este comando puedes crear una cuenta de servicio para permitir que los componentes del plano de datos, como el proxy de sidecar, accedan a los datos y recursos de tu proyecto de forma segura: En el siguiente comando, reemplaza
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:
{}
.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
.