$30 off During Our Annual Pro Sale. View Details »

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. Kubernetes
    Escalando seus microservices de forma eficiente

    View Slide

  2. whoami
    /khaosdoctor @_staticvoid
    lsantos.dev
    @khaosdoctor
    lead engineering architect_
    [email protected]

    View Slide

  3. obarra.co
    trainingcenter.io

    View Slide

  4. abcdevelopers.org
    cupom: LSANTOSABCDEV2019

    View Slide

  5. Microservices

    View Slide

  6. Vantagens
    - Rápidos
    - Simples
    - Eficientes
    - Escaláveis
    - Não dependem de uma stack

    View Slide

  7. View Slide

  8. View Slide

  9. Desvantagens - São MUITOS
    - Complexidade cresce com
    quantidade

    View Slide

  10. Mapa de uma arquitetura de microservices

    View Slide

  11. View Slide

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

    View Slide

  13. O que é?
    - Feito para gerenciar
    containers
    - Orquestrador de containers
    - Baseado em clusters
    - Declarativo
    - Possui diversas abstrações

    View Slide

  14. View Slide

  15. Production Ready!

    View Slide

  16. Scale to infinity

    View Slide

  17. Como funciona?

    View Slide

  18. Primeiro: Temos um cluster

    View Slide

  19. Segundo: O Master
    Kubernetes Master
    Scheduler Service
    API Server
    Node Controller
    State storage (etcd)

    View Slide

  20. Terceiro: O Worker
    Kubelet Proxy
    Seu APP

    View Slide

  21. Como interagimos_?

    View Slide

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

    View Slide

  23. O que podemos fazer_?

    View Slide

  24. Workloads!
    Pod
    Deploy
    Stateful Set
    Horizontal Auto Scaler
    Ingress
    ReplicaSet Service
    Secret
    Service Account
    Daemon Set
    Config Map
    Volume Claim
    Chart

    View Slide

  25. Pods
    - Estruturas básicas do
    K8S
    - Podem conter um ou
    mais containers
    - Isolados
    - Volumes compartilhados
    - IP único para todos os
    serviços

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. Hacking time!

    View Slide

  30. /khaosdoctor @_staticvoid
    lsantos.dev
    @khaosdoctor
    bit.ly/k8s-rocks

    View Slide

  31. Gostei! Como
    eu testo?
    - Minikube
    - Micro-k8s
    - Katacoda
    - Play With Kubernetes
    - Azure Kubernetes Service
    - Google Kubernetes Engine
    - AWS EKS

    View Slide

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

    View Slide

  33. referências_
    - https://kubernetes.io/docs/reference/command-line-tools-reference/kubel
    et
    - https://kubernetes.io/docs/tasks/tools/install-kubectl
    - https://kubernetes.io/docs/tutorials/kubernetes-basics/explore/explore-int
    ro
    - https://kubernetes.io/docs/tutorials/kubernetes-basics/expose/expose-intr
    o

    View Slide

  34. /khaosdoctor @_staticvoid
    lsantos.dev @khaosdoctor
    obrigado_

    View Slide

  35. Kubernetes: Tudo Sobre Orquestração de
    Contêineres
    bit.ly/lsantos-kubernetes
    Cupom: LIVROKUBERNETE

    View Slide