Prepárate para configurar la API de Gateway para Cloud Service Mesh
En esta página, se describe cómo instalar en tu clúster las definiciones de recursos personalizados necesarias para la puerta de enlace.
Limitaciones
- No se admite tener una combinación de clústeres de config-api de
gateway
y config-api deistio
en la misma flota. Asegúrate de que config-api esté configurado comogateway
para todos los clústeres de tu flota. Usa el comandogcloud container fleet mesh describe --project FLEET_PROJECT_ID
para ver lo que configuraste para tu flota. - El descubrimiento de servicios y el balanceo de cargas de varios clústeres no son compatibles con los clústeres de
gateway
config-api. - Si se incorpora un clúster con la marca
--management automatic
existente, el clúster comienza a usar la API de configuración deistio
y no puede cambiar a la API degateway
. - Solo se admiten FQDN. No se admiten nombres cortos.
Consideraciones para la administración del plano de datos
En el caso de los Pods nuevos, Google administra qué versión del proxy se inserta. Ten en cuenta que el plano de datos administrado depende del canal de versiones de Google Kubernetes Engine (GKE) para determinar la versión del proxy.
En el caso de los Pods existentes, la administración del proxy se realiza de forma pasiva, controlada por el ciclo de vida natural de los Pods en el clúster. Para activar la actualización y volver a insertar las versiones nuevas del proxy, reinicia tus cargas de trabajo.
Requisitos previos
Como punto de partida, en esta guía se supone que ya creaste un proyecto de Google Cloud y instalaste kubectl
.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.
- CLUSTER_NAME es el nombre de tu clúster.
- LOCATION es la ubicación de tu clúster.
- PROJECT_ID es el ID del proyecto de tu clúster.
Ve a la página Google Kubernetes Engine en la consola de Google Cloud .
Haz clic en add_box Crear.
En la sección Estándar, haz clic en Configurar.
En la sección Aspectos básicos del clúster, completa lo siguiente:
- Ingresa el nombre de tu clúster.
- En Tipo de ubicación, selecciona una zona de Compute Engine para el clúster.
En el panel de navegación, haz clic en default-pool en la sección Grupos de nodos y selecciona Seguridad.
En la lista Permisos de acceso, selecciona Configurar acceso para cada API y establece Cloud Platform como Habilitada.
En el panel de navegación, haz clic en Herramientas de redes en la sección Clúster.
En la lista Cluster Networking, selecciona Enable Gateway API.
En el panel de navegación, haz clic en Seguridad en la sección Clúster.
En la lista Seguridad, selecciona Habilitar Workload Identity.
Haz clic en Crear.
Registra tu clúster en una flota:
gcloud container fleet memberships register CLUSTER_NAME \ --gke-cluster LOCATION/CLUSTER_NAME \ --project=PROJECT_ID
Verifica que el clúster esté registrado en la flota:
gcloud container fleet memberships list --project=PROJECT_ID
El resultado es similar al siguiente:
NAME EXTERNAL_ID LOCATION my-cluster 91980bb9-593c-4b36-9170-96445c9edd39 us-west1
Habilita la función de malla:
gcloud container fleet mesh enable --project PROJECT_ID
Actualiza la malla para usar la API de Gateway:
gcloud alpha container fleet mesh update \ --config-api gateway \ --memberships CLUSTER_NAME \ --project PROJECT_ID
Para verificar la actualización, describe el estado del recurso de Cloud Service Mesh:
gcloud alpha container fleet mesh describe \ --project PROJECT_ID
Crea un archivo YAML que especifique el uso de la API de Gateway:
echo "configapi: gateway" > mesh.yaml
Actualiza tu malla:
gcloud alpha container fleet mesh update --project FLEET_PROJECT_ID \ --fleet-default-member-config mesh.yaml
Para crear un clúster y registrarlo en tu flota en un solo paso y usar la configuración predeterminada, haz lo siguiente:
gcloud container clusters create CLUSTER_NAME \ --project PROJECT_ID \ --fleet-project FLEET_PROJECT_ID \ --location=LOCATION \
Habilita la federación de identidades para cargas de trabajo para GKE y ejecuta el servidor de metadatos de GKE en tu nodo.
- CLUSTER_NAME es el nombre de tu clúster.
- LOCATION es la ubicación de tu clúster.
- PROJECT_ID es el ID del proyecto de tu clúster.
- Configura una malla de servicios de sidecar de Envoy en GKE
- Configura una malla de servicios de gRPC sin proxy en GKE
Crea y registra un clúster de GKE
gcloud
Crea un clúster de GKE:
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--enable-ip-alias \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--release-channel=regular \
--project=PROJECT_ID \
--gateway-api=standard \
--workload-pool=PROJECT_ID.svc.id.goog \
--workload-metadata=GKE_METADATA
Donde:
Console
Después de crear el clúster,
Configura los permisos
Ten en cuenta que los siguientes comandos otorgan permiso a todos los usuarios autenticados, pero puedes usar la federación de identidades para cargas de trabajo para GKE para otorgar permiso solo a cuentas seleccionadas. Para obtener detalles sobre cómo funciona la federación de identidades para cargas de trabajo para GKE, consulta Acerca de la federación de identidades para cargas de trabajo para GKE. Para configurar la federación de identidades para cargas de trabajo para GKE, consulta Valida en las APIs de Google Cloud desde cargas de trabajo de GKE.
Otorga la función trafficdirector.client
:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member "group:PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/" \
--role "roles/trafficdirector.client"
Habilita Cloud Service Mesh
Configura las nuevas membresías de tu flota para que usen la API de Gateway de forma predeterminada (opcional)
Como alternativa, puedes crear parámetros de configuración predeterminados a nivel de la flota para que los clústeres de GKE nuevos registrados en la flota durante la creación del clúster se configuren automáticamente con la API de Gateway.
Instala definiciones de recursos personalizados
Genera una entrada de kubeconfig para tu clúster:
gcloud container clusters get-credentials CLUSTER_NAME --location LOCATION --project PROJECT_ID
Donde:
Instala la definición de recurso personalizado (CRD) de GRPCRoute:
curl https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml \
| kubectl apply -f -
El resultado es similar al siguiente:
customresourcedefinition.apiextensions.k8s.io/grpcroutes.gateway.networking.k8s.io created