O Kubernetes executa aplicativos em contêineres em um cluster de máquinas e os mantém no estado que você descreve. Ele faz isso colocando o trabalho nas máquinas certas, roteando o tráfego para os lugares certos e observando falhas e mudanças.
O fluxo básico
1. Você descreve o que quer executar
A maioria das cargas de trabalho do Kubernetes começa como um “estado desejado” declarado (o que deve estar em execução, quantas cópias e como elas devem ser expostas). O Kubernetes foi projetado com configuração declarativa e automação.
2. O Kubernetes decide onde isso deve ser executado
O Kubernetes agenda contêineres nas máquinas do cluster com base nos recursos de computação disponíveis e no que cada contêiner precisa. Os contêineres são executados dentro de Pods, que é a unidade que o Kubernetes coloca em uma máquina.
3. O Kubernetes fica verificando a realidade em relação ao seu estado desejado
Os controllers monitoram o cluster e trabalham para aproximar o estado atual do estado desejado, usando o servidor da API para fazer mudanças.
Agendamento de contêineres e gerenciamento diário
Agendamento é a pergunta: “onde isso deve ser executado?” decisão.
1. Os Pods são agendados, não os contêineres individuais
O Kubernetes agrupa contêineres em pods e depois coloca esses pods em máquinas.
2. O agendador atribui os Pods a um nó adequado
O kube-scheduler procura pods que ainda não estão atribuídos e seleciona um nó para eles.
3. Os agentes do nó mantêm os Pods em execução
Em cada nó, o kubelet garante que os Pods estejam em execução (incluindo seus contêineres).
Balanceamento de carga e descoberta de serviços
Contêineres e pods podem ser criados, movidos ou substituídos, então os aplicativos precisam de maneiras estáveis de se encontrar.
A descoberta de serviços e o balanceamento de carga são comportamentos integrados
O Kubernetes gerencia a descoberta de serviços e usa balanceamento de carga para que o tráfego possa ser roteado mesmo quando os Pods mudam ao longo do tempo.
Os Serviços fornecem um endereço estável para um conjunto de pods que muda
A API de Serviço fornece um endereço IP ou nome de host estável para um serviço com suporte de um ou mais Pods, e o Kubernetes acompanha os Pods de back-end por meio de objetos EndpointSlice.
As rotas de tráfego são atualizadas conforme os Pods mudam
Quando os Pods por trás de um serviço mudam, o roteamento do serviço se ajusta para que o tráfego continue chegando ao back-end atual.
Dimensionamento de aplicativos (e por que o “estado desejado” importa)
O Kubernetes pode dimensionar cargas de trabalho para o estado que você definiu, inclusive com base no uso de computação.
Veja algumas ideias comuns de escalonamento:
Mais réplicas (mais pods) para lidar com uma demanda mais alta.
Menos réplicas quando a demanda cai.
Controle de recursos para que as decisões de posicionamento reflitam as necessidades de CPU e memória.
Isso se conecta ao modelo de “estado desejado”: você define a meta, e os controladores continuam trabalhando para chegar lá.
Autocorreção: o que acontece quando algo falha
O Kubernetes inclui comportamentos de autorrecuperação que ajudam a manter a integridade e a disponibilidade da carga de trabalho. Isso inclui:
Reiniciando contêineres com falha (reinicializações no nível do contêiner).
Substituindo Pods com falha para manter o número solicitado de réplicas (substituição de réplica).
Reagendamento de cargas de trabalho quando os nós ficam indisponíveis.
Removendo pods com falha dos pontos de extremidade de serviço para que o tráfego vá apenas para pods íntegros (balanceamento de carga para serviços).
A autorrecuperação verifica a integridade dos contêineres e os reinicia ou replica quando surgem problemas.
A função dos KPIs do Kubernetes
Indicadores-chave de desempenho (KPIs, ou métricas) são usados para entender a saúde do cluster e o comportamento da carga de trabalho.
De onde vêm os KPIs
Os componentes do sistema do Kubernetes emitem métricas (no formato do Prometheus) que são úteis para painéis e alertas.
As métricas geralmente ficam disponíveis em um endpoint HTTP /metrics do componente, incluindo componentes como kube-apiserver, kube-scheduler, kubelet, kube-proxy e kube-controller-manager.
Exemplos do que os KPIs ajudam você a identificar
Sinais de integridade do cluster (padrões de erro e métricas no nível do componente)
Estabilidade da carga de trabalho (por exemplo, reinicializações ou substituições frequentes)
Pressão de capacidade (alocação de recursos versus demanda, vinculada a decisões de dimensionamento)
Por que isso importa nas operações do dia a dia
O monitoramento dá às equipes uma visão mais completa dos recursos do cluster, da API do Kubernetes, dos contêineres e dos logs, o que encurta o loop de feedback entre problemas e correções.