Kubernetes: uma introdução


Nesse artigo falaremos sobre o Kubernetes, seus conceitos básicos, objetivos, arquitetura, funcionamento, vantagens e passos iniciais antes de rodar uma aplicação web com ele. Antes de você prosseguir com a leitura, é extremamente recomendado que você tenha conhecimentos prévios com a tecnologia Docker.

O que é e qual o objetivo do Kubernetes?

Trata-se de um sistema de código aberto para orquestração de contêineres Docker. Em outras palavras, um sistema que faz o monitoramento de aplicações conteinerizadas. Seu principal objetivo é facilitar o monitoramento, abstraindo a complexidade que seria necessária com a criação de scripts para iniciar contêineres, monitorar e controlar o retorno de erros em caso de quedas ou falhas no sistema.

Dessa forma, um programador focado na parte de desenvolvimento não necessita ter conhecimentos avançados em níveis de infraestrutura para conseguir realizar uma monitoração/gerenciamento de qualidade em suas aplicações, basta apenas estudar e entender como integrar o Kubernetes.

Arquitetura do Kubernetes

kubernetes

Antes de começar a testar o Kubernetes na prática, é interessante conhecer sua arquitetura. Podemos dizer que a arquitetura se divide nos seguintes componentes principais.

Master: ponto de controle central que provê uma visão unificada do cluster. É a máquina mestre que recebe as configurações preestabelecidas através dos arquivos .yaml.

Cluster: conjunto dos componentes (Master, nodes, pods, contêineres, etc). Obs: A imagem acima representa o cluster onde trabalharemos.

Node: Uma máquina ativa (gerenciada pelo master), também conhecida como Minion. Dentro dele ficam os serviços necessários para rodar os pods. Os serviços em um node incluem Docker, Kubelet e kube-proxy.

Pods: menores unidades implantadas que podem ser criadas, escaladas e manuseadas. É uma coleção lógica de contêineres que pertencem a uma aplicação.

Obs: Um master pode gerenciar um ou mais nodes, um node pode conter um ou mais pods, e um pod pode conter um ou mais contêineres. Essa última configuração não é recomendada, pois ao existir mais de um contêiner em um único pod, ocorre um alto grau de acoplamento entre os contêineres, pois eles irão dividir recursos de memória e volume.

Kubernetes: vantagens

  • Fácil manipulação de contêineres, que na verdade ocorrem através dos objetos PODS;
  • Escalonamento da a aplicação;
  • Volumes persistentes;
  • Regeneração própria;
  • Abstração de complexidade.

Passos iniciais

Para conseguir utilizar o Kubernetes, previamente é necessária a instalação dos seguintes componentes:

Virtual Box
Kubectl
Minikube

Obs: Minikube é um ferramenta que facilita o processamento do Kubernetes na máquina local·

Depois disso, basta criar um diretório para sua aplicação e digitar o comando $ minikube start, ele será responsável por criar uma máquina virtual ( por esse motivo a instalação do Virtual Box ) e então, agora nesse ambiente virtualizado teremos um cluster onde poderemos trabalhar com nossa aplicação.

Conclusão

Dentro desse contexto de aplicações, quem não gosta de automatizar processos, facilitar tarefas e ter confiabilidade/segurança com seus dados?

O Kubernetes proporciona todas essas funcionalidades. Claro que, em questões de desenvolvimento, também será necessário tempo de estudo para familiarização e integração com a tecnologia, mesmo assim, ao pensar em sistemas conteinerizados com grande escala de informações, não deixa de ser uma ótima ferramenta.

Em artigos futuros que serão também disponibilizados aqui no blog da KingHost, veremos como rodar uma aplicação web com Kubernetes na prática. Caso você esteja ansioso, pode ir dando uma olhada na documentação e testar você mesmo. Também preparamos um Webinar “Descomplicando Kubernetes” [assista aqui] que super vale à pena acompanhar.

Resumo
Kubernetes: uma introdução
Nome do Artigo
Kubernetes: uma introdução
Descrição
Informações básicas para quem tem interesse em entender e conhecer melhor Kubernetes.
Autor
Nome
KingHost
Logo
Iago Machado

Iago Machado

Assistente de Desenvolvimento em KingHost
Amante da programação e de exercícios que envolvam raciocínio lógico.
Pronto para aprender, tardio em desistir.
Iago Machado

Últimos posts por Iago Machado (exibir todos)

Comentários

comentário(s)