SlideShare uma empresa Scribd logo
1 de 34
Valdomiro Bilharvas
CTO Platform Builders
Greek for “pilot” or
“Helmsman of a ship”
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.
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.
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
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.
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
Possui API para implantação
e configuração na grande
maioria de providers!!!
Quem cuida do
Kubernetes?
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
Repositório do Projeto
Será que minha filha curte K8s?
Como é a
Arquitetura?
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.
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.
O que é Kubernetes Node/Minion?
Boas Práticas
Kubernetes em Produção
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)
Namespaces
Secrets
Health
Images
Limites Recursos CPU/Memória
Monitoramento K8s....
Persistent volume
HPAs
Dashboard K8s.
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
Dúvidas?
www.platformbuilders.io
valdomiro.bilharvas@platformbuilders.io
(11) 98101-7253

Mais conteúdo relacionado

Semelhante a Aprenda como tirar proveito do kubernetes

Semelhante a Aprenda como tirar proveito do kubernetes (20)

Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!
 
Workshop kubernetes+kops
Workshop kubernetes+kopsWorkshop kubernetes+kops
Workshop kubernetes+kops
 
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
Construindo APIs REST escaláveis na nuvem com Docker e Kubernetes - DEVPIRA F...
 
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poa
Reduza seu trabalho de gerenciamento do kubernetes   tdc 2018 poaReduza seu trabalho de gerenciamento do kubernetes   tdc 2018 poa
Reduza seu trabalho de gerenciamento do kubernetes tdc 2018 poa
 
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na PráticaKubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
Kubernetes na Nuvem | Minicurso Gratuito - Azure na Prática
 
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
Kubernetes de ponta a ponta: do Pod ao Deployment Automatizado - Janeiro-2020
 
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
Construindo aplicações escaláveis com ASP.NET Core, Docker e o Microsoft Azur...
 
Kontena
KontenaKontena
Kontena
 
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
Orquestrando Containers na Nuvem com o Azure Kubernetes Service - ThorArch #1...
 
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
Construindo aplicações Web escaláveis com Docker e o Microsoft Azure - Azure ...
 
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
Docker + Kubernetes: Turbinando seus projetos Web - Open Source Saturday - Ag...
 
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
Kubernetes - do Pod ao Deployment Automatizado - DevOps Professionals - Janei...
 
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
Docker + Kubernetes + Azure: opções disponíveis para uso de Containers na nuv...
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
 
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
Docker de ponta a ponta - do Desenvolvimento à Nuvem - .NET SP - Outubro-2018
 
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
Docker + Kubernetes: Orquestrando containers e escalando rapidamente suas apl...
 
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
Docker de ponta a ponta: do Desenvolvimento à Nuvem - Azure Talks - Agosto-2018
 
Terraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWSTerraform + Kops + Kubernetes na AWS
Terraform + Kops + Kubernetes na AWS
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
 
kubernetes-devops.pptx
kubernetes-devops.pptxkubernetes-devops.pptx
kubernetes-devops.pptx
 

Aprenda como tirar proveito do kubernetes

  • 1.
  • 3.
  • 4.
  • 5. Greek for “pilot” or “Helmsman of a ship”
  • 6. 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.
  • 7. 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.
  • 8. 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
  • 9. 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.
  • 10. 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
  • 11. Possui API para implantação e configuração na grande maioria de providers!!!
  • 13. 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
  • 15. Será que minha filha curte K8s?
  • 17. 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.
  • 18. 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.
  • 19. O que é Kubernetes Node/Minion?
  • 21. 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)
  • 29. HPAs
  • 31. 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
  • 33.

