Kubernetes é uma plataforma de orquestração de contêineres open source criada pelo Google para gerenciar containers de forma automática e escalável. Ele provê alta disponibilidade, balanceamento de carga e auto-escala para containers/microservices. Kubernetes também permite implantações blue-green e canary para gerenciar atualizações de software de forma segura.
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
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.
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)
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.
Aqui comentar o que fazemos e como foi meu trabalho
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.
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.
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
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
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.
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.
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.
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.
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”
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.
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.
Falar sobre historia e o basico do K8s
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
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
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.
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.
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.