Neste guia, explicamos como instalar o aplicativo de amostra Online Boutique para demonstrar o Anthos Service Mesh. Se você não tiver instalado o Anthos Service Mesh, veja a seção Guias de instalação para escolher o guia certo para você.
Como ativar a injeção automática do arquivo secundário
Para ativar a injeção automática do arquivo secundário (injeção automática) do aplicativo de amostra, você precisa adicionar um rótulo de revisão ao namespace da amostra. O rótulo adicionado depende de você ter implantado o Anthos Service Mesh gerenciado ou instalado o plano de controle no cluster. O rótulo de revisão é usado pelo webhook do injetor do arquivo secundário para associar os arquivos secundários injetados a uma revisão específica do plano de controle.
No cluster
Crie um namespace para o aplicativo:
kubectl create namespace demo
Use o seguinte comando para localizar o rótulo em
istiod
:kubectl -n istio-system get pods -l app=istiod --show-labels
A resposta será semelhante a:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-1106-2-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586 istiod-asm-1106-2-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586
Na saída, na coluna
LABELS
, anote o valor do rótulo de revisãoistiod
, que segue o prefixoistio.io/rev=
. Neste exemplo, o valor éasm-1106-2
.Aplique o rótulo de revisão ao namespace
demo
. No comando a seguir, REVISION é o valor do rótulo de revisãoistiod
que você anotou na etapa anterior.kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
Você pode ignorar a mensagem
"istio-injection not found"
na saída. Isso significa que o namespace não tinha o rótuloistio-injection
anteriormente, que é esperado em novas instalações do Anthos Service Mesh ou em novas implantações. Como a injeção automática falha se um namespace tiver oistio-injection
e o rótulo de revisão, todos os comandoskubectl label
na documentação do Anthos Service Mesh incluem a remoção do rótuloistio-injection
Malha de serviço gerenciada
Crie um namespace para o aplicativo:
kubectl create namespace demo
Aplique o rótulo de revisão
asm-managed-rapid
ao namespacedemo
.kubectl label namespace demo istio-injection- istio.io/rev=asm-managed-rapid --overwrite
Esse rótulo corresponde ao canal de lançamento do Anthos Service Mesh gerenciado atual para a versão do Anthos Service Mesh.
Você pode ignorar a mensagem
"istio-injection not found"
na saída. Isso significa que o namespace não tinha o rótuloistio-injection
anteriormente, que é esperado em novas instalações do Anthos Service Mesh ou em novas implantações. Como a injeção automática falha se um namespace tiver oistio-injection
e o rótulo de revisão, todos os comandoskubectl label
na documentação do Anthos Service Mesh incluem a remoção do rótuloistio-injection
Se você também implantou o plano de dados gerenciado pelo Google opcional, anote o namespace
demo
da seguinte maneira:kubectl annotate --overwrite namespace YOUR_NAMESPACE \ mesh.cloud.google.com/proxy='{"managed":"true"}'
Como fazer o download e implantar a amostra
Agora que a injeção automática está ativada no namespace demo
, os proxies sidecar
são injetados junto de cada serviço quando você implantar os serviços do aplicativo
BookInfo.
Instale
kpt
caso ainda não tenha feito isso:gcloud components install kpt
Faça o download da amostra usando
kpt
:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Implante a amostra no cluster:
kubectl apply -n demo -f online-boutique
Encontre o endereço IP externo do serviço
frontend-external
:kubectl get service frontend-external -n demo
Acesse o aplicativo no navegador para confirmar a instalação:
http://EXTERNAL_IP/
Para o GKE, é possível explorar os recursos de observabilidade do Anthos Service Mesh no Console do Cloud. Pode levar até 10 minutos para o gráfico de topologia exibir os serviços na malha.
Quando terminar de explorar, remova a amostra Online Boutique:
kubectl delete namespaces demo