O que é o Kubernetes?

Por IBM Services

Orquestre e implemente aplicativos conteinerizados em qualquer ambiente

O Kubernetes é uma solução de software livre que automatiza a implementação, o ajuste de escala e o monitoramento de aplicativos conteinerizados.

Um container é um software que está separado de sua infraestrutura subjacente. Com contêineres, tudo é virtualizado no nível do sistema operacional. Isso significa que não importa onde um aplicativo é executado, ele funcionará da mesma forma.

A maioria dos contêineres hoje são executados em uma plataforma Kubernetes. De acordo com a empresa: "O Kubernetes fornece um ambiente de gerenciamento centralizado no contêiner. Ele orquestra infraestruturas de computação, rede e armazenamento em nome de cargas de trabalho do usuário... e possibilita a portabilidade entre os provedores de infraestrutura". ⁽¹⁾

Conceitos essenciais do Kubernetes

O Kubernetes começou no Google, onde uma equipe de engenheiros desenvolveu um sistema de gerenciamento de cluster chamado Borg. Em 2014, a empresa apresentou uma versão de software livre do Borg, chamada Kubernetes.⁽²⁾

A primeira versão do Kubernetes foi liberada em 2015 para fornecer orquestração de contêineres para aplicativos distribuídos. Com a liberação, o Google fez uma parceria com a Linux Foundation para formar a Cloud Native Computing Foundation e ofereceu o Kubernetes como uma tecnologia inicial.⁽³⁾

Desde sua estreia, o Kubernetes tem se tornado cada vez mais popular devido a forma como ajuda o desenvolvimento a alcançar a portabilidade em sistemas baseados em tecnologia de contêineres. Com mais de 1.400 colaboradores, a comunidade de software livre do Kubernetes é hoje uma das maiores do mundo.

O Docker é a tecnologia de contêineres mais comumente usada, mas o Kubernetes também suporta outras. O Docker definiu modelos para empacotar softwares em unidades padronizadas que incluem todos os elementos para executar um aplicativo.

O Kubernetes orquestra o ambiente de contêiner e otimiza o uso do servidor e o espaço. Ele gerencia onde e como os contêineres são implementados usando recursos como o planejamento inteligente, o balanceamento de carga, a capacidade de ajuste de escala, o gerenciamento de armazenamento e a execução em lote.

Alguns conceitos fundamentais:

  • A unidade básica de gerenciamento do Kubernetes é um pod ou grupo de contêineres. Os contêineres em um pod compartilham o mesmo armazenamento, os mesmos recursos e o mesmo endereço IP.
  • Um cluster Kubernetes consiste em nós principais e do trabalhador (um nó é o host ou servidor no qual um contêiner é executado e pode ser uma máquina virtual ou física).
  • Um nó principal gerencia a carga de trabalho do contêiner e direciona as comunicações em todo o sistema. Ele inclui um planejador que controla o desempenho, a capacidade e a disponibilidade.
  • Os nós do trabalhador executam os pods sob a direção do nó principal.
  • Arquivos de configuração permitem que as equipes especifiquem parâmetros operacionais, como o número de pods que podem ser executados por vez. Usando o Kubernetes, é possível gerenciar recursos em um data center inteiro, como se ele fosse um sistema único.  

Kubernetes comparado ao Docker: Não é uma questão de opção

Por que Kubernetes é importante?

Grandes aplicativos corporativos podem incluir um grande número de contêineres. Esse tipo de arquitetura pode rapidamente se tornar complexo.

As empresas precisam ser capazes de orquestrar todas as partes sendo movimentadas em um ambiente de contêineres, de preferência de um único ponto de vantagem. Muitos escolhem o Kubernetes como sua solução.

O Kubernetes gerencia o ecossistema e ajusta a computação e o armazenamento para garantir que os contêineres estejam disponíveis e implementados de forma eficiente. Enquanto isso, o desenvolvimento pode ver onde tudo está a qualquer momento.

O Kubernetes podem ajudar as empresas a simplificar a implementação de novos aplicativos e o gerenciamento de recursos e contêiner, reduzir os riscos do upgrade e evitar o tempo de inatividade. Ele pode ajustar a escala de componentes de aplicativos, individualmente ou como grupo, e suportar aplicativos nativos de cloud móveis.  

