Code Monkey home page Code Monkey logo

microservice-demo's Introduction

microservices-samples-4-k8s-workshop

Repositório dos artefatos utilizados em um workshop que apresentei sobre "Introdução ao Kubernetes". Constitui-se de dois projetos em Spring Boot, chamados "microservice-helloworld" e "microservice-welcome" São microserviços que expõem endpoints rest. Projetos do tipo "exemplos" apenas com os insumos necessários para entender como o Kubernetes gerencia aplicações.

microservice-helloworld

Projeto que será a porta de entrada para requisições externas. Durante o processamento da requisição externa, irá invocar o "microservice-welcome", realizar um processamento e devolver a resposta ao cliente.

microservice-welcome

Projeto que ficará disponível apenas para receber requisições de serviços de dentro do cluster. Ou seja, irá receber requisições do "microservice-helloworld" mas não será capaz de receber requisições externas ao cluster.

Visão detalhada do cenário do workshop

alt text

Requisitos para o exercício do workshop

  • JDK 8 ou superior
  • Docker
  • Minikube ou cluster K8s

Comandos úteis

Minikube

  • Excluir instalações anteriores e criar uma nova
minikube delete --all
minikube start
minikube status
  • Utilizar Minikube como repositório Docker (elimina necessidade de fazer "push" das imagens para um repositório externo, como o Dockerhub)
minikube docker-env
eval $(minikube -p minikube docker-env)

Docker

  • Build dos projetos
docker build -t microservice-welcome:v1 .
docker build -t microservice-helloworld:v1 .

Kubernetes

Observação: alguns comandos abaixo utilizam-se das flags:
--dry-run: valida se o comando é válido, porém não efetua a alteração no cluster.
-o yaml: exibe o resultado do comando no formato yaml. Útil para atender necessidades de "Infra as Code"
Ou seja, caso queira efetuar a alteração no cluster, retire estas flags.

  • Criar deployments
kubectl run microservice-welcome --image=microservice-welcome:v1 --port=80 # --dry-run -o yaml
kubectl run microservice-helloworld --image=microservice-helloworld:v1  --port=80 # --dry-run -o yaml
  • Criar/expor deployments como serviços
kubectl expose deploy microservice-welcome --name=microservice-welcome --port=80 --type=ClusterIP # --dry-run -o yaml
kubectl expose deploy microservice-helloworld --name=microservice-helloworld --port=80 --type=NodePort # --dry-run -o yaml
  • Logs e informações
kubectl describe <recurso> 
kubectl logs <pod>

demo-microservice-app

microservice-demo's People

Watchers

Azad, Md Abul Kalam avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.