Notas do Editor

  1. Comentar sobre minha BIO: CTO na Platform Builders, com mais de 18 anos de experiência em desenvolvimento e arquitetura de software, devops e infraestrutura cloud, nos últimos 5 anos estive mais focado em arquitetura de software, cloud e devops, tive oportunidades de trabalhar em várias empresas/projetos bacanas, sendo eles, Amil, Alelo, Cielo, Redecard (RedePay), CI&T, Itaú, Pernambucanas, Portocred, Conductor, grupo Iguatemi, meu novo desafio na Builders é buscar novidades no mercado Cloud e aplicar em nossos cases/clientes.
  2. Aqui comentar o que fazemos e como foi meu trabalho
  3. O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes: k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, mas que suporta outros sistemas de container, como o Rocket e CRI, por exemplo, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  4. O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes: k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, mas que suporta outros sistemas de container, como o Rocket e CRI, por exemplo, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  5. There’s a phrase called Google-scale. This was developed out of a need to scale large container applications across Google-scale infrastructure borg is the man behind the curtain managing everything in google Kubernetes is loosely coupled, meaning that all the components have little knowledge of each other and function independently. This makes them easy to replace and integrate with a wide variety of systems
  6. linux kernel of distributed systems Sort of like a hypervisors, in that it abstracts away the underlying host resources and shares them in a normalized way. the underlying substrate or platform to build your applications and tools on top of Think of Kubernetes like a higher-level language for your application architecture. you describe what you need and it tries to resolve it with that in mind, it acts as an engine to resolve state using the abstracted resources to deploy and manage your application. It is declarative, and not imperative. You tell it or “declare” what you want, and it figures out the rest. imperative you tell something every step you want it to do declarative you tell it what you want it to be, and it figures it out e.g. ‘I want 5 instances of x’ and it just does it, if something dies, it brings it back to get to 5
  7. O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes: k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, mas que suporta outros sistemas de container, como o Rocket e CRI, por exemplo, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  8. O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes: k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, mas que suporta outros sistemas de container, como o Rocket e CRI, por exemplo, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  9. O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes: k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, mas que suporta outros sistemas de container, como o Rocket e CRI, por exemplo, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  10. O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes: k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, mas que suporta outros sistemas de container, como o Rocket e CRI, por exemplo, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  11. CNCF is a sub-foundation of the Linux Foundation A vendor neutral entity to manage “cloud native” projects Projects that are “cloud native” generally focus on: containers dynamic orchestration enable “microservice” deployment methodologies can be logging, monitoring, containerizers etc Kubernetes was the first project under the CNCF, and the first to be “graduated”
  12. O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes: k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, mas que suporta outros sistemas de container, como o Rocket e CRI, por exemplo, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  13. O Kubernetes, ou K8s (um trocadilho com o nome Kubernetes: k + 8 caracteres + s) ou “kube”, para aqueles que já estão mais íntimos, Em outras palavras, o Kubernetes é uma ferramenta de código aberto usada para orquestrar e gerenciar clusters de containers. Só que aqui o cluster são várias máquinas com um engine de container, que no nosso caso e na maioria de todos os casos é o Docker, mas que suporta outros sistemas de container, como o Rocket e CRI, por exemplo, a engine mais usada para esse trabalho de provisionar os containers nos hosts do cluster. O Kubernetes entra aqui para gerenciar esses hosts e executar demandas que são recebidas pelo cluster. Muita gente ainda tem dúvida ou faz confusão tentando comparar Docker e Kubernetes, mas a comparação correta seria “Docker Swarm” e Kubernetes, ambas ferramentas de orquestração de cluster. O Kubernetes usa o Docker para criar os containers nos nós do cluster. O trabalho dele aqui é gerenciar, controlar e monitorar o estado desses containers ao longo do cluster. Um pouco de história O Kubernetes foi criado e desenvolvido pelos engenheiros da Google, uma dos pioneiros no desenvolvimento da tecnologia de containers. A Google já revelou que executa alguns dos seus serviços em containers, como Google Docs e Gmail, por exemplo, e tem alguns números surreais: são mais de 2 bilhões de implantações de contêineres por semana, que são viabilizadas por uma plataforma interna chamada Borg, antecessor do Kubernetes e que serviu como base para seu desenvolvimento. Em 2015 o Kubernetes foi doado para a “Cloud Native Computing foundation” e Linux Foundations, e se tornou um projeto Open Source. Uma curiosidade sobre o Kubernetes é que os sete raios do logotipo fazem referência ao nome original do projeto, “Project Seven of Nine” (Projeto Sete de Nove). A palavra Kubernetes vem da palavra grega, que representa a pessoa que pilota o navio.
  14. Falar sobre historia e o basico do K8s
  15. Estrutura do Kubernetes O Kubernetes possui alguns termos e componentes para determinadas funções e tarefas. Inicialmente pode parecer confuso e não fazer muito sentido alguns desses componentes, mas ao começar a usar o Kubernetes e a entender a forma como ele trabalha fica mais fácil saber o que cada carinha desse faz. Antes deles, porém, vamos falar sobre como é a estrutura do cluster. Até aqui é bem parecido com o Swarm, no qual temos os Masters e os nós Workes, que aqui chamávamos de “Minions“. Esse conceito não é mais usado, mas ainda pode ser encontrado em alguns artigos e documentações mais antigas. Minions = nodes ou worker Master, por sua vez, é a máquina que controla os nós do Kubernetes. É nela que todas as atribuições de tarefas do cluster se originam. No Master temos todos os componentes rodando, assim: O Kubernetes possui um conjunto de excelentes recursos que são muito úteis, especialmente quando falamos de ambientes de produção: Replicação de containers entre diferentes nós 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
  16. Estrutura do Kubernetes O Kubernetes possui alguns termos e componentes para determinadas funções e tarefas. Inicialmente pode parecer confuso e não fazer muito sentido alguns desses componentes, mas ao começar a usar o Kubernetes e a entender a forma como ele trabalha fica mais fácil saber o que cada carinha desse faz. Antes deles, porém, vamos falar sobre como é a estrutura do cluster. Até aqui é bem parecido com o Swarm, no qual temos os Masters e os nós Workes, que aqui chamávamos de “Minions“. Esse conceito não é mais usado, mas ainda pode ser encontrado em alguns artigos e documentações mais antigas. Minions = nodes ou worker Master, por sua vez, é a máquina que controla os nós do Kubernetes. É nela que todas as atribuições de tarefas do cluster se originam. No Master temos todos os componentes rodando, assim: O Kubernetes possui um conjunto de excelentes recursos que são muito úteis, especialmente quando falamos de ambientes de produção: Replicação de containers entre diferentes nós 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
  17. Master, por sua vez, é a máquina que controla os nós do Kubernetes. É nela que todas as atribuições de tarefas do cluster se originam. No Master te Agora vamos aos componentes, ou os serviços que sobem na máquina Master para manter o estado desejado dos nossos serviços no cluster. São quatro: 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. Kubectl é um utilitário de linha de comando que se conecta ao servidor API, usado pelos administradores para criar pods, deployments, serviços etc. Esse cara vamos usar bastante para gerenciar nosso cluster. Workes é o nome dado para cada host do cluster (nós ou nodes). São as máquinas que realizam as tarefas solicitadas.
  18. Kubelet: agente que é executado em cada nó worker, se conecta ao Docker e cuida da criação, execução e exclusão de contêineres; Docker: nem preciso nem falar muito, né? É responsável por rodar e executar os containers, só que quem vai solicitar é o Kubernetes; Kube-Proxy: encaminha o tráfego para os contêineres apropriados com base no endereço IP e no número da porta da solicitação recebida. Além desses, ainda temos alguns conceitos que são interessantes ter em mente no Kubernetes: Pod, que pode ser definido como um grupo de contêineres que são implantados em um único nó de trabalho. É a menor unidade dentro de um cluster Kubernetes e nada mais é do que containers rodando dentro de seu cluster de Kubernetes. Pode ser um container rodando nginx, php, apache, etc. Pod é a abstração de containers, pode ter um ou mais containers em um Pod e posso ter vários Pods dentro de cada nó. Replication Controller é o responsável por manter um número determinado de pods em execução. É no RC que você diz quantos containers você deseja que fiquem rodando para atender determinado serviço, e caso um caia o RC outra instância é criada automaticamente. Por exemplo: em três réplicas do Nginx, o RC fica responsável por garantir o estado desse serviço, e caso um caia o RC sobe outro automaticamente. Services é o responsável por atrelar uma faixa de IP para um determinado RC. Cada vez que o RC cria uma nova instância de pod, ele inicia com um IP determinado pelo service. Services vai ser o ponto de entrada dos nossos serviços. Com o Namespace você pode dividir seu Cluster de Kubernetes em dois ambientes, como Produção e Teste, por exemplo, podendo limitar os recursos computacionais para ambos.
  19. Kubernetes Liveness and Readiness Probes Kubernetes uses liveness probes to know when to restart a container. If a container is unresponsive—perhaps the application is deadlocked due to a multi-threading defect—restarting the container can make the application more available, despite the defect. It certainly beats paging someone in the middle of the night to restart a container.[1] Kubernetes uses readiness probes to decide when the container is available for accepting traffic. The readiness probe is used to control which pods are used as the backends for a service. A pod is considered ready when all of its containers are ready. If a pod is not ready, it is removed from service load balancers. For example, if a container loads a large cache at startup and takes minutes to start, you do not want to send requests to this container until it is ready, or the requests will fail—you want to route requests to other pods, which are capable of servicing requests.