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

DataLab Serasa Experian - Aprenda como tirar pr...

Avatar for Valdomiro Valdomiro
February 18, 2019

DataLab Serasa Experian - Aprenda como tirar proveito do kubernetes

Boas praticas e dicas para ter um ambiente produtivo com Kubernetes.

Avatar for Valdomiro

Valdomiro

February 18, 2019
Tweet

More Decks by Valdomiro

Other Decks in Technology

Transcript

  1. O que é Kubernetes? Projeto criado a partir do Google

    como uma plataforma de orquestração de contêineres de código aberto. Criado a partir das lições aprendidas nas experiências de desenvolvimento e execução do Borg e do Omega do Google. Projetado desde o início como uma coleção de componentes fracamente acoplada centrada na implantação, manutenção e dimensionamento de contêineres.
  2. O que Kubernetes faz? Conhecido como o kernel do Linux

    de sistemas distribuídos. Abstrai o hardware e fornece uma interface uniforme para que os contêineres sejam implantados e consumam o pool compartilhado de recursos computacionais. Orquestra e gerencia containers/microservices dentro do cluster de servidores. Fornece alta disponibilidade para os microservices.
  3. Infraestrutura e Escala Todos os serviços dentro do Kubernetes possuem

    nativamente load balance. Pode aumentar e diminuir dinamicamente seus nodes/servidores Executa Blue Green e Canary
  4. Saúde dos Containers Eu quero 3 instâncias saudáveis de redis

    para estar sempre em execução. Tudo bem, garantirei que haja sempre três instâncias em funcionamento. Percebi que uma instância morreu, vou tratar de subir uma nova agora.
  5. O que o Kubernetes pode fazer? Autoscale Containers/ microservices Blue/Green

    Deployments Executar/agendar execuções de microservices Gerenciar Microservices com ou sem estados Fácil integração com aplicações de terceiros
  6. Informações gerais do projeto Mais de 47,000 estrelas no Github

    Mais de 1900 colaboradores do K8s Core Repositório mais discutido por uma grande margem Mais de 50.000 usuários na equipe do Slack
  7. Funcionalidades • Replicação de containers entre diferentes nodes para garantir

    alta disponibilidade. • Recuperação automática de container quando ele falha por qualquer motivo. • Autoescala de container com base em métricas de cluster Kubernetes, como o consumo de CPU. • Liberação de deployments e rollbacks de deployment. • Descoberta de serviço. Isso é bom para deploying de microsserviços. • Balanceamento de carga e gerenciamento de volume. • Verificações da saúde do container. • Isolamento de recursos lógicos usando Namespaces. • Controle de recursos e cotas por Namespaces. • Gerenciando tarefas cron.
  8. O que é um Kubernetes Master? • ETCD: é uma

    base de dados de chave valor. Ele armazena os dados de configuração do cluster e o estado do cluster; • API Server: fornece API kubernetes usando Jason. Estados de objetos da API são armazenados no ETCD, e o kubectl usa o API Serve para se comunicar com o cluster; • Controller Manager: monitora os controladores de replicação e cria os pods para manter o estado desejado; • Scheduler: é responsável por executar as tarefas de agendamento, como execução de contêineres nos minions com base na disponibilidade de recursos.
  9. Com o que devemos preocupar? Separação em Namespace Secrets (Evitar

    acesso dos devs as keys) Limites de recursos CPU/Memória Se possível, monitoramento fora do Cluster Persistent Volumes HPAs bem definidas Health Check Microservices/Se rviços Evitar exposição Service com LoadBalancer Container Registry (Sem latências)
  10. Links Kubernetes - kubernetes.io MiniKube - kubernetes.io/docs/setup/minikube Play with Kubernetes

    - labs.play-with-k8s.com CNCF Certificações - cncf.io/certification/cka Cursos - training.linuxfoundation.org/training/kubernetes-fundamentals