Configure o projeto e o cluster do GKE
<0x0 Google Cloud Para mais informações, consulte o artigo Vista geral da malha de serviços na nuvem.Quando instala o Cloud Service Mesh através do
asmcli, pode
configurar o seu projeto e o cluster do GKE on Google Cloud para si se incluir a flag --enable_all ou as flags de ativação mais detalhadas.
Se preferir fazer a configuração em vez de deixar que o asmcli faça as alterações, siga os passos nesta página.
Se já tiver uma versão anterior do Cloud Service Mesh instalada, não tem de fazer alterações ao seu projeto nem cluster antes de usar asmcli para atualizar para a versão mais recente do Cloud Service Mesh.
Por predefinição, o asmcli não instala o istio-ingressgateway. Recomendamos que implemente e faça a gestão do plano de controlo e das gateways separadamente.
O Cloud Service Mesh suporta a injeção automática para implementações de gateways, o que facilita as atualizações do Cloud Service Mesh. Depois de atualizar o Cloud Service Mesh, reinicie os gateways tal como os seus serviços para receber a nova configuração do plano de controlo. Para mais informações, consulte o artigo
Instalar e atualizar gateways.
Antes de começar
- Reveja os pré-requisitos e os requisitos
- Planeie a instalação ou a atualização
- Instale as ferramentas necessárias
Configure o seu projeto
Obtenha o ID do projeto e o número do projeto no qual o cluster foi criado.
gcloud
Execute o seguinte comando:
gcloud projects listConsola
Aceda à página Painel de controlo na Google Cloud consola.
Clique na lista pendente na parte superior da página. Na janela Selecionar a partir de apresentada, selecione o seu projeto.
O ID do projeto e o número do projeto são apresentados no cartão Informações do projeto do painel de controlo do projeto.
Crie as seguintes variáveis de ambiente:
Defina o Workload Identity Pool com o ID do projeto:
export WORKLOAD_POOL=PROJECT_ID.svc.id.googDefina o ID da malha através do número do projeto:
export MESH_ID="proj-PROJECT_NUMBER"
Defina as funções de gestão de identidade e de acesso (IAM) necessárias. Se for o proprietário do projeto, tem todas as autorizações necessárias para concluir a instalação. Se não for um proprietário do projeto, precisa de alguém que o seja para lhe conceder as seguintes funções de IAM específicas. No comando seguinte, substitua
PROJECT_IDpelo ID do projeto do passo anterior eGCP_EMAIL_ADDRESSpela conta que usa para iniciar sessão no 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" doneSe incluir a flag
--enable_allou--enable_gcp_iam_rolesquando executarasmcli, define as funções da IAM necessárias por si.Ative as APIs Google necessárias:
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.comAlém de
mesh.googleapis.com, este comando também ativa as seguintes APIs:API Finalidade Pode ser desativado meshconfig.googleapis.comO Cloud Service Mesh usa a API Mesh Configuration para retransmitir dados de configuração da sua malha para Google Cloud. Além disso, a ativação da API Mesh Configuration permite-lhe aceder às páginas do Cloud Service Mesh na Google Cloud consola e usar a autoridade de certificação do Cloud Service Mesh. Não meshca.googleapis.comRelacionado com a autoridade de certificação do Cloud Service Mesh usada pelo Cloud Service Mesh gerido. Não container.googleapis.comNecessário para criar clusters do Google Kubernetes Engine (GKE). Não gkehub.googleapis.comNecessário para gerir a malha como uma frota. Não monitoring.googleapis.comNecessário para capturar telemetria para cargas de trabalho de malha. Não stackdriver.googleapis.comNecessário para usar a IU dos Serviços. Não opsconfigmonitoring.googleapis.comNecessário para usar a IU dos serviços para clusters fora doGoogle Cloud . Não connectgateway.googleapis.comNecessário para que o plano de controlo do Cloud Service Mesh gerido possa aceder às cargas de trabalho da malha. Sim* trafficdirector.googleapis.comAtiva um plano de controlo gerido altamente disponível e escalável. Sim* networkservices.googleapis.comAtiva um plano de controlo gerido altamente disponível e escalável. Sim* networksecurity.googleapis.comAtiva um plano de controlo gerido altamente disponível e escalável. Sim* A ativação das APIs pode demorar um minuto ou mais. Quando as APIs estão ativadas, vê um resultado semelhante ao seguinte:
Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished successfully.
Se incluir a flag
--enable_allou--enable_apisquando executarasmcli, ativa as APIs necessárias.
Configure o cluster
Se incluir a flag --enable_all ou uma das flags de ativação mais detalhadas,
asmcli configura o cluster por si.
Defina a zona ou a região predefinida para a CLI Google Cloud. Se não definir a predefinição aqui, certifique-se de que especifica a opção
--zoneou--regionnos comandosgcloud container clustersnesta página.Se tiver um cluster de zona única, defina a zona predefinida:
gcloud config set compute/zone CLUSTER_LOCATIONSe tiver um cluster regional, defina a região predefinida:
gcloud config set compute/region CLUSTER_LOCATION
Defina a
mesh_idetiqueta no cluster. Se o seu cluster tiver etiquetas existentes que quer manter, tem de incluir essas etiquetas quando adicionar a etiquetamesh_id.Para ver se o cluster tem etiquetas existentes:
gcloud container clusters describe CLUSTER_NAME \ --project PROJECT_IDProcure o campo
resourceLabelsno resultado. Cada etiqueta é armazenada numa linha separada no camporesourceLabels, por exemplo:resourceLabels: csm: '' env: dev release: stable
Para maior comodidade, pode adicionar as etiquetas a uma variável de ambiente. No comando seguinte, substitua
YOUR_EXISTING_LABELSpor uma lista separada por vírgulas das etiquetas existentes no seu cluster no formatoKEY=VALUE, por exemplo:env=dev,release=stableexport EXISTING_LABELS="YOUR_EXISTING_LABELS"Defina a etiqueta
mesh_id:Se o cluster tiver etiquetas existentes que quer manter, atualize o cluster com o comando
mesh_ide as etiquetas existentes:gcloud container clusters update CLUSTER_NAME \ --project PROJECT_ID \ --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}Se o cluster não tiver etiquetas existentes, atualize-o com apenas a etiqueta
mesh_id:gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --update-labels=mesh_id=${MESH_ID}
Ative o Workload Identity:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --workload-pool=${WORKLOAD_POOL}A ativação do Workload Identity pode demorar entre 10 e 15 minutos.
Inicialize o projeto para o preparar para a instalação. Entre outras coisas, este comando cria uma conta de serviço para permitir que os componentes do plano de dados, como o proxy sidecar, acedam de forma segura aos dados e aos recursos do seu projeto. No comando seguinte, substitua
FLEET_PROJECT_IDpelo projeto de anfitrião da frota: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"O comando responde com chavetas vazias:
{}Ative o Cloud Monitoring e o Cloud Logging no GKE:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --enable-stackdriver-kubernetes
O seu projeto e cluster estão agora prontos para uma nova instalação com o asmcli.