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

Kubernetes 101

Kubernetes 101

Uma pequena introdução a Kubernetes e seus componentes

Samuel Birocchi

August 05, 2019
Tweet

Other Decks in Programming

Transcript

  1. Samuel Birocchi • Ex-aluno Eng. de Computação UNICAMP • Presidente

    AAACEC 2012 • Ex-desenvolvedor iFood • Fundador e CTO da GoBots • Gamer nas horas vagas
  2. Afinal, o que é Kubernetes? "Kubernetes is a portable, extensible,

    open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation."
  3. História • Servidores físicos / Datacenters • Mais de uma

    aplicação por servidor = +Riscos • Recursos subutilizados
  4. • Virtualização! Várias máquinas virtuais por servidor • Aplicações rodam

    isoladas (+ segurança) • Mais escalável • Menos custos com hardware • Perfeito História
  5. • Virtualização! Várias máquinas virtuais por servidor • Aplicações rodam

    isoladas (+ segurança) • Mais escalável • Menos custos com hardware • Perfeito História ?
  6. História • Containers! • Todos benefícios de VMs + ◦

    Consistência de ambientes ◦ Desenvolvimento mais ágil ◦ Roda em qualquer OS ◦ Facilidade para criar micro-serviços ◦ E muito mais
  7. Nuvem e escalabilidade $ ssh user@pc1 $ docker run our-app

    $ ssh user@pc2 $ docker run our-app Sucesso!
  8. $ ssh user@pc1 $ docker run our-app $ ssh user@pc2

    $ docker run our-app Várias máquinas + Varios apps + Múltiplos deploys diários = Alto risco de falha $ ssh user@pc3 $ docker run our-app $ ssh user@pc4 $ docker run our-app $ ssh user@pc5 $ docker run our-app $ ssh user@pc6 $ docker run our-app $ ssh user@pc7 $ docker run our-app $ ssh user@pc8 $ docker run our-app
  9. $ ssh user@pc1 $ docker run our-app $ ssh user@pc2

    $ docker run our-app $ ssh user@pc3 $ docker run our-app $ ssh user@pc4 $ docker run our-app Nuvem e escalabilidade
  10. $ ssh user@pc1 $ docker run our-app $ ssh user@pc2

    $ docker run our-app $ ssh user@pc3 $ docker run our-app $ ssh user@pc4 $ docker run our-app Nuvem e escalabilidade
  11. $ ssh user@pc1 $ docker run our-app $ ssh user@pc2

    $ docker run our-app $ ssh user@pc3 $ docker run our-app $ ssh user@pc4 $ docker run our-app Nuvem e escalabilidade
  12. $ ssh user@pc1 $ docker run our-app $ ssh user@pc2

    $ docker run our-app $ ssh user@pc3 $ docker run our-app $ ssh user@pc4 $ docker run our-app Nuvem e escalabilidade
  13. Kubernetes • Descoberta de serviço e balanceamento de carga •

    Orquestração de armazenamento • Rollout e Rollback automatizados • Self-Healing • Gerenciamento de secrets e de configuração
  14. Objetos do Kubernetes: Pods • Menor objeto "deployavel" • Representação

    de processos rodando no cluster • Podem ser efêmeros ou guardar estado • Podem possuir mais de um container (casos especiais)
  15. Objetos do Kubernetes: Deployments • Faz o rollout gradual de

    pods • Scale up ou down facilitado • Faz o update de versão dos pods • Provavelmente o objeto mais popular
  16. Objetos do Kubernetes: Services • Expõe os pods para o

    Cluster/Internet • Responsável pelo balanceamento de carga • Faz o uso de "selectors" para expor os pods
  17. Objetos do Kubernetes: Ingress • Expõe os "services" para o

    Cluster/Internet • Faz o roteamento de requisições (proxy reverso)
  18. Sobre a • Completando 3 anos de empresa HOJE! •

    Fundada por ex-alunos computação Unicamp • Parceria com a Unicamp para desenvolvimento da AI proprietária • Escritório em Barão Geraldo • Temos vagas! [email protected]