Prepare-se para configurar a API Gateway para o Cloud Service Mesh
Nesta página, descrevemos como instalar as definições de recursos personalizados necessárias para o gateway no seu cluster.
Limitações
- Não é possível ter uma combinação de clusters 
gatewayconfig-api eistioconfig-api na mesma frota. - A descoberta de serviços e o balanceamento de carga de vários clusters não são compatíveis com clusters da
API de configuração 
gateway. - Se um cluster for integrado usando a flag 
--management automaticatual, ele começará a usar a API de configuraçãoistioe não poderá mudar para a APIgateway. - Somente FQDNs são aceitos. Não é possível usar nomes curtos.
 
Pré-requisitos
Como ponto de partida, este guia pressupõe que você já tenha
criado um Google Cloud projeto e
instalado o kubectl.
Antes de começar
- 
    
    
      
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
 - 
      Create a project: To create a project, you need the Project Creator
      (
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles. 
 - 
  
    
Verify that billing is enabled for your Google Cloud project.
 - 
  
  
    
      
Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. - Gere uma entrada kubeconfig para o cluster:
 - CLUSTER_NAME é o nome do cluster.
 - LOCATION é o local do cluster.
 - PROJECT_ID é o ID do projeto do cluster.
 Crie um cluster do 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=standardem que:
- CLUSTER_NAME é o nome do cluster.
 - LOCATION é o local do cluster.
 - PROJECT_ID é o ID do projeto do cluster.
 
Ative a federação de identidade da carga de trabalho para o GKE:
gcloud container clusters update CLUSTER_NAME \ --location LOCATION \ --workload-pool=PROJECT_ID.Execute o servidor de metadados do GKE no nó:
gcloud container node-pools update default-pool \ --cluster=CLUSTER_NAME \ --location=LOCATION \ --workload-metadata=GKE_METADATARegistre o cluster em uma frota:
gcloud container hub memberships register CLUSTER_NAME \ --gke-cluster LOCATION/CLUSTER_NAME \ --project=PROJECT_IDVerifique se o cluster está registrado na frota:
gcloud container hub memberships list --project=PROJECT_IDA saída é semelhante a:
NAME EXTERNAL_ID LOCATION my-cluster 91980bb9-593c-4b36-9170-96445c9edd39 us-west1Conceda o papel
trafficdirector.client:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "group:PROJECT_ID.:/allAuthenticatedUsers/" \ --role "roles/trafficdirector.client"Conceda o papel
container.developer:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot." \ --role "roles/container.developer"em que PROJECT_NUMBER é o número do projeto.
Conceda o papel
compute.networkAdmin:gcloud projects add-iam-policy-binding PROJECT_ID \ --member "serviceAccount:service-PROJECT_NUMBER@container-engine-robot." \ --role "roles/compute.networkAdmin"em que PROJECT_NUMBER é o número do projeto.
Ative o recurso de malha:
gcloud container hub mesh enable --project PROJECT_IDAtualize a malha para usar a API Gateway:
gcloud alpha container fleet mesh update \ --config-api gateway \ --memberships CLUSTER_NAME \ --project PROJECT_IDPara verificar a atualização, descreva o status do recurso do Cloud Service Mesh:
gcloud alpha container fleet mesh describe- Configurar uma malha de serviço de arquivo secundário do Envoy no GKE
 - Configurar uma malha de serviço gRPC sem proxy no GKE
 
gcloud container clusters get-credentials CLUSTER_NAME --location LOCATION --project PROJECT_ID
em que:
Criar e registrar um cluster do GKE
Configurar permissões
Os comandos a seguir concedem permissão a todos os usuários autenticados, mas é possível usar a federação de identidade da carga de trabalho para o GKE e conceder permissão apenas a contas selecionadas.
Ativar o Cloud Service Mesh
Instalar definições de recursos personalizados
Instale a definição de recurso personalizado (CRD) do 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 -
A saída é semelhante a:
customresourcedefinition.apiextensions.k8s.io/grpcroutes.gateway.networking.k8s.io created