Fundamentos Kubernetes e seu modelo de arquitetura

Recentemente, ao iniciar meus estudos para a certificação AZ-204, cai em um assunto que todos nós, estudantes, uma hora iremos encontrar: VM’s, containers e o popular Kubernetes. Algo vago e novo para qualquer desenvolvedor que pouco vê sobre o processo de deployment e infra-estrutura de uma aplicação.

Hoje, quero compartilhar de alguns conceitos que são bases e essenciais para qualquer desenvolvedor que tem interesse na area.

Entendendo os conceitos arquiteturais dos Kubernetes

A primeira vez que bati o olho com aquele universo de termos – clusters, nodes e tantos outros – percebi que a estrada poderia ser longa. Mas na verdade, todos esses conceitos são mais simples do que parecem.

1. Pods

Começando pela unidade mais básica (que, na verdade, não é tão simples assim), temos o Pod. Ele desempenha um papel essencial no Kubernetes, sendo responsável por executar cargas de trabalho de forma declarativa e distribuída. Onde ao ter múltiplas instancias é possível “trocar” logo após uma ser afetada, em uma situação de alta demanda por exemplo, minimizando os impactos.

Para dar um nível de abstração, podemos pensar nos Pods como instâncias das nossas aplicações em nuvem.

2. Containers

Aqui chegamos à segunda camada, é onde o conceito de virtualização começa a se tornar mais claro…

Kubernetes funciona essencialmente como uma plataforma para gerenciar a execução de aplicações empacotadas em imagens de containers (container images).

As container images contêm tudo o que é necessário para a aplicação funcionar: código, bibliotecas, dependências… todo o seu “runtime”.

Com isso em mente, podemos dizer que dentro dos containers do Kubernetes armazenamos nossas imagens, que servem como fonte da execução lógica da aplicação.

3. Nodes

Os Nodes são as máquinas físicas ou virtuais que compõem o cluster do Kubernetes. Eles fornecem os recursos computacionais necessários para executar os Pods, como CPU, memória, rede e armazenamento.

  • kubelet: O agent que se comunica com o Control Plane para garantir que os Pods estejam rodando corretamente no Node.
  • kube-proxy: O serviço de rede que gerencia a comunicação do entre os pods que rodam dentro do node.

lém disso, os Nodes possuem um IP de saída, permitindo a comunicação da aplicação com redes externas.

Em resumo, os Nodes funcionam como a camada física do cluster, garantindo que os Pods tenham os recursos necessários para rodar de maneira eficiente.

4. Clusters

Cluster é a maior camada dentro da arquitetura do Kubernetes. Ele é composto por um Control Plane e um conjunto de Nodes.

Dentro do cluster, podemos ter diferentes serviços rodando ao mesmo tempo, como frontend, backend, bancos de dados… eles serão executados aqui como diferentes Nodes, como dito anteriormente.

Essa é a camada que abrange o control-plane (ou plano de controle) que simplificando é o componente que toma as decisões principais dos clusters e seus recursos, isso incluí:

  • Gerenciamento do estado dos Nodes e aplicações.
  • Distribuição de cargas entre os Pods.
  • Orquestração e automação de tarefas como escalonamento e recuperação de falhas.

Assim como os Nodes, o Control Plane possui componentes específicos que desempenham papéis individuais para garantir o funcionamento do cluster.

Espero que este artigo tenha ajudado você a entender um pouco mais sobre cada parte desse framework, que, apesar de parecer simples, possui grande profundidade.

Também, recomendo o post do nosso Jhonathan Chaves, voltado para iniciantes que precisam voltar uns passos atrás e entender ainda o que é e para que serve os Kubernetes.

Seja o primeiro a comentar

Faça um comentário

Seu e-mail não será divulgado.


*