Pesquisa de site

O que é Kubernetes?


Kubernetes (pronuncia-se "CUBE-A-NET-IS") é uma plataforma de código aberto que ajuda a gerenciar aplicativos de contêiner como o Docker. Esteja você procurando automatizar ou dimensionar esses contêineres em vários hosts, o Kubernetes pode acelerar a implantação. Para fazer isso, ele pode usar componentes internos, como API do Kubernetes ou extensões de terceiros executadas no Kubernetes.

Este artigo ajudará você a entender os conceitos básicos do Kubernetes e por que ele está causando uma mudança tão sísmica no mercado de servidores, com fornecedores e também provedores de nuvem, como Azure e Google Cloud, oferecendo serviços Kubernetes.

Kubernetes: uma breve história

Kubernetes é um dos presentes do Google para a comunidade de código aberto. A plataforma de contêineres fazia parte do Borg, um projeto interno do Google há mais de uma década. Borg permitiu que o Google gerenciasse centenas e até milhares de tarefas (chamadas de “Borglets”) de diferentes aplicativos em clusters. Seu objetivo era utilizar máquinas (e máquinas virtuais) de maneira eficiente e, ao mesmo tempo, garantir alta disponibilidade de recursos de tempo de execução.

A mesma arquitetura era popular entre outras empresas que procuravam maneiras de garantir alta disponibilidade com eficiência. Em algum momento de 2015, assim que o Kubernetes 1.0 foi lançado, o Google abriu mão do controle sobre a tecnologia. Kubernetes agora tem uma fundação chamada Cloud Native Computing Foundation (CNCF), que por sua vez faz parte da Linux Foundation.

Como funciona o Kubernetes

Tomando emprestadas as ideias do Projeto Borg, os “Borglets” deram lugar aos “pods”, que são unidades agendadoras que abrigam os contêineres. Essencialmente, eles têm endereços IP individuais que entram em cena sempre que um contêiner requer CPU, memória ou armazenamento.

Os pods garantem alta disponibilidade balanceando a carga do tráfego em formato round-robin. Além disso, eles estão dentro de máquinas (ou máquinas virtuais) chamadas “nós de trabalho”, também conhecidos como “minions”. A partir deste ponto, um “nó mestre” controla todo o cluster orquestrando a conteinerização usando a API Kubernetes. O Docker é capaz de ser executado em cada nó de trabalho onde pode baixar imagens e iniciar contêineres.

Para obter a conexão API em um cluster Kubernetes, uma sintaxe CLI chamada kubectl é usada. Este é um comando muito importante porque executa sozinho todas as instruções que o nó mestre fornece aos nós de trabalho. Dominar o kubectl requer um pouco de aprendizado, mas depois de aprender, você poderá começar a utilizar clusters Kubernetes. Tanto o Kubernetes quanto o Docker são escritos na linguagem de programação Go.

Formulários

O Kubernetes pode reduzir drasticamente os custos de servidores e data centers devido à sua alta eficiência no uso das máquinas. Algumas das aplicações comuns do Kubernetes incluem:

  • Gerenciamento de servidores de aplicativos. A maioria dos servidores de aplicativos exige segurança, gerenciamento de configuração, atualizações e muito mais, que podem ser executados usando Kubernetes.
  • Lançamentos e reversões automáticos. Com o Kubernetes, você não precisa se preocupar com lançamentos ou reversões de produtos em vários nós finais.
  • Implantação de aplicativos sem estado. Os aplicativos da Web agora são controláveis remotamente. Por exemplo, o Kubernetes pode ajudá-lo a executar servidores Nginx usando uma implantação de aplicativo sem estado.
  • Implantação de aplicativos com estado. Kubernetes pode executar um banco de dados MySQL.
  • Armazenamento de objetos de API. Para diferentes necessidades de armazenamento, o Kubernetes garante o armazenamento ideal porque utiliza princípios de contêiner.
  • Pronto para uso imediato. O Kubernetes é muito útil em aplicativos prontos para uso, como descoberta de serviços, registro, monitoramento e autenticação.
  • Aplicativos IoT. O Kubernetes está encontrando um uso cada vez maior na IoT devido à sua enorme capacidade de escalabilidade.
  • Corra em qualquer lugar. Você pode executar o Kubernetes em qualquer lugar, inclusive dentro de uma mala.

Resumindo

O objetivo do Kubernetes é utilizar ao máximo os recursos computacionais. Como você pode orquestrar contêineres em vários hosts, os nós finais nunca terão problemas ou falhas de recursos. Ele ajuda a escalar automaticamente porque você só precisa dar o comando uma vez no nó mestre, e escalar aplicativos é nada menos que revolucionário.

Para saber mais sobre o Kubernetes, visite seu site oficial que contém tutoriais.

Crédito da imagem: Oskar Casquero

Artigos relacionados