arrow_back

Awwvision: API Cloud Vision em um cluster do Kubernetes

Awwvision: API Cloud Vision em um cluster do Kubernetes

45 minutos 5 créditos

GSP066

Laboratórios autoguiados do Google Cloud

Visão geral

O laboratório Awwvision usa o Kubernetes e a API Cloud Vision para demonstrar o uso da API Vision para classificar (rotular) imagens do subreddit /r/aww do Reddit e mostrar os resultados rotulados em um app da Web.

O Awwvision tem estes três componentes:

  1. Uma instância simples do Redis

  2. Um app da Web que exibe os rótulos e as imagens associadas

  3. Um worker que coleta imagens no Reddit e as classifica usando a API Vision. O Cloud Pub/Sub é usado para coordenar tarefas entre várias instâncias de worker.

Configuração e requisitos

Configuração do Qwiklabs

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud ficarão disponíveis.

Este laboratório prático do Qwiklabs permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você receberá novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

O que é necessário

Para fazer este laboratório, você precisa ter:

  • acesso a um navegador de Internet padrão (recomendamos o Chrome);
  • tempo para concluir as atividades.

Observação: não use seu projeto ou sua conta do Google Cloud neste laboratório.

Observação: se estiver usando um dispositivo Chrome OS, abra uma janela anônima para executar o laboratório.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento. No painel Detalhes do laboratório à esquerda, você verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    Dica: coloque as guias em janelas separadas lado a lado.

    Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. Acesse as próximas páginas:

    • Aceite os Termos e Condições.
    • Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
    • Não se inscreva em testes gratuitos.

Depois de alguns instantes, o console do GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Ative o Google Cloud Shell

O Google Cloud Shell é uma máquina virtual com ferramentas de desenvolvimento. Ele conta com um diretório principal permanente de 5 GB e é executado no Google Cloud. O Google Cloud Shell permite acesso de linha de comando aos seus recursos do GCP.

  1. No Console do GCP, na barra de ferramentas superior direita, clique no botão Abrir o Cloud Shell.

    Ícone do Cloud Shell

  2. Clique em Continue (continuar):

    cloudshell_continue

Demora alguns minutos para provisionar e conectar-se ao ambiente. Quando você está conectado, você já está autenticado e o projeto é definido como seu PROJECT_ID . Por exemplo:

Terminal do Cloud Shell

gcloud é a ferramenta de linha de comando do Google Cloud Platform. Ele vem pré-instalado no Cloud Shell e aceita preenchimento com tabulação.

É possível listar o nome da conta ativa com este comando:

gcloud auth list

Saída:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

É possível listar o ID de projeto com este comando:

gcloud config list project
	

Saída:

[core]
project = <project_ID>
	

Exemplo de saída:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

Crie um cluster do Kubernetes Engine

Neste laboratório, você usará o gcloud, que é a ferramenta de linha de comando do Google Cloud, para configurar um cluster do Kubernetes Engine. Você pode especificar quantos nós quiser, mas pelo menos um é necessário. O escopo do Cloud Platform é usado para permitir acesso ao Pub/Sub e às APIs Vision.

No Cloud Shell, execute o seguinte para criar um cluster na zona us-central1-a:

gcloud config set compute/zone us-central1-a

Em seguida, inicie o cluster executando isto:

gcloud container clusters create awwvision \
    --num-nodes 2 \
    --scopes cloud-platform

Teste a conclusão da tarefa

Clique em Verificar meu progresso para analisar a tarefa realizada. Se você tiver criado com sucesso um cluster de Kubernetes, verá uma pontuação de avaliação.

Crie um cluster do Kubernetes Engine.

Execute o seguinte comando para usar as credenciais do contêiner:

gcloud container clusters get-credentials awwvision

Use a ferramenta de linha de comando kubectl para ver se tudo está funcionando:

kubectl cluster-info

Crie um ambiente virtual

Os ambientes virtuais do Python servem para isolar a instalação de pacotes do sistema.

apt-get install -y virtualenv
Se aparecer [Y/n], pressione Y e depois Enter. Se você receber o erro Permissão negado, execute o comando sudo apt-get install -y virtualenv
python3 -m venv venv

Ative o ambiente virtual.

source venv/bin/activate

Receba a amostra

Agora adicione dados de amostra ao seu projeto executando o seguinte:

gsutil -m cp -r gs://spls/gsp066/cloud-vision .

Implante a amostra

No Cloud Shell, mude para o diretório python/awwvision no repositório cloud-vision clonado:

