Preparati a configurare l'API Gateway per Cloud Service Mesh
Questa pagina descrive come installare le definizioni di risorse personalizzate richieste per il gateway nel cluster.
Limitazioni
- Non è supportata la presenza di un mix di cluster
gateway
config-api eistio
config-api nella stessa flotta. Assicurati che config-api sia impostato sugateway
per tutti i cluster nel tuo parco risorse. Utilizza il comandogcloud container fleet mesh describe --project FLEET_PROJECT_ID
per vedere cosa hai configurato per il tuo parco risorse. - Il bilanciamento del carico e il Service Discovery multicluster non sono supportati per i cluster config-api
gateway
. - Se un cluster viene caricato utilizzando il flag
--management automatic
esistente, il cluster inizia a utilizzare l'API di configurazioneistio
e non può passare all'APIgateway
. - Sono supportati solo i nomi di dominio completi. I nomi brevi non sono supportati.
Considerazioni sulla gestione del piano dati
Per i nuovi pod, Google gestisce la versione del proxy da inserire. Tieni presente che il piano dati gestito si basa sul canale di rilascio di Google Kubernetes Engine (GKE) per determinare la versione del proxy.
Per i pod esistenti, la gestione dei proxy viene eseguita passivamente, in base al ciclo di vita naturale dei pod nel cluster. Per attivare l'aggiornamento e reinserire nuove versioni del proxy, riavvia i workload.
Prerequisiti
Come punto di partenza, questa guida presuppone che tu abbia già
creato un Google Cloud progetto e
installato kubectl
.
Prima di iniziare
- 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 è il nome del tuo cluster
- LOCATION è la posizione del cluster
- PROJECT_ID è l'ID progetto del tuo cluster
Vai alla pagina Google Kubernetes Engine nella console Google Cloud .
Fai clic su add_box Crea.
Nella sezione Standard, fai clic su Configura.
Nella sezione Impostazioni di base del cluster, completa quanto segue:
- Inserisci il nome del cluster.
- Per Tipo di località, seleziona una regione Compute Engine per il tuo cluster.
Nel riquadro di navigazione, fai clic su default-pool nella sezione Pool di nodi e seleziona Sicurezza.
Nell'elenco Ambiti di accesso, seleziona Imposta l'accesso per ogni API e imposta Cloud Platform su Attivato.
Nel riquadro di navigazione, fai clic su Networking nella sezione Cluster.
Nell'elenco Cluster Networking, seleziona Abilita API Gateway.
Nel riquadro di navigazione, fai clic su Sicurezza nella sezione Cluster.
Nell'elenco Sicurezza, seleziona Abilita Workload Identity.
Fai clic su Crea.
Registra il cluster in un parco risorse:
gcloud container fleet memberships register CLUSTER_NAME \ --gke-cluster LOCATION/CLUSTER_NAME \ --project=PROJECT_ID
Verifica che il cluster sia registrato nel parco risorse:
gcloud container fleet memberships list --project=PROJECT_ID
L'output è simile al seguente:
NAME EXTERNAL_ID LOCATION my-cluster 91980bb9-593c-4b36-9170-96445c9edd39 us-west1
Attiva la funzionalità Mesh:
gcloud container fleet mesh enable --project PROJECT_ID
Aggiorna la mesh per utilizzare l'API Gateway:
gcloud alpha container fleet mesh update \ --config-api gateway \ --memberships CLUSTER_NAME \ --project PROJECT_ID
Verifica l'aggiornamento descrivendo lo stato della risorsa Cloud Service Mesh:
gcloud alpha container fleet mesh describe \ --project PROJECT_ID
Crea un file YAML che specifica l'utilizzo dell'API Gateway:
echo "configapi: gateway" > mesh.yaml
Aggiorna la mesh:
gcloud alpha container fleet mesh update --project FLEET_PROJECT_ID \ --fleet-default-member-config mesh.yaml
Crea un cluster e registralo nel parco risorse in un unico passaggio per utilizzare la configurazione predefinita:
gcloud container clusters create CLUSTER_NAME \ --project PROJECT_ID \ --fleet-project FLEET_PROJECT_ID \ --location=LOCATION \
Abilita la federazione delle identità per i carichi di lavoro per GKE ed esegui il server metadati GKE sul nodo.
- CLUSTER_NAME è il nome del tuo cluster
- LOCATION è la posizione del cluster
- PROJECT_ID è l'ID progetto del tuo cluster
- Configurare una mesh di servizi sidecar Envoy su GKE
- Configura una mesh di servizi gRPC senza proxy su GKE
Crea e registra un cluster GKE
gcloud
Crea un cluster 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
dove:
Console
Una volta creato il cluster,
Configurare le autorizzazioni
Tieni presente che i seguenti comandi concedono l'autorizzazione a tutti gli utenti autenticati, ma puoi utilizzare la federazione delle identità per i carichi di lavoro per GKE per concedere l'autorizzazione solo a determinati account. Per informazioni dettagliate sul funzionamento di Workload Identity Federation for GKE, consulta Informazioni su Workload Identity Federation for GKE. Per configurare la federazione delle identità per i carichi di lavoro per GKE, consulta Autenticarsi alle API Google Cloud dai carichi di lavoro GKE.
Concedi il ruolo trafficdirector.client
:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member "group:PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/" \
--role "roles/trafficdirector.client"
Attiva Cloud Service Mesh
(Facoltativo) Impostare i nuovi abbonamenti della flotta in modo che utilizzino l'API Gateway per impostazione predefinita
In alternativa, puoi creare impostazioni predefinite a livello di parco risorse per i nuovi cluster GKE registrati nel parco risorse durante la creazione del cluster da configurare automaticamente con l'API Gateway.
Installare definizioni di risorse personalizzate
Genera una voce kubeconfig per il tuo cluster:
gcloud container clusters get-credentials CLUSTER_NAME --location LOCATION --project PROJECT_ID
dove:
Installa la definizione di risorsa personalizzata (CRD) 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 -
L'output è simile al seguente:
customresourcedefinition.apiextensions.k8s.io/grpcroutes.gateway.networking.k8s.io created