Nesta página, explicamos como fazer uma instalação limpa da versão 1.6.14 do Anthos Service Mesh em um cluster do GKE. Se você tiver uma versão anterior do Anthos Service Mesh instalada, veja Como fazer upgrade do Anthos Service Mesh no GKE.
Antes de começar
Antes de instalar o Anthos Service Mesh, verifique se você tem:
- Configure o ambiente para instalar as ferramentas necessárias.
- Configure o projeto para ativar as APIs necessárias e definir permissões.
- Configure o cluster para ativar as opções obrigatórias.
Como configurar credenciais e permissões
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 controle, como o proxy sidecar, para acessar com segurança os dados e os recursos do seu projeto:
curl --request POST \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --data '' \ "https://meshconfig.googleapis.com/v1alpha1/projects/${PROJECT_ID}:initialize"
A resposta do comando mostra chaves vazias:
{}
Consiga as credenciais de autenticação para interagir com o cluster:
gcloud container clusters get-credentials ${CLUSTER_NAME} \ --project=${PROJECT_ID}
Conceda permissões de administrador de cluster ao usuário atual. Você precisa dessas permissões para criar as regras necessárias de controle de acesso baseado em papéis (RBAC, na sigla em inglês) para o Anthos Service Mesh:
kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin \ --user="$(gcloud config get-value core/account)"
Se você observar o erro "cluster-admin-binding" already exists
, poderá
ignorá-lo com segurança e continuar com o cluster-admin-binding atual.
Como fazer o download do arquivo de instalação
-
Faça o download do arquivo de instalação do Anthos Service Mesh no diretório de trabalho
atual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-linux-amd64.tar.gz
-
Faça o download do arquivo de assinatura e use
openssl
para verificar a assinatura:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-linux-amd64.tar.gz.1.sig openssl dgst -verify /dev/stdin -signature istio-1.6.14-asm.2-linux-amd64.tar.gz.1.sig istio-1.6.14-asm.2-linux-amd64.tar.gz <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
A saída esperada é
Verified OK
. -
Extraia o conteúdo do arquivo em qualquer local no sistema. Por
exemplo, para extrair o conteúdo para o diretório de trabalho atual:
tar xzf istio-1.6.14-asm.2-linux-amd64.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual chamado
istio-1.6.14-asm.2
, que contém:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
usada para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh estão no
diretório
manifests/profiles
.
- Exemplos de aplicativos no diretório
-
Faça o download do arquivo de instalação do Anthos Service Mesh no diretório de trabalho
atual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-osx.tar.gz
-
Faça o download do arquivo de assinatura e use
openssl
para verificar a assinatura:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-osx.tar.gz.1.sig openssl dgst -sha256 -verify /dev/stdin -signature istio-1.6.14-asm.2-osx.tar.gz.1.sig istio-1.6.14-asm.2-osx.tar.gz <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
A saída esperada é
Verified OK
. -
Extraia o conteúdo do arquivo em qualquer local no sistema. Por
exemplo, para extrair o conteúdo para o diretório de trabalho atual:
tar xzf istio-1.6.14-asm.2-osx.tar.gz
O comando cria um diretório de instalação no seu diretório de trabalho atual chamado
istio-1.6.14-asm.2
, que contém:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
usada para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh estão no
diretório
manifests/profiles
.
- Exemplos de aplicativos no diretório
-
Faça o download do arquivo de instalação do Anthos Service Mesh no diretório de trabalho
atual:
curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-win.zip
-
Faça o download do arquivo de assinatura e use
openssl
para verificar a assinatura:curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.6.14-asm.2-win.zip.1.sig openssl dgst -verify - -signature istio-1.6.14-asm.2-win.zip.1.sig istio-1.6.14-asm.2-win.zip <<'EOF' -----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw== -----END PUBLIC KEY----- EOF
A saída esperada é
Verified OK
. -
Extraia o conteúdo do arquivo em qualquer local no sistema. Por
exemplo, para extrair o conteúdo para o diretório de trabalho atual:
tar xzf istio-1.6.14-asm.2-win.zip
O comando cria um diretório de instalação no seu diretório de trabalho atual chamado
istio-1.6.14-asm.2
, que contém:- Exemplos de aplicativos no diretório
samples
. - A ferramenta de linha de comando
istioctl
usada para instalar o Anthos Service Mesh está no diretóriobin
. - Os perfis de configuração do Anthos Service Mesh estão no
diretório
manifests/profiles
.
- Exemplos de aplicativos no diretório
-
Verifique se você está no diretório raiz da instalação do Anthos Service Mesh.
cd istio-1.6.14-asm.2
-
Para facilitar, adicione as ferramentas ao diretório
/bin
/bin do seu PATH.export PATH=$PWD/bin:$PATH
Linux
macOS
Windows
Como preparar arquivos de configuração de recursos
Ao executar o comando istioctl install
, especifique
-f istio-operator.yaml
na linha de comando. Esse arquivo contém informações
sobre o projeto e o cluster exigidos pelo Anthos Service Mesh. Faça o download de um pacote
que contenha istio-operator.yaml
e outros arquivos de configuração de recursos para que seja possível definir as informações do projeto e do cluster.
Para começar, escolha um pacote para fazer o download com base na autoridade de certificação (CA, na sigla em inglês) que você quer usar:
asm
: thumb_up_alt Este pacote ativa o Mesh CA, que recomendamos para novas instalações.asm-citadel
: você tem a opção de ativar o Citadel como o CA. Antes de escolher esse pacote, consulte Como escolher uma autoridade de certificação para mais informações.
Para preparar os arquivos de configuração de recursos, siga estas etapas:
Crie um novo diretório para os arquivos de configuração do recurso do pacote Anthos Service Mesh. Recomendamos que você use o nome do cluster como o nome do diretório.
Altere para o diretório em que você quer fazer o download do pacote do Anthos Service Mesh.
Faça o download do pacote que você quer usar com base na CA.
CA da malha
Faça o download do pacote
asm
, que ativa a CA da malha:kpt pkg get \ https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.6-asm asm
Citadel
Faça o download do pacote
asm-citadel
, que ativa o Citadel como a CA:kpt pkg get \ https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm-citadel@release-1.6-asm asm
Defina o ID do projeto em que o cluster foi criado:
kpt cfg set asm gcloud.core.project ${PROJECT_ID}
Defina o número do projeto host da frota:
kpt cfg set asm gcloud.project.environProjectNumber ${FLEET_PROJECT_NUMBER}
Defina o nome do cluster:
kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
Defina a zona ou a região padrão:
kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
Defina o webhook de validação para usar um rótulo de revisão:
kpt cfg set asm anthos.servicemesh.rev asm-1614-2
Ao instalar o Anthos Service Mesh, você define um rótulo de revisão em
istiod
. Você precisa definir a mesma revisão no webhook de validação.Defina o perfil de configuração que você planeja usar:
Se todos os clusters estiverem no mesmo projeto, defina o perfil
asm-gcp
:kpt cfg set asm anthos.servicemesh.profile asm-gcp
Se a malha de serviço contiver ou tiver vários clusters que estão em projetos diferentes, defina o perfil
asm-gcp-multiproject
(Beta):kpt cfg set asm anthos.servicemesh.profile asm-gcp-multiproject
Se você definir o perfil
asm-gcp-multiproject
e fizer o download do pacoteasm
, que ativa o CA da CA, será necessário configurar os aliases de domínio de confiança para os outros projetos que formam a malha de serviço de cluster/vários projetos. Caso contrário, pule esta etapa.Encontre o ID do projeto de todos os clusters que estarão na malha de vários clusters/vários projetos.
Para o ID do projeto de cada cluster, defina os aliases do domínio de confiança. Por exemplo, se você tiver clusters em três projetos, execute o seguinte comando e substitua
PROJECT_ID_1
,PROJECT_ID_2
ePROJECT_ID_3
pelo ID do projeto de cada cluster.kpt cfg set asm anthos.servicemesh.trustDomainAliases PROJECT_ID_1.svc.id.goog PROJECT_ID_2.svc.id.goog PROJECT_ID_3.svc.id.goog
Ao configurar os clusters nos outros projetos, é possível usar o mesmo comando.
Os aliases de domínio de confiança permitem que a CA da malha autentique cargas de trabalho em clusters em outros projetos. Além de definir os aliases de domínio de confiança, depois de instalar o Anthos Service Mesh, você precisa ativar o balanceamento de carga entre clusters.
Gere os valores dos setters
kpt
:kpt cfg list-setters asm
Na saída do comando, verifique se os valores dos setters a seguir estão corretos:
- anthos.servicemesh.rev
- gcloud.compute.location
- gcloud.container.cluster
- gcloud.core.project
- gcloud.project.environProjectNumber
Como instalar o Anthos Service Mesh
Verifique se o contexto
kubeconfig
atual está apontando para o cluster em que você quer instalar o Anthos Service Mesh:kubectl config current-context
A saída está no seguinte formato:
gke_PROJECT_ID_CLUSTER_LOCATION_CLUSTER_NAME
O contexto
kubeconfig
e os valores dos setterskpt
precisam ser correspondentes. Se necessário, execute o comandogcloud container clusters get-credentials
para definir o contextokubeconfig
atual.Se você estiver usando Citadel como autoridade de certificação e quiser usar uma CA personalizada, execute os comandos a seguir. Caso contrário, passe para a próxima etapa.
kubectl create namespace istio-system
kubectl create secret generic cacerts \ -n istio-system \ --from-file=ca-cert.pem \ --from-file=ca-key.pem \ --from-file=root-cert.pem \ --from-file=cert-chain.pem
Para ver mais informações, consulte Como conectar certificados de CA existentes.
Execute o seguinte comando para instalar o Anthos Service Mesh com o perfil de configuração que você definiu no arquivo
istio-operator.yaml
. Se você quiser ativar um recurso opcional compatível, inclua-f
e o nome de arquivo YAML na linha de comando a seguir. Para ver mais informações, consulte Como ativar recursos opcionais.istioctl install \ -f asm/cluster/istio-operator.yaml \ --set revision=asm-1614-2
O argumento
--set revision
adiciona um rótulo de revisão no formatoistio.io/rev=asm-1614-2
aistiod
. O rótulo de revisão é usado pelo webhook do injetor automático de sidecar para associar os sidecars injetados a uma revisãoistiod
específica. Para ativar a injeção automática de sidecar para um namespace, você precisa rotulá-lo com uma revisão que corresponda ao rótulo emistiod
.Configure o webhook de validação para que ele possa localizar o serviço
istiod
com o rótulo de revisão:kubectl apply -f asm/istiod-service.yaml
Esse comando cria uma entrada de serviço que permite ao webhook de validação verificar automaticamente as configurações antes de serem aplicadas.
Se você usou o perfil
asm-gcp
, execute o seguinte comando para implantar o controlador de serviço canônico:kubectl apply -f asm/canonical-service/controller.yaml
O comando implanta o controlador de serviço canônico no cluster. O controlador de serviço canônico agrupa cargas de trabalho pertencentes ao mesmo serviço lógico, e é necessário desbloquear funcionalidades extras no painel de Serviços no console do Google Cloud. Para mais informações, consulte Como ativar e desativar o controlador de serviço canônico.
Se você tiver usado o perfil
asm-gcp-multiproject
, saiba que, no momento, os dados de telemetria não são exibidos nos painéis do Anthos Service Mesh no console do Google Cloud. No entanto, ainda é possível ver registros no Cloud Logging e métricas no Cloud Monitoring de cada projeto.
O TLS mútuo automático (mTLS automático) é ativado por padrão. Com o mTLS automático, um proxy sidecar do cliente detecta automaticamente se o servidor tem um sidecar. O sidecar do cliente envia mTLS para cargas de trabalho com arquivos secundários e envia tráfego de texto simples para cargas de trabalho sem sidecars.
Verificar os componentes do plano de controle
Verifique se os pods do plano de controle em istio-system
estão ativos:
kubectl get pod -n istio-system
A saída esperada será assim:
NAME READY STATUS RESTARTS AGE istio-ingressgateway-cff9f5c7d-qg4ls 1/1 Running 0 7m5s istio-ingressgateway-cff9f5c7d-vlkzb 1/1 Running 0 7m20s istiod-66b587859c-886gx 1/1 Running 0 7m33s istiod-66b587859c-dfs2j 1/1 Running 0 7m33s
Como injetar proxies sidecar
O Anthos Service Mesh usa proxies sidecar para aumentar a segurança, a confiabilidade e a observabilidade da rede. Com o Anthos Service Mesh, essas funções são abstraídas do contêiner principal do aplicativo e implementadas em um proxy comum fora do processo, entregue como um contêiner separado no mesmo pod.
Antes de você implantar cargas de trabalho, configure uma injeção do proxy sidecar para o Anthos Service Mesh monitorar e proteger o tráfego.
Todas as cargas de trabalho em execução no cluster antes da instalação do Anthos Service Mesh precisam ter o proxy sidecar injetado ou atualizado para que tenham a versão atual do Anthos Service Mesh. Antes de implantar novas cargas de trabalho, configure a injeção de proxy sidecar para que o Anthos Service Mesh possa monitorar e proteger o tráfego.
Para ativar a injeção automática de sidecar, rotule seus namespaces com a mesma
revisão definida em istiod
. Execute o comando a seguir para mostrar os
rótulos em istiod
:
kubectl -n istio-system get pods -l app=istiod --show-labels
Confirme se o rótulo de revisão, istio.io/rev=asm-1614-2
, está
na saída. Este é o rótulo que você usa para ativar a injeção automática. Você pode
ativar a injeção automática com um comando, por exemplo:
kubectl label namespace NAMESPACE istio-injection-istio.io/rev=asm-1614-2 --overwrite
em que NAMESPACE
é o nome do
namespace
para os serviços do seu aplicativo ou default
se você não tiver criado explicitamente
um namespace.
Saiba mais em Como injetar proxies sidecar.
Como visualizar os painéis do Anthos Service Mesh
Esta seção é aplicável somente se você tiver instalado o Anthos Service Mesh com o
perfil de configuração asm-gcp
. Se você tiver usado o perfil asm-gcp-multiproject
para instalar o Anthos Service Mesh, os dados de telemetria não estarão disponíveis nos painéis do
Anthos Service Mesh no console do Google Cloud.
Depois de implantar as cargas de trabalho no seu cluster com os proxies sidecar injetados, acesse as páginas do Anthos Service Mesh no Console do Google Cloud para ver todos os recursos de observabilidade que o Anthos Service Mesh oferece. Observe que leva cerca de um ou dois minutos para que os dados de telemetria sejam exibidos no console do Google Cloud após a implantação das cargas de trabalho.
O acesso ao Anthos Service Mesh no console do Google Cloud é controlado pelo Gerenciamento de identidade e acesso (IAM). Para acessar as páginas do Anthos Service Mesh, um proprietário do projeto precisa conceder aos usuários o papel de Editor ou Visualizador de projeto ou os papéis mais restritivos descritos em Como controlar o acesso ao Anthos Service Mesh no console do Google Cloud.
No console do Google Cloud, acesse Anthos Service Mesh.
Selecione o projeto do Google Cloud na lista suspensa na barra de menus.
Se você tiver mais de uma malha de serviço, selecione a malha na lista suspensa Service Mesh.
Para saber mais, consulte Como explorar o Anthos Service Mesh no console do Google Cloud.
Além das páginas do Anthos Service Mesh, as métricas relacionadas aos seus serviços, como o número de solicitações recebidas por um serviço específico, são enviadas para o Cloud Monitoring, onde elas aparecem o Metrics Explorer.
Para ver métricas:
No Console do Google Cloud, acesse a página Monitoring.
Selecione Recursos > Metrics Explorer.
Veja uma lista completa de métricas em Métricas do Istio na documentação do Cloud Monitoring.
Como registrar o cluster
É necessário registrar o cluster com a frota do projeto para ter acesso à interface do usuário unificada no console do Google Cloud. Uma frota fornece uma forma unificada de visualizar e gerenciar os clusters e as cargas de trabalho deles, incluindo clusters fora do Google Cloud.
Veja informações sobre como registrar seu cluster em Como registrar clusters na frota.