Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Escalabilidade de serviços com Kubernetes

Lucas Santos
September 11, 2019

Escalabilidade de serviços com Kubernetes

Do you dream with a fast, scalable, stable, available and simple application all the time? Well, this may not be a dream anymore! Let's discuss what Kubernetes is and how we can improve our whole infrastructure using this awesome orchestrator so we never need to worry about scalability and maintenance issues anymore!

Lucas Santos

September 11, 2019
Tweet

More Decks by Lucas Santos

Other Decks in Programming

Transcript

  1. - Criado dentro do Google como uma ferramenta de orquestração

    em 2000 - Primeira versão OSS lançada em 2015 - Mantido pela CNCF, uma parte da Linux Foundation - "Kubernetes" é a palavra grega para "Timoneiro" - Escrito em Go
  2. O que é? - Feito para gerenciar containers - Orquestrador

    de containers - Baseado em clusters - Declarativo - Possui diversas abstrações
  3. Kubectl Nossa caixa de ferramentas universal - Acessa a API

    exposta pelo master - É agnóstico de cluster - Manipula os serviços internos do Kubernetes - Única ferramenta de controle
  4. Workloads! Pod Deploy Stateful Set Horizontal Auto Scaler Ingress ReplicaSet

    Service Secret Service Account Daemon Set Config Map Volume Claim Chart
  5. Pods - Estruturas básicas do K8S - Podem conter um

    ou mais containers - Isolados - Volumes compartilhados - IP único para todos os serviços
  6. Deployments - Agrupam pods em uma estrutura de controle -

    Controlam número de réplicas - Mantém um estado desejado - Controle de falhas - Permitem rolling updates - Gerencia versões diferentes de uma mesma app - Permite upgrades, downgrades e escalabilidade
  7. Services - Grupos de pods em um único IP -

    Regras de acesso a um app - IP fixo imutável para todos os pods (mesmo após crash) - Pode ser utilizado para expor serviços externos
  8. Ingress - Por padrão, todo tráfego externo é bloqueado para

    o cluster - Ingress são regras de acesso para determinados serviços - Possibilidade de criar registros de DNS para acessar através de um host - Permitem implementação de SSL
  9. Gostei! Como eu testo? - Minikube - Micro-k8s - Katacoda

    - Play With Kubernetes - Azure Kubernetes Service - Google Kubernetes Engine - AWS EKS
  10. referências_ - https://github.com/khaosdoctor/palestra-containers-kubernetes - http://bit.ly/microsservicos-monolitos - https://github.com/kubernetes - https://kubernetes.io -

    https://kubernetes.io/docs/setup/minikube - https://microk8s.io - https://aws.amazon.com/pt/eks - https://cloud.google.com/kubernetes-engine - https://azure.microsoft.com/pt-br/services/kubernetes-service - https://labs.play-with-k8s.com - https://www.katacoda.com/courses/kubernetes/playground