Kubernetes
O Kubernetes é uma plataforma de código aberto (liberada pelo Google em 2014) que atua como uma ferramenta de gerenciamento de contêineres. A plataforma serve para monitorar cargas de trabalho e serviços associados à operação dos contêineres.
As configurações da plataforma facilitam a personalização declarativa e a automação de processos. Hoje, o Kubernetes é o centro de um ecossistema completo, com seu próprio conjunto de ferramentas e serviços.
O Kubernetes permite implantar e executar aplicativos em uma arquitetura de microsserviços. Isso traz diversos benefícios para as equipes de desenvolvimento:
- Controle do consumo de recursos: reinício automático de aplicações que consomem recursos desnecessários.
- Distribuição equilibrada da carga de acordo com a infraestrutura local.
- Sistema de recursos flexível ao atualizar um cluster, como no caso da adição de novos hosts.
- Rebalanceamento automático de carga entre versões do aplicativo.
- Facilidade de migração de uma aplicação entre hosts em caso de falha ou escassez de recursos.
- Rollback simplificado e lançamento de versões canárias para testar a compatibilidade entre novos patches e código antigo.
A plataforma possui um sistema de autoatendimento e permite a criação de abstrações de hardware para os usuários. Para as equipes de desenvolvimento, há também uma opção de resposta rápida a solicitações, otimizando a alocação de recursos para balanceamento de carga.
O Kubernetes é considerado uma solução mais eficiente, pois os contêineres consomem recursos (CPU, memória) de forma significativamente mais otimizada em comparação com máquinas virtuais ou hipervisores.
Como o Kubernetes funciona
A unidade fundamental do Kubernetes é um cluster, que é composto por um conjunto de máquinas físicas ou virtuais. Essas máquinas atuam como nós ou nós de conexão — o Control Plane Node. O nó armazena um grupo de contêineres, que por sua vez contém as aplicações. O Control Plane, nesse esquema, define os parâmetros dos contêineres e estabelece novas rotas de tráfego quando ocorre uma mudança na localização dos contêineres.
O runtime de contêineres (por exemplo, Docker) é responsável por iniciar os contêineres e monitorar seu funcionamento. Utilizando as ferramentas do Kubernetes, um especialista pode implantar os contêineres nos nós do cluster e gerenciar sua operação de maneira eficiente.