Visão geral do Kubernetes e do AKS
Ao explorar os princípios de conteinerização para aumentar a agilidade e a densidade da carga de trabalho no ambiente de computação da Contoso, você percebe que precisa se concentrar na orquestração de contêineres, em vez de na implantação de contêineres individuais. Embora o último ofereça simplicidade, falta escalabilidade e resiliência. Em sua pesquisa de orquestração de contêineres, você identificou rapidamente o Kubernetes e o AKS como os candidatos mais adequados para a implementação planejada.
O que é o Kubernetes?
O Kubernetes é uma plataforma de software livre extensível e baseada em Linux para orquestrar cargas de trabalho conteinerizadas. Para garantir a resiliência, uma implantação típica do Kubernetes consiste em vários servidores com cluster, chamados de nós. Alguns deles formam um plano de controle, responsável por gerenciar os nós restantes, nos quais você implanta suas cargas de trabalho. Para o Kubernetes, essas cargas de trabalho consistem em instâncias de aplicativos em contêineres chamados de pods.
Observação
Um dos principais componentes do plano de controle é o Servidor de API, que fornece a interface para configurar e gerenciar clusters do Kubernetes.
Observação
Um pod corresponde aproximadamente a um contêiner, embora possa incluir vários contêineres rigidamente acoplados em execução no mesmo nó de cluster.
Normalmente, os pods são sem estado e não oferecem nenhum recurso de resiliência inerente. Para implementar alta disponibilidade e redundância, você pode provisioná-los usando implantações. Normalmente, uma implantação consiste em várias réplicas de pods compartilhando a mesma configuração e executando contêineres com base na mesma imagem. O Kubernetes gerencia automaticamente o ciclo de vida dos pods em uma implantação, recriando qualquer um dos pods com falha nos nós de cluster disponíveis de maneira ideal.
As implantações também otimizam as atualizações de imagens de contêineres em execução em pods, sem afetar a disponibilidade da carga de trabalho conteinerizada. Ao definir os orçamentos de interrupção, você controla o número de réplicas de pod que devem permanecer online durante todo o processo de atualização.
Para conectividade direta com pods, você pode implementar outro tipo de recurso do Kubernetes conhecido como um serviço. Por exemplo, um serviço permite que você configure a conectividade externa com balanceamento de carga da Internet para um serviço Web hospedado em um grupo de pods como parte da mesma implantação.
O Kubernetes oferece a capacidade de isolar pods, serviços, implantações e muitos outros componentes de cluster em namespaces. Os namespaces formam limites lógicos, que permitem restringir o acesso para criar, exibir ou gerenciar recursos de cluster.
Quais são os principais benefícios do Kubernetes?
O Kubernetes oferece um modelo de gerenciamento consistente para um ambiente com vários contêineres que usa recursos compartilhados de computação, rede e armazenamento. Ele oferece um modelo declarativo de implantação e gerenciamento, no qual você descreve a configuração desejada e deixa sua implementação para o plano de controle do Kubernetes.
Observação
Com o modelo de gerenciamento declarativo, você pode usar arquivos de manifesto formatados em YAML para controlar provisionar, modificar e excluir recursos do Kubernetes, como pods ou implantações. Você também pode usá-los para essa finalidade de coleções empacotadas de arquivos YAML, chamadas de gráficos do Helm. Helm é um gerenciador de pacotes para Kubernetes e facilita a implantação de cargas de trabalho mais complexas em clusters do Kubernetes.
Além disso, o Kubernetes oferece benefícios como:
- Autorrecuperação de pods
- Dimensionamento automático de pods
- Dimensionamento automático de nós de cluster automático em cenários virtualizados
- Atualização sem interrupção e reversão automática de implantações de pod
- Descoberta automática de novas implantações de pod
- Balanceamento de carga entre pods que executam as mesmas cargas de trabalho
O Kubernetes permite que você trate um grupo de servidores físicos ou virtuais como um recurso de computação unificado, otimizando simultaneamente os servidores usando a agilidade e a densidade das cargas de trabalho em conteinerizadas. Embora o Kubernetes simplifique o gerenciamento de contêineres, sua administração envolve muitas tarefas de configuração, gerenciamento e manutenção:
- Aspectos como implantação, dimensionamento, balanceamento de carga, registro em log e monitoramento são todos opcionais. Cabe a você identificar e implementar a configuração ideal para atender às suas necessidades específicas.
- O Kubernetes não fornece nativamente o middleware, as estruturas de processamento de dados nem os bancos de dados. No entanto, você tem a opção de implementar uma das funcionalidades correspondentes usando contêineres.
- Você é responsável por manter seu ambiente Kubernetes. Por exemplo, você precisa gerenciar as atualizações do sistema operacional e do Kubernetes. Você também gerencia os recursos de hardware disponíveis para nós de cluster, como rede, memória e armazenamento.
Observação
As ofertas de Kubernetes gerenciado, como o AKS, minimizam ou, até mesmo, eliminam alguns desses desafios.