O que é o Azure Kubernetes Service?

Concluído

Vamos começar com algumas definições e um tour rápido pelo Serviço Kubernetes do Azure (AKS). Esta visão geral fornece informações para ajudá-lo a decidir se o AKS é uma boa plataforma para sua estratégia de gerenciamento de conteinerização.

O que é um contentor?

Um contentor é uma unidade atómica de software que empacota código, dependências e configuração para uma aplicação específica. Os contentores permitem dividir aplicações monolíticas em serviços individuais que compõem a solução. Essa rearquitetura de nosso aplicativo nos permite implantar esses serviços separados por meio de contêineres.

Diagram that shows server or application replicated as containers for cloud deployment.

Porque é que deve utilizar um contentor?

Suponha que sua solução de rastreamento de ativos inclua três aplicativos principais:

  • Um site de rastreamento que inclui mapas e informações sobre os ativos que estão sendo rastreados.

  • Um serviço de processamento de dados que coleta e processa informações enviadas de ativos rastreados.

  • Um banco de dados MSSQL para armazenar informações de clientes capturadas do site.

Você percebe que, para atender à demanda do cliente, você precisa expandir sua solução.

Máquinas virtuais (VM)

Uma opção é implantar uma nova máquina virtual para cada aplicativo, hospedado em várias regiões. Em seguida, copie os aplicativos para suas novas VMs. No entanto, isso torna você responsável pelo gerenciamento de cada VM que você usa.

A sobrecarga de manutenção aumenta à medida que você dimensiona. As versões e dependências do sistema operacional (SO) da VM para cada aplicativo precisam ser provisionadas e configuradas para corresponder. Quando você aplica atualizações para seus aplicativos que afetam o sistema operacional e alterações importantes, há precauções. Se algum erro aparecer durante a atualização, a reversão da instalação será necessária e causará interrupções, como tempo de inatividade ou atrasos.

Diagram that shows replicated servers as VMs in the cloud and how the problem raises migration questions and problems.

A implantação no diagrama anterior é complicada, às vezes propensa a erros, e não dimensiona facilmente serviços únicos. Por exemplo, você não pode dimensionar facilmente apenas o serviço de cache usado no aplicativo Web. Os contentores ajudam a resolver estes tipos de problemas.

O conceito de contentor dá-nos três vantagens importantes:

  1. Imutabilidade - A natureza imutável de um contêiner permite que ele seja implantado e executado de forma confiável com o mesmo comportamento de um ambiente de computação para outro. Uma imagem de contentor testada num ambiente de Perguntas e Respostas é a mesma imagem de contentor implementada num ambiente de Produção.

  2. Tamanho menor - Um contêiner é semelhante a uma VM, mas sem o kernel para cada máquina. Em vez disso, eles compartilham um kernel de host. As VMs usam um arquivo de imagem grande para armazenar o sistema operacional e o aplicativo que você deseja executar. Por outro lado, um contentor não precisa de um SO, mas apenas da aplicação.

  3. Leve - O contêiner sempre depende do sistema operacional instalado pelo host para serviços específicos do kernel. A propriedade leve torna os contêineres menos intensivos em recursos, portanto, a instalação de vários contêineres é possível dentro do mesmo ambiente de computação.

  4. A inicialização é rápida - Os contêineres são iniciados em poucos segundos, ao contrário das VMs, que podem levar minutos para serem iniciadas.

Os benefícios acima tornam os contêineres uma escolha popular para desenvolvedores e operações de TI, e por isso muitos mudaram de VMs.

O que é a gestão de contentores?

Diagram that shows replicated servers as multiple containers in the cloud.

Embora funcionalmente, os contêineres sejam semelhantes às VMs, suas finalidades variam. Um contêiner tem um ciclo de vida distinto que existe como uma máquina temporária. Seu estado passa pelas fases de pendente, em execução e terminado. Esse ciclo de vida torna os contêineres mais descartáveis e afeta a forma como os desenvolvedores e as operações de TI pensam sobre o gerenciamento de grandes aplicativos interconectados. O gerenciamento de contêineres envolve implantação, atualização, monitoramento e remoção de contêineres.

