O que é Kubernetes?

Concluído

O projeto desacoplado dos microsserviços, combinado com a atomicidade dos contêineres, possibilita escalar horizontalmente os aplicativos que respondem à demanda. Em soluções complexas, como o aplicativo de rastreamento de drones, o processo de implantação, atualização, monitoramento e remoção de contêineres apresenta desafios.

Antes de ver o que há no Kubernetes, existem dois conceitos que você deve entender primeiro: gerenciamento de contêineres e orquestradores.

O que é o gerenciamento de contêineres?

O gerenciamento de contêineres é o processo de organizar, adicionar, remover ou atualizar um número significativo de contêineres.

O aplicativo de rastreamento de drones consiste em vários microsserviços responsáveis por tarefas como armazenamento em cache, enfileiramento ou processamento de dados. Cada um desses serviços é hospedado em um contêiner que é implantado, atualizado e colocado em escala independentemente um do outro.

Diagrama de um servidor ou aplicativo replicado como contêineres para implantação na nuvem.

Por exemplo, com o site do aplicativo de rastreamento de drones, você descobre que precisa de mais instâncias do serviço de cache do site para manter o desempenho durante momentos específicos do dia, portanto, adiciona mais instâncias de contêiner do serviço de cache.

Em seguida, suponha que você tenha aumentado o número de instâncias de cache e precise distribuir uma nova versão do microsserviço. É preciso atualizar todos os contêineres ativos para utilizar a nova versão.

O gerenciamento de contêineres ajuda você com essas tarefas manuais repetitivas.

O que é um orquestrador de contêineres?

Um orquestrador de contêineres é um sistema que implanta e gerencia aplicativos em contêineres automaticamente. Como parte do gerenciamento, o orquestrador trata da colocação em escala de alterações dinâmicas no ambiente para aumentar ou diminuir o número de instâncias implantadas do aplicativo. Isso também garante que todas as instâncias de contêineres implantadas sejam atualizadas quando uma nova versão de um serviço for lançada.

Diagrama mostrando como o número de instâncias de contêineres implantadas é incrementado automaticamente se a demanda aumentar e como um orquestrador pode garantir que todas as instâncias implantadas sejam atualizadas com as novas versões do software.

Definir o Kubernetes

O Kubernetes é uma plataforma de software livre portátil e extensível usada para gerenciar e orquestrar cargas de trabalho em contêineres. O Kubernetes simplifica tarefas complexas de gerenciamento de contêineres e fornece uma configuração declarativa para orquestrar contêineres em diferentes ambientes de computação. Essa plataforma de orquestração oferece a mesma facilidade de uso e flexibilidade que você já conhece das ofertas da plataforma como serviço (PaaS) ou infraestrutura como serviço (IaaS).

Diagrama de servidores replicados como vários contêineres em um cluster do Kubernetes.

Benefícios do Kubernetes

Os benefícios de usar o Kubernetes se baseiam na abstração de tarefas.

Diagrama listando três benefícios do Kubernetes: autocorreção, colocação em escala dinâmica e atualizações contínuas.

Essas tarefas incluem:

  • Contêineres com autorrecuperação; por exemplo, reiniciar contêineres com falha ou substituir contêineres

  • Escalar ou reduzir verticalmente a contagem de contêineres implantados, com base na demanda

  • Automatização de atualizações contínuas e de reversões de contêineres

  • Gerenciamento do armazenamento

  • Gerenciamento do tráfego de rede

  • Armazenamento e gerenciamento de informações confidenciais, como nomes de usuário e senhas

Importante

Tenha em mente que todos os aspectos anteriores do Kubernetes exigem configuração e uma boa compreensão das tecnologias subjacentes. Por exemplo, é necessário entender conceitos como redes virtuais, balanceadores de carga e proxies reversos a fim de configurar a rede do Kubernetes.

Considerações sobre o Kubernetes

Com o Kubernetes, você pode ver seu datacenter como um grande recurso de computação. Você não precisa se preocupar com como e em que local implantar seus contêineres, apenas com a implantação e a colocação em escala de seus aplicativos conforme necessário.

Diagrama mostrando uma lista de componentes do Kubernetes, incluindo monitoramento, microsserviços, bancos de dados e o runtime do Docker.

No entanto, é importante entender que o Kubernetes não é um aplicativo individual instalado que vem com todos os componentes possíveis necessários para gerenciar e orquestrar uma solução em contêineres:

  • Aspectos como implantação, dimensionamento, balanceamento de carga, registro em log e monitoramento são todos opcionais. Você é responsável por encontrar a melhor solução para atender às suas necessidades para abordar esses aspectos.

  • O Kubernetes não limita os tipos de aplicativos que podem ser executados na plataforma. Se o aplicativo puder ser executado em um contêiner, ele poderá ser executado no Kubernetes. Para otimizar o uso de soluções em contêineres, seus desenvolvedores precisam entender conceitos, como a arquitetura de microsserviços.

  • O Kubernetes não fornece middleware, estruturas de processamento de dados, bancos de dados, caches ou sistemas de armazenamento em cluster. Todos esses itens são executados como contêineres ou como parte de outra oferta de serviço.

  • Para que o Kubernetes execute contêineres, ele precisa de um runtime de contêiner como o Docker ou o containerd. O runtime de contêiner é o objeto responsável pelo gerenciamento de contêineres. Por exemplo, o runtime de contêiner é iniciado e interrompido e relata o status do contêiner.

  • Você é responsável por manter seu ambiente Kubernetes. Por exemplo, você precisa gerenciar as atualizações do sistema operacional e a instalação e as atualizações do Kubernetes. Você também gerencia a configuração de hardware dos computadores host, como rede, memória e armazenamento.

Os serviços de nuvem, como o Serviço de Kubernetes do Azure (AKS), reduzem esses desafios ao fornecer um ambiente hospedado do Kubernetes. Esses serviços também simplificam a implantação e o gerenciamento de aplicativos em contêineres no Azure. Com o AKS, temos os benefícios do Kubernetes de software livre sem a complexidade ou a sobrecarga operacional com a execução de um cluster do Kubernetes personalizado e próprio.

Observação

Às vezes, Kubernetes é abreviado como K8s. O 8 representa os oito caracteres existentes entre o K e o S da palavra K[ubernete]s.