O que é o Kubernetes?
O design dissociado de microsserviços combinado com a atomicidade de contêineres torna possível dimensionar 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 analisar o que está no Kubernetes, há dois conceitos que você deve entender primeiro: gerenciamento de contêineres e orquestradores.
O que é a gestão de contentores?
A gestão de contentores consiste no processo de organizar, adicionar, remover ou atualizar um número significativo de contentores.
O aplicativo de rastreamento de drones consiste em vários microsserviços responsáveis por tarefas como cache, enfileiramento ou processamento de dados. Cada um desses serviços é hospedado em um contêiner que é implantado, atualizado e dimensionado independentemente uns dos outros.
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 horários específicos do dia, portanto, adiciona mais instâncias de contêiner de serviço de cache.
Em seguida, suponha que você aumentou o número de instâncias de cache e precisa implantar uma nova versão do microsserviço. Você precisa atualizar todos os contêineres ativos para usar a nova versão.
A gestão de contentores ajuda-o com estas tarefas manuais repetitivas.
O que é um orquestrador de contêineres?
Um orquestrador de contentores é um sistema que implementa e gere automaticamente aplicações em contentores. Como parte do gerenciamento, o orquestrador lida com alterações dinâmicas de dimensionamento no ambiente para aumentar ou diminuir o número de instâncias implantadas do aplicativo. Ele também garante que todas as instâncias de contêiner implantadas sejam atualizadas quando uma nova versão de um serviço for lançada.
Definir o Kubernetes
O Kubernetes é uma plataforma open source extensível e portátil para gerir e orquestrar cargas de trabalho em contentores. O Kubernetes simplifica tarefas complexas de gerenciamento de contêineres e fornece 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á pode conhecer das ofertas de plataforma como serviço (PaaS) ou infraestrutura como serviço (IaaS).
Benefícios do Kubernetes
As vantagens da utilização do Kubernetes baseiam-se na abstração de tarefas.
Estas tarefas incluem:
Autorrecuperação de recipientes; por exemplo, reiniciar contêineres que falham ou substituir contêineres
Dimensionamento dinâmico da contagem de contêineres implantados para cima ou para baixo, com base na demanda
Automatizando atualizações contínuas e reversões de contêineres
Gerenciando o armazenamento
Gerir o tráfego de rede
Armazenamento e gerenciamento de informações confidenciais, como nomes de usuário e senhas
Importante
Tenha em atenção que todos os aspetos anteriormente referidos do Kubernetes exigem configuração e uma boa compreensão das tecnologias subjacentes. Por exemplo, tem de compreender conceitos como redes virtuais, balanceadores de carga e proxies inversos, para configurar a rede do Kubernetes.
Considerações do Kubernetes
Com o Kubernetes pode ver o seu datacenter como um grande recurso de computação. Você não precisa se preocupar com como e onde implantar seus contêineres, apenas em implantar e dimensionar seus aplicativos conforme necessário.
No entanto, é importante compreender que o Kubernetes não é uma única aplicação instalada que vem com todos os componentes possíveis e necessários para gerir e orquestrar uma solução em contentores:
Alguns aspetos, como a implementação, o dimensionamento, o balanceamento de carga, o registo e a monitorização, são opcionais. É da sua responsabilidade encontrar a solução mais adequada às suas necessidades para abordar estes aspetos.
O Kubernetes não limita os tipos de aplicações que podem ser executados na plataforma. Se a sua aplicação puder ser executada num contentor, também poderá ser executada no Kubernetes. Para tirar o máximo partido das soluções em contentores, os seus programadores terão de compreender 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 estes itens são executados como contentores ou como parte de outra oferta de serviço.
Para que o Kubernetes execute contêineres, ele precisa de um tempo de execução de contêiner como Docker ou containerd. O tempo de execução do contentor é o objeto responsável por gerir os contentores. Por exemplo, o tempo de execução do contentor começa, para e comunica o estado do contentor.
É responsável por manter o seu ambiente do Kubernetes. Por exemplo, precisa de gerir as atualizações do SO, bem como as atualizações e a instalação do Kubernetes. Também precisa de gerir a configuração de hardware dos computadores anfitriões, como a rede, memória e armazenamento.
Os serviços de nuvem, como o Serviço Kubernetes do Azure (AKS), reduzem esses desafios fornecendo um ambiente Kubernetes hospedado. Esses serviços também simplificam a implantação e o gerenciamento de aplicativos em contêineres no Azure. Com o AKS, obterá as vantagens do Kubernetes open source sem a complexidade ou sobrecarga operacional da gestão de um cluster do Kubernetes personalizado.
Nota
Por vezes, o nome do Kubernetes é abreviado para K8s. O número 8 representa os oito carateres entre a letra "K" e a letra "s" da palavra K(ubernete)s.