Kubernetes: o que é e como funciona

0

Podemos definir Kubernetes como um orquestrador de containers, projetado pelo Google e mantido pela Cloud Native Computing Foundation (CNCF). No entanto, antes de ir mais a fundo no assunto, é necessário entender que as aplicações, num modo geral, evoluíram de enormes monólitos com funções totalmente acopladas e que só funcionam em grandes máquinas físicas com muitos recursos computacionais, para microsserviços que rodam totalmente desacoplados, em um container mínimo e com alta capacidade de crescimento horizontal.

Tal elasticidade que as aplicações conteinerizadas necessitam precisa ser orquestrada para garantir que os thresholds sejam respeitados, por isto não é cabível utilizar apenas algum runtime de containers como o Docker. É necessário também utilizar um orquestrador de containers.

Existem alguns fatores e características específicas que explicam por que o Kubernetes (ou apenas K8S) ganhou tanta expressão no mercado:

Non Lock-In: hoje, o Kubernetes tem versões em cada um dos grandes provedores de nuvem. A AWS, por exemplo, tem EKS, a GCP tem GKE e a Azure tem o AKS. Fora isto, é possível (e muito comum) utilizar o Kubernetes nas respectivas Virtual Machines em um dos provedores ou em todos, sendo orquestrados por ferramentas como Kops ou Juju;

Addons: os addons são o ponto mais importante fator pelo qual o Kubernetes é tão difundido. Isso porque existem diversas aplicações que podem ser instaladas para realizar atividades como captura de logs, geração de certificados SSL (Secure Sockets Layer), monitoração de componentes, trace de requisições, SSO (Single Sign On). O mais interessante é que estes componentes são desenvolvidos pela comunidade e são open-source;

Cases Públicos: das dezenas de cases públicos que podemos citar, alguns dos mais notáveis são o fenômeno Pokémon GO e as aplicações do Google como Gmail e Google Drive. Todos eles são cases enormes, sobretudo o game Pokémon GO, que teve um grande lançamento e precisou crescer de forma violenta para suportar o grande volume de acessos.

Para entender como o Kubernetes funciona, precisamos conhecer os principais componentes de sua arquitetura:

Master: a Master é o cérebro de tudo, é lá que roda a API, o ETCD e os componentes mais importantes, que de fato gerenciam o cluster;

Nodes: Os nodes são os workers, que podem ser Virtual Machines ou máquinas físicas. Eles recebem apenas as instruções das Masters e os acessos às aplicações também são processados através deles. É nos nodes que rodam os Pods;

Pods: os Pods são a menor unidade do Kubernetes, onde rodam os containers. Pode haver mais de um container por Pod;

Deployments: Os deployments são os objetos do K8S que controlam e fazer o deploy dos Pods. No deployment é definido, por exemplo, as imagens docker dos containers, a porta do container, o nome do pod, o namespace em que o pod irá rodar. Pode conter instruções como variáveis de ambiente, mapeamento de volumes e tags;

Services: O service pode ser visto como um serviço que agrega os pods abaixo de si baseado em tags! Por exemplo, no seu deployment (que agora você já sabe o que é) você pode inserir a tag: "app: web". E no seu service, na sessão de Selector você pode adicionar a tag "app: web" também. Assim, todos os Pods que contiverem esta tag serão agregados e expostos pelo service.

Por fim, é importante ressaltar que o Kubernetes deve ser visto não apenas como um orquestrador de containers, mas como um ecossistema robusto de itens e conceitos que podem facilitar o desenvolvimento de uma aplicação, a estabilização da mesma em produção, junto com monitoração, balanceamento, agregação de logs, gerenciamento de recursos computacionais e facilitação de construção de pipelines de continuous deployment e continous integrations.

Amanda Quinto, arquiteta de soluções da Claranet Brasil.

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.