Neste repositório apresento o resultado do encapsulamento de uma aplicação construída em Python e MongoDB em um Container Docker e posteriormente realizando o deploy/implantação da aplicação em um ambiente Kubernetes.
O arquivo de encapsulamento Dockerfile segue uma configuração básica, cujo o principal objetivo é demonstra a facilidade na configuração, distribuição e execução de uma aplicação encapsulada em containers.
Há diversos benefícios em encapsular uma aplicação em container, mas o principal é a portabilidade, já que o projeto pode ser executado em qualquer máquina que possua o Docker instalado, tornando a Aplicação independente de SO e/ou qualquer outra configuração/instalação.
De forma análoga, segue o arquivo de manifesto na linguagem YAML, exemplificado a realização do deploy no Kubernetes de forma declarativa.
O Kubernetes é um orquestrador de containers, que automatiza a gerencia de aplicações em containers, auxiliando na implantação e dimensionamento dos containers, nos processos de garantia de disponibilidade, balanceamento de carga e escalabilidade das aplicações nos containers.
Este repositório é parte da atividade prática da Aula 02 do Curso Iniciativa Kubernetes, ocorrido de 28 de março a 01 de abril de 2022, promovido pela Kubedev.io.
Antes de começar, você vai precisar ter instalado em sua máquina os seguintes recursos:
- Git;
- Docker;
- K3D; e
- Kubectl CLI.
Para testarmos a aplicação, temos que executar os 6 passos a seguir:
- Fazer download do Projeto
- Criar Imagem Docker
- Enviar Imagem ao seu DockerHub
- Criar Cluster Kubernetes
- Aplicar Manifesto Kubernetes
- Acessar a Aplicação
- Baixe este Repositório, executando o comando Git:
git clone https://github.com/aguiardafa/rotten-potatoes
- Acesse a pasta
src
do Repositório pelo terminal de comandos; - Execute o comando abaixo para criar a imagem Docker do projeto:
docker image build -t <seu-username-dockerhub>/rotten-potatoes:v1 .
- Ainda pelo terminal, aberto na raiz da pasta
src
do Repositório, primeiramente execute o comando para realizar o login no Docker Hub:
docker login
- Obs.: Você deverá realizar login com suas credenciais do Docker Hub.
- Após logado, execute de envio da imagem criada para seu repositório de imagens no DockerHub:
docker push <seu-username-dockerhub>/rotten-potatoes:v1
- Execute o comando abaixo, que irá criar e executar o Cluster Kubernetes, expondo o
Load Balance
na porta8080
do computador:
k3d cluster create meucluster --agents 1 --servers 1 -p "8080:30000@loadbalancer"
- Acesse a pasta
k8s
do Repositório pelo terminal de comandos; - Execute o comando abaixo para aplicar os comandos configurados no arquivo
deployment.yaml
, referente ao Manifesto Kubernetes, no Cluster recém criado:
kubectl apply -f deployment.yaml
- Obs.: Antes de aplicar o manifesto, você deverá editar o arquivo na
linha 58
, inserindo o nome da imagem que você enviou ao DockerHub:<seu-username-dockerhub>/rotten-potatoes:v1
.
- Pelo navegador de sua preferência, acesse a url
http://localhost:8080
para visualizar a Aplicação; - Se os passos anteriores foram executados corretamente, a resposta será semelhante a tela abaixo:
Feito por Diego Aguiar 👋 Entre em contato!