Visão geral do Kubernetes e AKS

Concluído

Ao explorar os princípios da 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 este último ofereça simplicidade, carece de escalabilidade e resiliência. Em sua pesquisa de orquestração de contêineres, você rapidamente identificou Kubernetes e AKS como os candidatos mais adequados para sua implementação planejada.

O que é o Kubernetes?

O Kubernetes é uma plataforma open-source extensível e baseada no Linux para orquestrar cargas de trabalho em contentores. Para garantir a resiliência, uma implantação típica do Kubernetes consiste em vários servidores clusterizados, que são chamados de nós. Alguns deles formam um plano de controle, responsável por gerenciar os nós restantes, no qual 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.

Nota

Um dos principais componentes do plano de controle é o API Server, que fornece a interface para configurar e gerenciar clusters Kubernetes.

Nota

Um pod corresponde aproximadamente a um contentor, embora possa incluir múltiplos contentores interligados com grande proximidade em execução no mesmo nó de cluster.

Normalmente, os pods são apátridas e não oferecem nenhum recurso de resiliência inerente. Para implementar alta disponibilidade e redundância, você pode provisioná-las 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 dentro de uma implantação, recriando quaisquer falhas nos nós de cluster disponíveis de maneira ideal.

As implantações também simplificam as atualizações de imagens de contêineres em execução em pods sem afetar a disponibilidade da carga de trabalho em contêineres. Ao definir orçamentos de interrupção, você controla o número de réplicas de pod que devem permanecer on-line 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 configurar 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 usar recursos de cluster.

Quais são os principais benefícios do Kubernetes?

O Kubernetes fornece um modelo de gerenciamento consistente para um ambiente de 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.

Nota

Com o modelo de gerenciamento declarativo, você usa arquivos de manifesto formatados em YAML para provisionar, modificar e excluir componentes do Kubernetes, como pods, serviços e implantações. Você também pode usar coleções empacotadas de arquivos YAML, conhecidos como gráficos Helm. O Helm é um gerenciador de pacotes para o 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:

  • Auto-cura de vagens
  • Dimensionamento automático de pods
  • Dimensionamento automático de nós de cluster automático em cenários virtualizados
  • Atualização contínua automatizada e reversão de implantações de pod
  • Deteção automática de novas implantações de pods
  • Balanceamento de carga entre pods que executam as mesmas cargas de trabalho

O Kubernetes permite tratar 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 de cargas de trabalho conteinerizadas. Embora o Kubernetes simplifique o gerenciamento de contêineres, sua administração envolve muitas tarefas de configuração, gerenciamento e manutenção:

  • Alguns aspetos, como a implementação, o dimensionamento, o balanceamento de carga, o registo e a monitorização, são opcionais. Cabe a você identificar e implementar a configuração ideal que atenda às suas necessidades específicas.
  • O Kubernetes não fornece nativamente middleware, estruturas de processamento de dados ou bancos de dados. Contudo, tem a opção de implementar qualquer uma das funcionalidades correspondentes através de contentores.
  • É responsável por manter o seu ambiente do Kubernetes. Por exemplo, precisa de gerir atualizações do sistema operativo e do Kubernetes. Faz também a gestão dos recursos de hardware disponíveis para os nós de cluster, como rede, memória e armazenamento.

Nota

As ofertas gerenciadas do Kubernetes, como o AKS, minimizam ou até eliminam alguns desses desafios.

Verificação de conhecimento

1.

Enquanto avaliava a adequação do uso do Kubernetes para cargas de trabalho em contêineres que você pretende implantar no ambiente HCI do Azure Stack da Contoso, percebeu que precisará restringir os usuários que usam o mesmo cluster Kubernetes de criar, exibir ou usar recursos em contêineres. Qual recurso do Kubernetes você deve usar para restringir usuários?