Por exemplo, suponha que você descubra que ao meio-dia há mais tráfego do site, portanto, você precisa de mais instâncias do serviço de cache do site para gerenciar o desempenho. Você planeja resolver esse problema adicionando mais contêineres de serviço de cache.

Agora é hora de lançar uma nova versão do seu serviço de cache. Como você atualiza todos os contêineres? Como remover todas as versões mais antigas?

Esses tipos de perguntas de balanceamento de carga exigem um sistema para gerenciar sua implantação de contêiner.

O que é o Kubernetes?

O Kubernetes é uma plataforma open source extensível e portátil para automatizar a implementação, o dimensionamento e a gestão de cargas de trabalho em contentores. O Kubernetes abstrai o gerenciamento complexo de contêineres e nos fornece uma configuração declarativa para orquestrar contêineres em diferentes ambientes de computação. Esta plataforma de orquestração proporciona a mesma facilidade de utilização e flexibilidade que as ofertas de Plataforma como um Serviço (PaaS) e Infraestrutura como um Serviço (IaaS).

Diagram that shows replicated servers as multiple containers in a Kubernetes cluster.

O Kubernetes permite-lhe ver o seu datacenter como um grande computador. Não temos de nos preocupar sobre como e onde implementamos os nossos contentores, mas apenas com a implementação e dimensionamento das nossas aplicações, conforme necessário.

Aqui estão alguns aspetos adicionais a ter em mente sobre o Kubernetes:

  • O Kubernetes não é uma oferta de PaaS completa. Opera ao nível do contentor e oferece apenas um conjunto comum de funcionalidades de PaaS.

  • O Kubernetes não é monolítico. Não é uma única aplicação que é instalada. Alguns aspetos, como a implementação, o dimensionamento, o balanceamento de carga, o registo e a monitorização, são opcionais.

  • O Kubernetes não limita os tipos de aplicativos a serem executados. Se seu aplicativo pode ser executado em um contêiner, ele é executado no Kubernetes.

  • Seus desenvolvedores precisam entender conceitos como arquitetura de microsserviços para fazer o uso ideal de soluções de contêiner.

  • O Kubernetes não fornece sistemas de armazenamento de cluster, caches, bases de dados, arquiteturas de processamento de dados ou middleware. Todos estes itens são executados como contentores ou como parte de outra oferta de serviço.

  • Uma implementação do Kubernetes é configurada como um cluster. Um cluster consiste em pelo menos uma máquina primária ou plano de controle e uma ou mais máquinas de trabalho. Para implantações de produção, a configuração preferida é uma implantação de alta disponibilidade com três a cinco máquinas de plano de controle replicadas. Essas máquinas de trabalho também são chamadas de nós ou nós de agente.

Com todos os benefícios que você recebe com o Kubernetes, você é responsável por encontrar a melhor solução que atenda às suas necessidades para lidar com esses aspetos. Lembre-se de que você é responsável pela manutenção do cluster 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.

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.

O que é o Serviço Kubernetes do Azure (AKS)?

Diagram that shows replicated servers as multiple containers in an AKS Kubernetes cluster.

O AKS gerencia seu ambiente Kubernetes hospedado e simplifica a implantação e o gerenciamento de aplicativos em contêineres no Azure. O seu ambiente do AKS está ativado com funcionalidades como o dimensionamento simples, autorrecuperação e atualizações automatizadas. O Azure gerencia o plano de controle do cluster do Kubernetes gratuitamente. A gestão dos nós de agente no cluster é feita por si e só paga as VMs nas quais os seus nós são executados.

Você pode criar e gerenciar seu cluster no portal do Azure ou com a CLI do Azure. Quando você cria o cluster, há modelos do Resource Manager para automatizar a criação do cluster. Com esses modelos, você tem acesso a recursos como opções avançadas de rede, identidade do Microsoft Entra e monitoramento de recursos. Em seguida, você pode configurar gatilhos e eventos para automatizar a implantação do cluster para vários cenários.

Com o AKS, você obtém os benefícios do Kubernetes de código aberto sem a complexidade adicional ou a sobrecarga operacional que usar apenas o Kubernetes pode acarretar.