O que é o Serviço de Kubernetes do Azure?

Concluído

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

O que é um contêiner?

Um contêiner é uma unidade atômica de software que empacota o código, as dependências e a configuração de um aplicativo específico. Os contêineres permitem que você divida aplicativos monolíticos 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.

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

Por que usar um contêiner?

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

  • Um site de rastreamento com mapas e informações sobre os ativos rastreados.

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

  • Um banco de dados MSSQL para armazenar informações do usuário e de rastreamento capturadas no site.

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

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 em suas novas VMs. No entanto, isso torna você responsável pelo gerenciamento de cada VM que você usar.

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

Diagrama que mostra servidores replicados como VMs na nuvem e como o problema levanta questões e problemas de migração.

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 contêineres ajudam a resolver esses tipos de problemas.

O conceito de contêiner proporciona três benefícios principais:

  1. Imutabilidade - A natureza inalterável de um contêiner permite que ele seja implantado e executado de maneira confiável e com o mesmo comportamento, de um ambiente de computação para outro. Uma imagem de contêiner testada em um ambiente de garantia de qualidade é a mesma imagem de contêiner implantada na produção.

  2. Tamanho menor - Um contêiner é semelhante a uma VM, mas sem o kernel para cada computador. 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 contêiner não precisa de um SO, somente do aplicativo.

  3. Leve- O contêiner sempre depende do SO instalado no host para serviços específicos do kernel. A propriedade leve torna os contêineres menos intensivos em recursos, portanto, permitindo a instalação de vários contêineres no 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 iniciar.

Esses benefícios tornam os contêineres uma escolha popular tanto para desenvolvedores quanto para operações de TI, e é por isso que muitos estão migrando de VMs.

O que é o gerenciamento de contêineres?

Diagrama que mostra servidores replicados como vários contêineres na nuvem.

Embora funcionalmente, os contêineres sejam semelhantes às VMs, suas finalidades variam. Um contêiner tem um ciclo de vida distinto que existe como um computador temporário. Seu estado passa pelos estágios pendentes, em execução e encerrados. 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 tarefas de implantação, atualização, monitoramento e remoção de contêineres.

Por exemplo, suponha que você perceba um aumento de tráfego no site ao meio-dia. Nesse caso, seria necessário adicionar mais instâncias do serviço de cache do site para otimizar o desempenho. Você planeja resolver esse problema adicionando mais contêineres de serviço de cache.

Agora é hora de implantar uma nova versão do 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 implantação, o dimensionamento e o gerenciamento de cargas de trabalho em contêineres. O Kubernetes simplifica o gerenciamento de contêineres e proporciona 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 as ofertas de PaaS (plataforma como serviço) e IaaS (infraestrutura como serviço).

Diagrama que mostra servidores replicados como vários contêineres em um cluster Kubernetes.

O Kubernetes permite que você veja seu data center como um computador grande. Não nos preocupamos sobre como e onde implantamos nossos contêineres, mas somente com a implantação e o dimensionamento de nossos aplicativos, conforme necessário.

Aqui estão mais alguns aspectos a serem considerados sobre o Kubernetes:

  • O Kubernetes não é uma oferta completa de PaaS. Ele opera no nível de contêiner e oferece apenas um conjunto comum de recursos de PaaS.

  • O Kubernetes não é monolítico. Não é um aplicativo único instalado. Aspectos como implantação, dimensionamento, balanceamento de carga, registro em log e monitoramento são todos opcionais.

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

  • Os desenvolvedores precisam entender conceitos como a arquitetura de microsserviços para otimizar o uso das soluções de contêiner.

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

  • Uma implantação do Kubernetes será 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ção de produção, a configuração preferencial é uma implantação de alta disponibilidade com três a cinco máquinas de plano de controle replicadas, chamadas de nós ou nós de agente.

Com todos os benefícios do Kubernetes, você é responsável por encontrar a melhor solução que atenda às suas necessidades para abordar esses aspectos. Tenha em mente que você é responsável pela manutenção do cluster do 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.

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.

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

Diagrama que mostra servidores replicados como vários contêineres num cluster AKS Kubernetes.

O AKS gerencia o ambiente hospedado do Kubernetes, tornando fácil implantar e gerenciar aplicativos em contêiner no Azure. O ambiente AKS tem recursos como atualizações automatizadas, autorrecuperação e dimensionamento fácil. O Azure gerencia o plano de controle do cluster do Kubernetes gratuitamente. Você gerencia os nós de agente no cluster e paga apenas pelas VMs em que os seus nós estão sendo executados.

É possível criar e gerenciar clusters 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, Microsoft Entra Identity 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 sobrecarga operacional que somente o uso do Kubernetes pode proporcionar.