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

Linux contêineres na unha (7Masters - Containers)

Linux contêineres na unha (7Masters - Containers)

Palestra apresentada no dia 31 de maio de 2018 no evento 7Masters sobre containers em São Paulo. Mostramos rapidamente, afinal eram 7 minutos, um pouco do que são containers, histórico, diferenças dos tipos de virtualização e como que funciona o isolamento dos processos e os recursos utilizados para o tal. No final fizemos uma demonstração disponível em (https://github.com/wsilva/container-from-scratch-demo) montando contêineres usando Go lang

Wellington F. Silva

May 30, 2018
Tweet

More Decks by Wellington F. Silva

Other Decks in Technology

Transcript

  1. Wellington F. Silva contato: @_wsilva nicks: wsilva, boina, tom, fisi

    roles: pai, tec. telecom, programador, sysadmin, instrutor, escritor, php zce, docker community leader, docker certified associate
  2. Agenda • Disclaimers • O que são contêineres Linux •

    O que são Kernel Namespaces • O que são CGroups • O que são Rootfs • Demo
  3. Disclaimer 1 Apesar de acompanhar há 2 anos não sou

    especialista em Golang, fiz poucas coisas e por conta própria.
  4. Disclaimer 2 Palestra inspirada nas talks da Liz Rice (@lizrice)

    e no artigo* de Julian Friedman (@doctor_julz) http://bit.ly/container-golang *
  5. Julian Friedman • Engenheiro líder do Garden (tecnologia de contêineres

    da Cloud Foundry's) • Trabalha para IBM • Defensor do Open Source
  6. Liz Rice • Especialista em segurança de contêineres na Aqua

    Security • Evangelista Go Lang • Ótima ciclista
  7. Tipos de Virtualização • Full Virtualization • Partial Virtualization •

    Paravirtualization • OS Level Virtualization 
 (Docker, rkt, Garden, Guardian, containerD, cri- O)
  8. U nix / C hroot BSD FreeBSD Jails / Solaris

    Zones O penVZ Parallels C groups Process C ontainers AIX / W pars LXC D ocker, rkt, cloud foundry, 
 C ontainerD 1982 2000 2005 2006 2007 2008 >= 2013
  9. Processos • Processo Linux com ID atribuído (PID) • Podem

    ser listados (com ps) dentro do contêiner ou fora (no host)
  10. Processos • Processo Linux com ID atribuído (PID) • Podem

    ser listados (com ps) dentro do contêiner ou fora, no host • Dentro do contêiner o PID=1, fora (no host) vai ter valor alto
  11. Kernel Namespaces • IPC - Interprocess communication • PID -

    Processos • NET- Rede • UTS - Unix timesharing system
  12. Kernel Namespaces • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system • USER - Usuários e grupos
  13. Kernel Namespaces • IPC - interprocess communication • PID -

    Processos • NET- rede • UTS - Unix timesharing system • USER - Usuários e grupos • MNT - Pontos de montagem
  14. CGroups • CPU • Memória • I/O em disco •

    Interface de rede • Hardwares periféricos 
 (pen drives, cameras, etc)
  15. Rootfs • Filesystem é uma hierarquia de diretórios • Rootfs

    é o filesystem base onde os demais sistemas de arquivos são montados
  16. Rootfs • Filesystem é uma hierarquia de diretórios • Rootfs

    é o filesystem base onde os demais sistemas de arquivos são montados • Em linhas gerais é o / (barra) de uma distribuição Linux
  17. Resumo • Processo 
 (é o que roda a aplicação)

    • CGroups e Namespaces 
 (como o processo vai rodar) • Rootfs 
 (onde o processo vai rodar)