Configurar o projeto e o cluster do GKE por conta própria
<0x0 Google Cloud Para mais informações, consulte Visão geral do Cloud Service Mesh.Ao instalar o Cloud Service Mesh usando
asmcli, ele pode
configurar o projeto e o cluster do GKE em Google Cloud para
você se você incluir a flag --enable_all ou as
flags de ativação mais granulares.
Se você preferir fazer a configuração por conta própria em vez de deixar que asmcli realize as
alterações, siga as etapas nesta página.
Se você já tiver uma versão anterior do Cloud Service Mesh instalada, não será
necessário fazer alterações no projeto ou no cluster antes de usar
asmcli para fazer upgrade para a versão mais recente
do Cloud Service Mesh.
Por padrão, asmcli não instala o istio-ingressgateway. Recomendamos
que você implante e gerencie o plano de controle e os gateways separadamente.
O Cloud Service Mesh oferece suporte à injeção automática para implantações de gateway, o que
facilita os upgrades do Cloud Service Mesh. Depois de fazer upgrade do
Cloud Service Mesh, reinicie os gateways como os serviços para escolher
a nova configuração do plano de controle. Para mais informações, consulte
Como instalar e fazer upgrade de gateways.
Antes de começar
- Analise os pré-requisitos e os requisitos
- Planeje a instalação ou o upgrade
- Instalar as ferramentas necessárias
Crie o projeto
Consiga o ID e o número do projeto em que o cluster foi criado.
gcloud
Execute este comando:
gcloud projects listConsole
Acesse a página Painel no console doGoogle Cloud .
Clique na lista suspensa na parte superior da página. Na janela Selecionar a partir de exibida, selecione seu projeto.
O ID do projeto e o número do projeto são exibidos no card Informações do projeto do painel do projeto:
Crie as variáveis de ambiente a seguir:
Defina o pool de carga de trabalho usando o ID do projeto:
export WORKLOAD_POOL=PROJECT_ID.svc.id.googDefina o código da malha usando o número do projeto:
export MESH_ID="proj-PROJECT_NUMBER"
Defina os papéis necessários de gerenciamento de identidade e acesso (IAM, na sigla em inglês). Se você for um proprietário do projeto, terá todas as permissões necessárias para concluir a instalação. Se você não for proprietário do projeto, precisará que o proprietário conceda os seguintes papéis específicos do IAM. No comando a seguir, substitua
PROJECT_IDpelo ID do projeto da etapa anterior eGCP_EMAIL_ADDRESSpela conta usada para fazer login 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 você incluir a sinalização
--enable_allou--enable_gcp_iam_rolesao executarasmcli, ela definirá os papéis obrigatórios do IAM para você.Ative as APIs do Google necessárias:
gcloud services enable \ --project=PROJECT_ID \ mesh.googleapis.comAlém de
mesh.googleapis.com, esse comando também ativa as seguintes APIs:API Finalidade Pode ser desativada? meshconfig.googleapis.comO Cloud Service Mesh usa a API Mesh Configuration para redirecionar os dados de configuração da malha para Google Cloud. Além disso, ativar a API Mesh Configuration permite acessar as páginas do Cloud Service Mesh no console do Google Cloud e usar a autoridade certificadora do Cloud Service Mesh. Não meshca.googleapis.comRelacionada à autoridade certificadora do Cloud Service Mesh usada pelo Cloud Service Mesh gerenciado. Não container.googleapis.comNecessária para a criação de clusters do Google Kubernetes Engine (GKE). Não gkehub.googleapis.comNecessária para o gerenciamento da malha como uma frota. Não monitoring.googleapis.comNecessária para a captura da telemetria de cargas de trabalho da malha. Não stackdriver.googleapis.comNecessária para uso da interface dos serviços. Não opsconfigmonitoring.googleapis.comNecessária para usar a interface dos serviços para clusters fora doGoogle Cloud . Não connectgateway.googleapis.comNecessária para que o plano de controle gerenciado do Cloud Service Mesh acesse cargas de trabalho da malha. Sim* trafficdirector.googleapis.comPermite um plano de controle gerenciado altamente disponível e escalonável. Sim* networkservices.googleapis.comPermite um plano de controle gerenciado altamente disponível e escalonável. Sim* networksecurity.googleapis.comPermite um plano de controle gerenciado altamente disponível e escalonável. Sim* A ativação das APIs pode levar um minuto ou mais para ser concluída. Quando as APIs estão ativadas, você vê uma saída semelhante a esta:
Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished successfully.
Se você incluir a sinalização
--enable_allou--enable_apisao executarasmcli, ela ativará as APIs necessárias para você.
Configurar o cluster
Se você incluir a sinalização --enable_all ou uma das sinalizações de ativação
mais granulares,
asmcli configurará o cluster para você.
Defina a zona ou a região padrão da Google Cloud CLI. Se você não definir o padrão aqui, especifique a opção
--zoneou--regionnos comandosgcloud container clustersdesta página.Se você tiver um cluster de zona única, defina a zona padrão:
gcloud config set compute/zone CLUSTER_LOCATIONSe você tiver um cluster regional, defina a região padrão:
gcloud config set compute/region CLUSTER_LOCATION
Defina o
mesh_idrótulo no cluster. Se o cluster tiver rótulos existentes que você quer manter, inclua-os ao adicionar o rótulomesh_id.Para ver se o cluster tem rótulos existentes:
gcloud container clusters describe CLUSTER_NAME \ --project PROJECT_IDProcure o campo
resourceLabelsna saída. Cada rótulo é armazenado em uma linha separada no camporesourceLabels. Por exemplo:resourceLabels: csm: '' env: dev release: stable
Para facilitar, é possível adicionar os rótulos a uma variável de ambiente. No exemplo a seguir, substitua
YOUR_EXISTING_LABELSpor uma lista separada por vírgulas dos rótulos existentes no seu cluster no formatoKEY=VALUE. Por exemplo:env=dev,release=stableexport EXISTING_LABELS="YOUR_EXISTING_LABELS"Defina o rótulo
mesh_id:Se o cluster tiver rótulos que você quer manter, atualize o cluster com o
mesh_ide os rótulos existentes:gcloud container clusters update CLUSTER_NAME \ --project PROJECT_ID \ --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}Se o cluster não tiver rótulos existentes, atualize o cluster com apenas com o rótulo
mesh_id:gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --update-labels=mesh_id=${MESH_ID}
Ative a Identidade da carga de trabalho:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --workload-pool=${WORKLOAD_POOL}A ativação da Identidade da carga de trabalho pode levar de 10 a 15 minutos.
Inicialize seu projeto para prepará-lo para instalação. Entre outras coisas, este comando cria uma conta de serviço para permitir componentes de plano de dados, como o proxy sidecar, para acessar com segurança os dados e os recursos do seu projeto. No comando a seguir, substitua
FLEET_PROJECT_IDpelo projeto host 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"A resposta do comando mostra chaves vazias:
{}Ative o Cloud Monitoring e o Cloud Logging no GKE:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --enable-stackdriver-kubernetes
O projeto e o cluster estão prontos para uma nova instalação usando asmcli.