- Implantar o projeto de contêiner em um cluster Kubernetes.
- Criar um vídeo de até 15 minutos apresentando o diagrama de implantação e realizando as tarefas a seguir.
- Um membro da equipe fará a explicação no vídeo, mantendo a câmera ligada e visível durante a gravação.
- Criar um diagrama de implantação dos componentes e de como se comunicam, considerando o acesso do usuário e a arquitetura com Kubernetes, evidenciando todos os recursos criados no cluster.
- Criar um novo cluster com um único nó.
- Utilizar a mesma aplicação do trabalho 1.
- Criar um Deployment dedicado para o frontend com 3 réplicas em um namespace
frontend. Utilizar um ConfigMap dedicado para variáveis de ambiente. O frontend deve acessar o backend via Service. - Criar um Deployment dedicado para o backend com 2 réplicas em um namespace
backend. Utilizar um ConfigMap dedicado para variáveis de ambiente. O backend deve acessar o banco de dados via Service. - Criar um Deployment dedicado para o banco de dados com 1 réplica em um namespace
database. Utilizar um ConfigMap para variáveis de ambiente e um Volume persistente para manter os dados do banco em caso de reinício. - O frontend deverá ser exposto via Service do tipo NodePort.
- Realizar o port-forward para acesso ao cluster.
- Todos os recursos do cluster devem possuir manifestos próprios.
Para auxiliar na visualização da arquitetura e comunicação entre os componentes do cluster, utilize o diagrama de referência abaixo como base:
graph LR
subgraph frontend [Namespace: frontend]
F[Frontend Pod 1]
F2[Frontend Pod 2]
end
subgraph backend [Namespace: backend]
B[Backend Pod]
end
subgraph database [Namespace: database]
D[(PostgreSQL + PVC)]
end
F -->|Service: backend-svc| B
B -->|Service: db-svc| D
O diagrama deve ser adaptado conforme a aplicação de cada grupo, destacando namespaces, Services e Deployments.
- Realizar um cenário de teste funcional (end-to-end) na aplicação, demonstrando-a funcionando sem erros a partir de um navegador web (fora do cluster).
- Reduzir o número de réplicas do backend para zero. Em seguida, escalar novamente o backend para duas réplicas.
- Reduzir o número de réplicas do banco de dados para zero. Realizar um teste end-to-end. Em seguida, escalar o banco de dados novamente para uma réplica.
- Realizar um novo teste end-to-end, demonstrando a aplicação sem erros.
- Exportar os logs de cada Deployment (frontend, backend, database) em arquivos
.txtseparados dentro do diretóriokubernetes/logs, após o teste funcional.
Antes de finalizar a gravação, confirme os seguintes pontos:
# Verificar se os pods estão ativos em todos os namespaces
kubectl get pods -A
# Verificar se os services estão funcionando e expostos corretamente
kubectl get svc -A
# Verificar volumes e claims
kubectl get pvc,pv -A
# Verificar namespaces criados
kubectl get namespaces
# Verificar se os logs estão sendo gerados corretamente
kubectl logs -f deploy/<nome-do-deployment>Demonstre esses comandos no vídeo para comprovar o funcionamento e a comunicação entre os componentes.
- Explicar todos os manifestos relacionados ao frontend (por exemplo: Deployment, Service, ConfigMap).
- Explicar todos os manifestos relacionados ao backend (por exemplo: Deployment, Service, ConfigMap).
- Explicar todos os manifestos relacionados ao banco de dados (por exemplo: Deployment, Service, Volume, ConfigMap).
Para garantir que todos os pontos sejam apresentados dentro do tempo limite (até 15 minutos), siga o roteiro sugerido:
| Etapa | Tempo sugerido | Conteúdo |
|---|---|---|
| Introdução | 1–2 min | Apresentar o grupo e o objetivo do trabalho |
| Diagrama de Arquitetura | 2 min | Explicar o diagrama e os namespaces |
| Aplicação dos Manifestos | 4–5 min | Mostrar a aplicação dos YAMLs com kubectl apply |
| Demonstração da Aplicação | 3–4 min | Acesso via navegador ou curl + testes end-to-end |
| Verificações | 2 min | Executar checklist e exibir pods, services e volumes |
| Conclusão | 1–2 min | Destacar o aprendizado e os resultados alcançados |
O vídeo deve priorizar a demonstração prática em terminal e browser, evitando apresentações teóricas longas.
- Não compartilhar o vídeo entre as equipes.
- O código dos manifestos do Kubernetes deverá ser mantido no mesmo repositório da aplicação do projeto 1 (dentro da pasta
kubernetes). - A reutilização de código das aplicações entre equipes contará negativamente na nota.
- A contextualização e estruturação do diagrama de implantação da aplicação.
- A correta criação e configuração do cluster Kind.
- O funcionamento geral da aplicação será avaliado, bem como a listagem e inclusão de registros.
- Ultrapassar o limite de tempo do vídeo resultará em desconto de 1 ponto na avaliação deste trabalho.
| Critério | Peso | Descrição |
|---|---|---|
| Estrutura do cluster | 20% | Todos os recursos aplicados corretamente e funcionando |
| Comunicação entre componentes | 10% | Services configurados corretamente e comunicação funcional |
| Persistência de dados | 20% | Volume e PVC funcionam após restart |
| Clareza e explicação no vídeo | 40% | Apresentação organizada, linguagem clara e demonstração prática |
| Boas práticas e organização | 10% | Uso consistente de labels, namespaces e padrões YAML |
- Realização das tarefas de implantação das aplicações.
- Link para o vídeo com a explicação.
- A apresentação da solução implantada, em funcionamento no cluster, deverá ser gravada em um vídeo de até 15 minutos a ser enviado ao professor.
- Submeter as informações do trabalho (vídeo + repositório) no Trabalho 2 do AVA.
- Utilizar OBS Studio para gravar o vídeo.
- Utilizar o Google Drive (conta
@edu) para salvar e compartilhar o vídeo. - Certificar-se de que todos os manifestos estejam versionados e corretamente aplicáveis via
kubectl apply -f. - Durante o vídeo, demonstrar os logs e o funcionamento real da aplicação dentro do cluster.
A entrega deverá demonstrar o domínio dos conceitos de Deployments, Services, ConfigMaps e Volumes persistentes em Kubernetes, bem como a capacidade de documentar e apresentar a solução de forma clara e estruturada.