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 e istio config-api nella stessa flotta. Assicurati che config-api sia impostato su gateway per tutti i cluster nel tuo parco risorse. Utilizza il comando gcloud 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 configurazione istio e non può passare all'API gateway.
  • 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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.

    Enable the APIs

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.

    Enable the APIs

  8. 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:

    • CLUSTER_NAME è il nome del tuo cluster
    • LOCATION è la posizione del cluster
    • PROJECT_ID è l'ID progetto del tuo cluster

    Console

    1. Vai alla pagina Google Kubernetes Engine nella console Google Cloud .

      Vai a Google Kubernetes Engine

    2. Fai clic su Crea.

    3. Nella sezione Standard, fai clic su Configura.

    4. Nella sezione Impostazioni di base del cluster, completa quanto segue:

      1. Inserisci il nome del cluster.
      2. Per Tipo di località, seleziona una regione Compute Engine per il tuo cluster.
    5. Nel riquadro di navigazione, fai clic su default-pool nella sezione Pool di nodi e seleziona Sicurezza.

    6. Nell'elenco Ambiti di accesso, seleziona Imposta l'accesso per ogni API e imposta Cloud Platform su Attivato.

    7. Nel riquadro di navigazione, fai clic su Networking nella sezione Cluster.

    8. Nell'elenco Cluster Networking, seleziona Abilita API Gateway.

    9. Nel riquadro di navigazione, fai clic su Sicurezza nella sezione Cluster.

    10. Nell'elenco Sicurezza, seleziona Abilita Workload Identity.

    11. Fai clic su Crea.

    Una volta creato il cluster,

    1. Registra il cluster in un parco risorse:

      gcloud container fleet memberships register CLUSTER_NAME \
      --gke-cluster LOCATION/CLUSTER_NAME \
      --project=PROJECT_ID
      
    2. 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
      

    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

    1. Attiva la funzionalità Mesh:

      gcloud container fleet mesh enable --project PROJECT_ID
      
    2. Aggiorna la mesh per utilizzare l'API Gateway:

      gcloud alpha container fleet mesh update \
      --config-api gateway \
      --memberships CLUSTER_NAME \
      --project PROJECT_ID
      
    3. Verifica l'aggiornamento descrivendo lo stato della risorsa Cloud Service Mesh:

      gcloud alpha container fleet mesh describe \
      --project PROJECT_ID
      

    (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.

    1. Crea un file YAML che specifica l'utilizzo dell'API Gateway:

      echo "configapi: gateway" > mesh.yaml
      
    2. Aggiorna la mesh:

      gcloud alpha container fleet mesh update --project FLEET_PROJECT_ID \
          --fleet-default-member-config mesh.yaml
      
    3. 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 \
      
    4. Abilita la federazione delle identità per i carichi di lavoro per GKE ed esegui il server metadati GKE sul nodo.

    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:

    • CLUSTER_NAME è il nome del tuo cluster
    • LOCATION è la posizione del cluster
    • PROJECT_ID è l'ID progetto del tuo cluster

    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
    

    Passaggi successivi