Configure o projeto e o cluster do GKE
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
precisa 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 no qual o cluster foi criado.
gcloud
Execute o seguinte comando:
gcloud projects list
Consola
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 é apresentado no cartão Informações do projeto no painel de controlo do projeto.
Crie uma variável de ambiente para o Workload Identity Pool com o ID do projeto:
export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
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_ID
pelo ID do projeto do passo anterior eGCP_EMAIL_ADDRESS
pela 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" done
Se incluir a flag
--enable_all
ou--enable_gcp_iam_roles
quando executarasmcli
, define as funções da IAM necessárias para si.Ative as APIs Google necessárias:
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.com
Além de
mesh.googleapis.com
, este comando também ativa as seguintes APIs:API Finalidade Pode ser desativado meshconfig.googleapis.com
O 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 o acesso às páginas do Cloud Service Mesh na Google Cloud consola e a utilização da autoridade de certificação do Cloud Service Mesh. Não meshca.googleapis.com
Relacionado com a autoridade de certificação do Cloud Service Mesh usada pelo Cloud Service Mesh gerido. Não container.googleapis.com
Necessário para criar clusters do Google Kubernetes Engine (GKE). Não gkehub.googleapis.com
Necessário para gerir a malha como uma frota. Não monitoring.googleapis.com
Necessário para capturar telemetria para cargas de trabalho de malha. Não stackdriver.googleapis.com
Necessário para usar a IU dos Serviços. Não opsconfigmonitoring.googleapis.com
Necessário para usar a IU dos serviços para clusters fora doGoogle Cloud . Não connectgateway.googleapis.com
Necessário para que o plano de controlo do Cloud Service Mesh gerido possa aceder às cargas de trabalho da malha. Sim* trafficdirector.googleapis.com
Ativa um plano de controlo gerido altamente disponível e escalável. Sim* networkservices.googleapis.com
Ativa um plano de controlo gerido altamente disponível e escalável. Sim* networksecurity.googleapis.com
Ativa 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_all
ou--enable_apis
quando executar o comandoasmcli
, 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
--zone
ou--region
nos comandosgcloud container clusters
nesta página.Se tiver um cluster de zona única, defina a zona predefinida:
gcloud config set compute/zone CLUSTER_LOCATION
Se tiver um cluster regional, defina a região predefinida:
gcloud config set compute/region CLUSTER_LOCATION
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_ID
pelo 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
.