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
Configure su proyecto
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
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 y el número del proyecto se muestran en la tarjeta de Información del proyecto del panel del proyecto:
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"
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 las funciones de IAM necesarias.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 API 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
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 demesh_id
.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 camporesourceLabels
, 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 formatoKEY=VALUE
, por ejemploenv=dev,release=stable
:export EXISTING_LABELS="YOUR_EXISTING_LABELS"
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}
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
.