Armazenamento de contêineres do Windows com AKS Híbrido

Concluído

As opções de implantação híbrida do Serviço de Kubernetes do Azure (AKS) ("AKS híbrido") são uma implementação local do orquestrador do Serviço de Kubernetes do Azure. O orquestrador automatiza a execução de aplicativos conteinerizados em escala, permitindo a operação de aplicativos nativos de nuvem consistentes em qualquer lugar. infraestrutura local e integrá-los aos serviços do Azure.

Dependendo da classe de hardware, da disponibilidade de computação e do processo de adoção do Kubernetes, as seguintes opções de implantação híbrida do AKS estão disponíveis:

  • AKS no Windows Server
  • AKS no Azure Stack HCI (infraestrutura hiperconvergente)
  • Provisionamento de cluster do AKS do Azure (VERSÃO PRÉVIA)
  • AKS Edge Essentials

Armazenamento no AKS híbrido

Como o AKS híbrido é uma implementação do AKS, a maioria dos conceitos de armazenamento são os mesmos. Um cluster híbrido do AKS contém um plano de controle gerenciado pelo AKS que fornece os principais serviços e orquestração do Kubernetes, enquanto você gerencia os nós que contêm pods com suas cargas de trabalho de aplicativo. O diagrama a seguir mostra a arquitetura de um cluster híbrido do AKS que está usando a opção de implantação híbrida do AKS no Azure Stack HCI:

Diagram showing the architecture of an AKS hybrid cluster that is using the AKS hybrid deployment option AKS on Azure Stack HCI.

Assim como no AKS, os volumes tradicionais são recursos do Kubernetes apoiados pelo Armazenamento do Microsoft Azure. Você pode criar volumes de dados de forma manual para atribuí-los diretamente aos pods ou fazer com que o Kubernetes os crie automaticamente. Para associar esses volumes ao Armazenamento do Microsoft Azure, o AKS híbrido usa a CSI (Interface de Armazenamento de Contêiner). O AKS híbrido dá suporte a contêineres do Windows e ao armazenamento persistente com os mesmos drivers CSI que o AKS.

Ao criar armazenamento persistente, o AKS híbrido usa os mesmos conceitos do Kubernetes que o AKS, com algumas variações. Os volumes persistentes são criados estaticamente ou dinamicamente. Se forem criados dinamicamente, você definirá o tipo e o ciclo de vida deles com uma classe de armazenamento, e eles serão vinculados ao volume persistente (PV) com uma reivindicação de volume persistente (PVC).

A diferença entre o armazenamento híbrido e o AKS é o suporte ao uso de seu armazenamento local como armazenamento persistente.

Volumes persistentes

Um volume persistente é um recurso de armazenamento criado e gerenciado pela API do Kubernetes que pode existir além do tempo de vida de um pod individual. Por exemplo, ao usar a opção de implantação híbrida AKS no Azure Stack HCI, você pode usar volumes de disco AKS com suporte de VHDX (tipo de arquivo de disco rígido virtual) que são montados como ReadWriteOnce e são acessíveis a um único nó de cada vez. Ou você pode usar volumes de Arquivos AKS com suporte por compartilhamentos de arquivos SMB (Server Message Block) ou NFS (Sistema de Arquivos de Rede). Eles são montados como ReadWriteMany e estão disponíveis para vários nós simultaneamente.

Um administrador de cluster pode criar um volume persistente de forma estática ou dinâmica pelo servidor da API do Kubernetes. Se um pod for agendado e solicitar um armazenamento que não esteja disponível no momento, o Kubernetes poderá criar o arquivo VHDX subjacente e anexá-lo ao pod. A dinâmica de provisionamento usa um StorageClass para identificar qual tipo de armazenamento precisa ser criado.

Classes de armazenamento

Uma classe de armazenamento define a camada de armazenamento, o local e o reclaimPolicy do recurso de armazenamento subjacente.

No AKS híbrido, a classe de armazenamento padrão é criada automaticamente e usa CSV para criar volumes com suporte de VHDX. A política de recuperação garante que o VHDX subjacente seja excluído quando o volume persistente que o usou for excluído. A classe de armazenamento também configura os volumes persistentes para serem expansíveis, portanto, você só precisa editar a declaração de volume persistente com o novo tamanho.

Se você não especificar umStorageClass para um volume persistente, o StorageClass padrão será usado. Ao solicitar volumes persistentes, certifique-se de que eles usem o armazenamento apropriado de que você precisa. Você pode criar uma StorageClass para outras necessidades.

Declarações de volume persistente

Um PersistentVolumeClaim solicita armazenamento ReadWriteOnce ou ReadWriteMany de um determinado StorageClass e tamanho. O servidor de API do Kubernetes poderá provisionar dinamicamente o recurso de armazenamento subjacente no AKS híbrido se não houver nenhum recurso existente para atender à declaração com base no StorageClassdefinido. A definição de pod inclui a montagem de volume depois que o volume for conectado no pod.

Um PersistentVolume é associado a um PersistentVolumeClaim depois que um recurso de armazenamento disponível é atribuído ao pod que o solicita. Há um mapeamento individual de volumes persistentes para declarações.

Uso de discos locais para armazenamento persistente

Um dos benefícios de usar o AKS híbrido é que você pode usar discos locais como armazenamento persistente para contêineres do Windows. Os discos locais são discos físicos anexados aos nós locais. Os discos locais oferecem alto desempenho e baixa latência para seus aplicativos conteinerizados.

Para usar discos locais com contêineres do Windows no AKS híbrido, você precisa usar o plug-in do provisionador de volume local. Este plugin descobre e cria automaticamente volumes persistentes (PVs) para discos locais em seus nós. Em seguida, você precisará criar declarações de volume persistentes (PVCs) que correspondam aos PVs com base na afinidade do nó e na classe de armazenamento. Finalmente, você precisa montar os PVCs em seus pods ou contêineres usando definições de volume.