cd cloud-vision/python/awwvision

No diretório awwvision, execute make all para criar e implantar tudo:

make all

Como parte do processo, as imagens do Docker serão criadas e carregadas no registro de contêiner privado do Google Container Registry. Além disso, os arquivos yaml serão gerados a partir de modelos, preenchidos com informações específicas do seu projeto e usados para implantar os recursos redis, webapp e worker do Kubernetes para o laboratório.

Verifique os recursos do Kubernetes no cluster

Após a implantação, verifique se os recursos do Kubernetes estão funcionando.

Primeiro, liste os pods executando o seguinte:

kubectl get pods

Você verá algo parecido com o seguinte, embora os nomes dos pods sejam diferentes. Verifique se todos os pods têm o status "Running" antes de executar o próximo comando.

NAME                     READY     STATUS    RESTARTS   AGE
awwvision-webapp-vwmr1   1/1       Running   0          1m
awwvision-worker-oz6xn   1/1       Running   0          1m
awwvision-worker-qc0b0   1/1       Running   0          1m
awwvision-worker-xpe53   1/1       Running   0          1m
redis-master-rpap8       1/1       Running   0          2m

Em seguida, liste as implantações executando o seguinte:

kubectl get deployments -o wide

Você verá o número de réplicas especificadas para cada e as imagens usadas.

NAME               READY   UP-TO-DATE   AVAILABLE   AGE       CONTAINERS         IMAGES                                 SELECTOR
awwvision-webapp   1/1     1            1           1m        awwvision-webapp   gcr.io/your-project/awwvision-webapp   app=awwvision
awwvision-worker   3/3     3            3           1m        awwvision-worker   gcr.io/your-project/awwvision-worker   app=awwvision
redis-master       1/1     1            1           1m        redis-master       redis                                  app=redis

Após a implantação, descubra o endereço IP externo do serviço do app da Web executando o seguinte:

kubectl get svc awwvision-webapp

Pode demorar alguns minutos para que o IP externo atribuído seja listado na resposta. Você verá algo parecido com o seguinte, embora seus IPs sejam diferentes.

NAME               TYPE          CLUSTER_IP      EXTERNAL_IP    PORT(S)         AGE
awwvision-webapp   LoadBalancer  10.163.250.49   23.236.61.91   80:31925/TCP    13m

Teste a conclusão da tarefa

Clique em Verificar meu progresso para analisar a tarefa realizada. Se você implementou com sucesso o aplicativo de amostra, verá uma pontuação de avaliação.

Implante a amostra

Visite seu novo app da Web e inicie o respectivo rastreador

Copie e cole o IP externo do serviço awwvision-webapp em um novo navegador para abrir o app da Web. Depois, clique no botão Start the Crawler.

Agora, clique em go back para ver as imagens do subreddit /r/aww classificadas pelos rótulos fornecidos pela API Vision. Você verá algumas das imagens classificadas várias vezes, quando vários rótulos forem detectados para elas. Você poderá atualizar mais tarde, caso tenha aberto a página antes de o rastreador terminar.

Seus resultados serão parecidos com estes:

app_dashboard.png

Teste seu conhecimento

Responda às perguntas de múltipla escolha a seguir para entender melhor os conceitos abordados neste laboratório. Use todo o conhecimento adquirido até aqui.

Parabéns

ml_quest_icon.png Solutions_Kubernetes-125.png ML-ML-Infrastructure-badge.png

Termine a Quest

Este laboratório autoguiado faz parte da Quest Machine Learning APIs, Kubernetes Solutions e Advanced ML: ML Infrastructure do Qwiklabs. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Concluir esta Quest dá a você o selo acima como reconhecimento pela sua conquista. Você pode publicar os selos e incluir um link para eles no seu currículo on-line ou nas redes sociais. Caso você já tenha feito este laboratório, inscreva-se em uma Quest para ganhar os créditos de conclusão imediatamente. Veja outras Quests do Qwiklabs.

Comece o próximo laboratório

Faça outro laboratório sobre APIs de machine learning, por exemplo, Como executar servidores dedicados de jogos no Google Kubernetes Engine ou Testes de carga distribuídos usando o Kubernetes.

Próximas etapas

Treinamento e certificação do Google Cloud

...ajuda você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações ajudam você a validar e comprovar suas habilidades e conhecimentos das tecnologias do Google Cloud.

Manual atualizado em 12 de abril de 2022
Laboratório testado em 12 de abril de 2022

Copyright 2020 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.