Skip to content

Encapsulando uma aplicação Python/MongoDB em um Container Docker e Implantando em um Cluster Kubernetes.

Notifications You must be signed in to change notification settings

aguiardafa/rotten-potatoes

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Conteirizando sua aplicação Python/MongoDB e Implantando em Cluster Kubernetes

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.

Iniciativa Kubernetes - Aula 02:

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.

🛒 Requisitos do Projeto:

Antes de começar, você vai precisar ter instalado em sua máquina os seguintes recursos:

📀 Executando o Projeto:

Para testarmos a aplicação, temos que executar os 6 passos a seguir:

  1. Fazer download do Projeto
  2. Criar Imagem Docker
  3. Enviar Imagem ao seu DockerHub
  4. Criar Cluster Kubernetes
  5. Aplicar Manifesto Kubernetes
  6. Acessar a Aplicação

1. Fazer download do Projeto

  • Baixe este Repositório, executando o comando Git:
git clone https://github.com/aguiardafa/rotten-potatoes

2. Criar Imagem Docker do Projeto

  1. Acesse a pasta src do Repositório pelo terminal de comandos;
  2. Execute o comando abaixo para criar a imagem Docker do projeto:
docker image build -t <seu-username-dockerhub>/rotten-potatoes:v1 .

3. Enviar Imagem Docker do Projeto ao seu Repositório no DockerHub

  1. 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.
  1. 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

4. Criar Cluster Kubernetes

  1. Execute o comando abaixo, que irá criar e executar o Cluster Kubernetes, expondo o Load Balance na porta 8080 do computador:
k3d cluster create meucluster --agents 1 --servers 1 -p "8080:30000@loadbalancer"

5. Aplicar Manifesto Kubernetes no Cluster criado

  1. Acesse a pasta k8s do Repositório pelo terminal de comandos;
  2. 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.

6. Acessar a Aplicação Python/MongoDB

  1. Pelo navegador de sua preferência, acesse a url http://localhost:8080 para visualizar a Aplicação;
  2. Se os passos anteriores foram executados corretamente, a resposta será semelhante a tela abaixo:

rotten-potatoes

👨‍💻Autor

Diego Aguiar
Feito por Diego Aguiar 👋 Entre em contato!

About

Encapsulando uma aplicação Python/MongoDB em um Container Docker e Implantando em um Cluster Kubernetes.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • SCSS 40.7%
  • CSS 35.1%
  • HTML 16.1%
  • Python 6.7%
  • Other 1.4%