Em seu Blog da IBM, Matt Johnsen esboça algumas das vantagens:

  • Economia de custo: os clusters Kubernetes são conhecidos por sua baixa manutenção. As equipes não têm de escrever seus próprios scripts de automação de contêineres. Elas podem utilizar uma infraestrutura compartilhada. Elas podem reduzir os custos de hardware fazendo um uso mais eficaz do hardware atual.
  • Tempo de comercialização mais rápido: o Kubernetes é ideal para DevOps. Um bom gerenciamento de contêineres significa que, enquanto o software estiver sendo executado, a implementação será simples praticamente sempre.
  • Flexibilidade de TI: na empresa moderna, o software é executado em qualquer número de infraestruturas privadas e compartilhadas. Usar uma solução de gerenciamento de contêineres significa que as equipes não têm de sacrificar o desempenho ou fazer grandes ajustes para mover aplicativos. Elas podem executar o software onde quer que a empresa precise dele.

Outro benefício do Kubernetes é o ajuste de escala horizontal, que pode ajudar a lidar com as demandas de desempenho em constante mudança.

"Se você já está aproveitando o Docker e os contêineres com seus aplicativos, movê-los para o Kubernetes pode realmente ajudá-lo a enfrentar algumas das operações com sobrecarga enfrentadas por praticamente todo aplicativo ao realizar uma movimentação em escala", diz Sai Vennam, IBM Developer Advocate.

Kubernetes como um serviço

Empresas podem usar um sistema interno do Kubernetes para orquestrar suas implementações de contêiner. Como alternativa, um provedor de serviços pode oferecer uma plataforma ou infraestrutura baseada no Kubernetes como serviço.

Os clientes se beneficiam dos mesmos recursos, mas com menos complexidade e excesso de colaboradores. IBM Cloud de acordo com Jason McGee, VP e IBM Fellow:

"Os mecânicos para instalar, conectar e configurar uma coleção de recursos em um cluster de contêineres funcional não são fáceis. É preciso de trabalho e conhecimento. E se você precisar incluir ou remover um recurso do ambiente de contêiner? Como você se recupera quando falhas acontecem? Os contêineres e o Kubernetes também estão mudando muito rapidamente.

"É difícil manter-se atualizado por conta própria. Uma das vantagens de um serviço gerenciado é que tudo isso é feito por você e é possível se concentrar apenas em seus aplicativos." ⁽4⁾

Um provedor de serviços gerenciados, como a IBM, trata dos recursos de computação, rede e armazenamento em cada cluster de nós. O serviço IBM oferece planejamento inteligente, gerenciamento de cluster simplificado, políticas de segurança e isolamento de contêineres e upgrades de infraestrutura.

Os clientes IBM também podem usar o serviço Kubernetes em uma infraestrutura de cloud bare metal. Isso traz agilidade e velocidade aos aplicativos que requerem desempenho de computação muito alto, como cargas de trabalho de machine learning ou IA.

"Os desenvolvedores agora podem escolher configurações de máquina bare metal que atendam às suas necessidades, seja o isolamento, o aumento da capacidade de processamento ou um grande armazenamento de disco local, aproveitando os benefícios dos contêineres, como a fácil movimentação de dados entre sistemas ou o trabalho simultâneo de diversos membros da equipe em diversas partes de um aplicativo", diz McGee.

A Weather Company ajusta a escala de serviços web para ajudar a manter as pessoas em segurança

 

Recursos do Kubernetes

O que são contêineres e por que você precisa deles?

Saiba mais sobre o que são os contêineres e por que as empresas os utilizam

A adoção do Kubernetes e a importância do gerenciamento de desempenho de aplicativos

Veja por que um ambiente de cloud baseado no Kubernetes pode ser transformador para muitas empresas

Kubernetes vs. Docker: Por que não ambos?

Saiba mais sobre as diferenças entre o Kubernetes e o Docker

A IBM traz a facilidade dos contêineres para cargas de trabalho complexas com o Kubernetes gerenciado para o bare metal

Conheça os benefícios de executar contêineres do Kubernetes como um serviço gerenciado em uma infraestrutura de cloud bare metal

Saiba mais sobre o Watson: Como os contêineres ajustam a escala das cargas de trabalho de IA

Descubra por que as cargas de trabalho de IA são diferentes e melhores na cloud

Monitorando o IBM Cloud Service com o Outlyer

Saiba mais sobre os benefícios do uso do monitoramento de autoatendimento do Outlyer no IBM Cloud Kubernetes Service

Serviço em destaque

IBM Kubernetes Cloud Service

 

1. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

2.https://blog.risingstack.com/the-history-of-kubernetes/

3.https://en.wikipedia.org/wiki/Kubernetes

4.https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/