Nesta página, explicamos os requisitos de instalação do Anthos Service Mesh e a configuração
do seu projeto do Cloud e dos clusters do Google Kubernetes Engine (GKE) para uma malha
composta por clusters que estão no mesmo projeto. Quando você usa o
script fornecido pelo Google,
install_asm
, o script poderá
configurar seu projeto e cluster se você incluir a
sinalização --enable_all
ou as
sinalizações de ativação mais granulares.
Se você preferir fazer a configuração por conta própria em vez de deixar que install_asm
realize as
alterações, siga as etapas nesta página. Se você já tiver uma versão anterior
do Anthos Service Mesh instalada, não será necessário fazer alterações no projeto
ou no cluster antes de usar
install_asm
para fazer upgrade para a
versão mais recente do Anthos Service Mesh.
Antes de começar
Veja o que é necessário para seguir este guia:
- um projeto do Cloud;
- Uma conta de faturamento do Cloud.
- As ferramentas necessárias instaladas
- Um cluster do GKE que atenda aos requisitos descritos na próxima seção.
Requisitos
Seu cluster do GKE precisa atender aos seguintes requisitos:
Um tipo de máquina que tem pelo menos quatro vCPUs, como
e2-standard-4
. Se o tipo de máquina do cluster não tiver pelo menos quatro vCPUs, altere o tipo de máquina conforme descrito em Como migrar cargas de trabalho para diferentes tipos de máquina.O número mínimo de nós depende do seu tipo de máquina. O Anthos Service Mesh requer pelo menos oito vCPUs. Se o tipo de máquina tiver quatro vCPUs, o cluster precisará ter pelo menos dois nós. Se o tipo de máquina tiver oito vCPUs, o cluster precisará apenas de um nó. Se for preciso adicionar nós, veja Como redimensionar um cluster.
Para preparar seu cluster antes de instalar o Anthos Service Mesh, ative a Identidade da carga de trabalho. A Identidade da carga de trabalho é o método recomendado para chamar APIs do Google. A ativação da Identidade da carga de trabalho altera a forma como as chamadas das cargas de trabalho para as APIs do Google são protegidas, conforme descrito em Limitações da Identidade da carga de trabalho.
Como opção recomendada, inscreva o cluster em um canal de lançamento. Recomendamos que você se inscreva no canal de lançamento regular porque outros canais podem estar baseados em uma versão do GKE que não é compatível com o 1.9.2 do Anthos Service Mesh. Saiba mais em Ambientes compatíveis. Siga as instruções em Como registrar um cluster existente em um canal de lançamento se você tiver uma versão estática do GKE.
Para serem incluídos na malha de serviço, as portas precisam ser nomeadas, e o nome precisa incluir o protocolo da porta na seguinte sintaxe:
name: protocol[-suffix]
, em que os colchetes indicam um sufixo opcional que precisa começar com um traço. Saiba mais em Como nomear portas de serviço.Se você estiver instalando o Anthos Service Mesh em um cluster particular, abra a porta 15017 no firewall para que o webhook usado com a injeção automática de sidecar funcione corretamente. Para mais informações, consulte Como abrir uma porta em um cluster particular.
Se você tiver criado um perímetro de serviço na sua organização, talvez seja necessário adicionar o serviço Mesh CA ao perímetro. Saiba mais em Como adicionar o Mesh CA a um perímetro de serviço.
Um projeto do Google Cloud só pode ter uma malha associada a ele.
Ao executar install_asm
, ele valida que seu cluster atende ao tipo de
máquina mínimo e ao número de nós.
Configurar o projeto
Consiga o ID e o número do projeto em que o cluster foi criado.
gcloud
Execute este comando:
gcloud projects list
Console
Vá para a página Painel de controle no Console do 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.goog
Defina 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_ID
pelo ID do projeto da etapa anterior eGCP_EMAIL_ADDRESS
pela 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" done
Se você incluir a sinalização
--enable_all
ou--enable_gcp_iam_roles
ao executarinstall_asm
, ela definirá os papéis obrigatórios do IAM para você.Ative as seguintes APIs do Google:
gcloud services enable \ --project=${PROJECT_ID} \ container.googleapis.com \ compute.googleapis.com \ monitoring.googleapis.com \ logging.googleapis.com \ cloudtrace.googleapis.com \ meshca.googleapis.com \ meshtelemetry.googleapis.com \ meshconfig.googleapis.com \ iamcredentials.googleapis.com \ gkeconnect.googleapis.com \ gkehub.googleapis.com \ cloudresourcemanager.googleapis.com \ stackdriver.googleapis.com
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_all
ou--enable_apis
ao executarinstall_asm
, ela ativará as APIs necessárias para você.
Como configurar o cluster
Se você incluir a sinalização --enable_all
ou um dos recursos de
sinalizações de ativação , o campoinstall_asm
script
configura o cluster
para você.
Defina a zona ou a região padrão para a ferramenta de linha de comando
gcloud
. Se você não definir o padrão aqui, especifique a opção--zone
ou--region
nos comandosgcloud container clusters
desta página.Se você tiver um cluster de zona única, defina a zona padrão:
gcloud config set compute/zone CLUSTER_LOCATION
Se você tiver um cluster regional, defina a região padrão:
gcloud config set compute/region CLUSTER_LOCATION
Defina o
mesh_id
ró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_ID
Procure o campo
resourceLabels
na 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_LABELS
por uma lista separada por vírgulas dos rótulos existentes no seu cluster no formatoKEY=VALUE
. Por exemplo:env=dev,release=stable
export 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_id
e 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.
Ative o Cloud Monitoring e o Cloud Logging no GKE:
gcloud container clusters update CLUSTER_NAME \ --project=PROJECT_ID \ --enable-stackdriver-kubernetes
A seguir
Seu projeto e o cluster do GKE já estão prontos para uma nova instalação
ou migração do Istio. Quando você instala o Anthos Service Mesh usando install_asm
, o
script valida seu projeto e o cluster antes de chamar istioctl install
,
o que evita falhas na instalação.
Antes de começar:
- Escolher uma autoridade de certificação
- Preparar
IstioOperator
arquivos de configuração - Revisar as opções e sinalizações do script.
- Faça o download do script
- Para novas instalações, consulte Como instalar o Anthos Service Mesh
- Para migrar do Istio para o Anthos Service Mesh, consulte Como migrar do Istio