Share via


Usar o Driver CSI do Lustre Gerenciado do Azure com Serviço de Kubernetes do Azure

Este artigo descreve como planejar, instalar e usar o Lustre Gerenciado do Azure no AKS (Serviço de Kubernetes do Azure) com o driver de interface de suporte do Kubernetes do Lustre Gerenciado do Azure (driver csi do Lustre Gerenciado do Azure).

Sobre o driver da CSI do Lustre Gerenciado do Azure para AKS

O driver da CSI (Interface de Suporte ao Contêiner) do Lustre Gerenciado do Azure para AKS permite que você acesse o armazenamento do Lustre Gerenciado do Azure como volumes de armazenamento persistentes de contêineres do Kubernetes implantados no AKS (Serviço de Kubernetes do Azure).

Versões compatíveis do Kubernetes

O driver csi do Lustre Gerenciado do Azure para AKS é compatível com o AKS (Serviço de Kubernetes do Azure). Atualmente, não há suporte para outras instalações do Kubernetes.

Há suporte para as versões 1.21 e posteriores do Kubernetes do AKS. Isso inclui todas as versões disponíveis no momento ao criar um novo cluster do AKS.

Importante

Atualmente, o driver csi do Lustre Gerenciado do Azure funciona apenas com o SKU do sistema operacional Linux do Ubuntu para pools de nós do AKS.

Versões compatíveis do Lustre

O driver da CSI do Lustre Gerenciado do Azure para AKS é compatível com o Azure Managed Lustre. Atualmente, não há suporte para outras instalações do Lustre.

As versões 0.1.10 e posteriores do driver do Lustre Gerenciado do Azure têm suporte com a versão atual do serviço Lustre Gerenciado do Azure.

Pré-requisitos

Planejar sua implantação do AKS

Há várias opções ao implantar Serviço de Kubernetes do Azure que afetam a operação entre o AKS e o Azure Managed Lustre.

Determinar o tipo de rede a ser usado com o AKS

Há dois tipos de rede compatíveis com o SKU do sistema operacional Linux do Ubuntu, o kubenet e o driver da CNI (Interface de Rede de Contêiner do Azure). Ambas as opções funcionam com o driver da CSI do Lustre Gerenciado do Azure para AKS, mas têm requisitos diferentes que precisam ser compreendidos ao configurar a rede virtual e o AKS. Consulte Conceitos de rede para aplicativos no AKS (Serviço de Kubernetes do Azure) para obter mais informações sobre como determinar a seleção adequada.

Determinar a arquitetura de rede para interconectividade do AKS e do Lustre Gerenciado do Azure

O Lustre Gerenciado do Azure opera em uma rede virtual privada, seu Kubernetes deve ter conectividade de rede com a rede virtual do Lustre Gerenciado do Azure. Há duas maneiras comuns de configurar a rede entre o Azure Managed Lustre e o AKS.

  • Instale o AKS em seu próprio Rede Virtual e crie um emparelhamento de rede virtual com o Rede Virtual do Lustre Gerenciado do Azure.
  • Use a opção Bring your Own Networking no AKS para instalar o AKS em uma nova sub-rede no Rede Virtual do Lustre Gerenciado do Azure.

Observação

Não é recomendável instalar o AKS na mesma sub-rede que o Lustre Gerenciado do Azure.

Emparelhamento do AKS e das redes virtuais do Lustre Gerenciado do Azure

A opção de emparelhar duas redes virtuais diferentes tem a vantagem de separar o gerenciamento das várias redes para diferentes funções privilegiadas. O emparelhamento também pode fornecer flexibilidade adicional, pois pode ser feito em assinaturas ou regiões do Azure. Rede Virtual Emparelhamento exigirá coordenação entre as duas redes para evitar a escolha de espaços de rede IP conflitantes.

Diagrama mostrando duas VNets, uma para o Lustre Gerenciado do Azure e outra para AKS, com uma seta de emparelhamento VNet conectando-as.

Instalando o AKS em uma sub-rede na rede virtual do Lustre Gerenciado do Azure

A opção de instalar o cluster do AKS na rede virtual do Lustre Gerenciado do Azure com o recurso Bring Your Own Network no AKS pode ser vantajosa quando você deseja cenários em que a rede é gerenciada singularmente. Um tamanho de sub-rede adicional para atender aos requisitos de rede do AKS precisará ser criado na rede virtual do Lustre Gerenciado do Azure.

Não há separação de privilégios para o gerenciamento de rede ao provisionar o AKS na Rede Lustre Gerenciada do Azure e a entidade de serviço do AKS precisará de privilégios na rede virtual Lustre Gerenciada do Azure.

Diagrama mostrando a VNet do Lustre Gerenciado do Azure com duas sub-redes, uma para o sistema de arquivos Lustre e outra para o AKS.

Visão geral da configuração

Para habilitar o Driver CSI do Lustre Gerenciado do Azure para Kubernetes, execute estas etapas:

  1. Criar um sistema de arquivos lustre gerenciado do Azure

  2. Criar um cluster do Kubernetes do AKS

  3. Criar emparelhamento de rede virtual

  4. Instale o Driver CSI do Lustre Gerenciado do Azure para Kubernetes.

  5. Criar e configurar um volume persistente.

  6. Verifique a instalação usando opcionalmente um pod de eco para confirmar se o driver está funcionando.

As seções a seguir descrevem cada tarefa com mais detalhes.

Criar um sistema de arquivos lustre gerenciado do Azure

Se você ainda não criou o cluster do sistema de arquivos do Lustre Gerenciado do Azure, crie o cluster agora. Para obter instruções, consulte Criar um sistema de arquivos Lustre Gerenciado do Azure no portal do Azure. Atualmente, o driver só pode ser usado com um sistema de arquivos lustre gerenciado do Azure existente.

Criar um cluster AKS

Se você ainda não criou o cluster do AKS, crie uma implantação de cluster. Confira Implantar um cluster do AKS (Serviço de Kubernetes do Azure).

Criar emparelhamento de rede virtual

Observação

Ignore esta etapa de emparelhamento de rede se você instalou o AKS em uma sub-rede na rede virtual do Lustre Gerenciado do Azure.

A rede virtual do AKS é criada em um grupo de recursos separado do grupo de recursos do cluster do AKS. Você pode encontrar o nome desse grupo de recursos acessando o cluster do AKS no Portal do Azure escolhendo a folha Propriedades e localizando o grupo de recursos infraestrutura . Esse grupo de recursos contém a rede virtual que precisa ser emparelhada com a rede virtual Lustre Gerenciada do Azure. Ele corresponde ao padrão MC_<aks-rg-name>_<aks-cluster-name>_<region>.

Consulte Rede Virtual Emparelhamento para emparelhar a rede virtual do AKS com sua rede virtual do Azure Manages Lustre.

Dica

Devido à nomenclatura do MC_ grupos de recursos e redes virtuais, os nomes das redes podem ser semelhantes ou iguais em várias implantações do AKS. Ao configurar o emparelhamento, preste muita atenção ao escolher as redes do AKS que pretende escolher.

Conecte-se ao cluster do AKS

Conecte-se ao cluster Serviço de Kubernetes do Azure executando estas etapas:

  1. Abra uma sessão de terminal com acesso às ferramentas da CLI do Azure e faça logon em sua conta do Azure.

    az login
    
  2. Entre no Portal do Azure.

  3. Localize o cluster do AKS. Selecione a folha Visão geral e, em seguida, selecione o botão Conectar e copie o comando para Baixar credenciais de cluster.

  4. Na sessão do terminal, cole o comando para baixar as credenciais. Ele será um comando semelhante a:

    az aks get-credentials --subscription <AKS_subscription_id> --resource_group <AKS_resource_group_name> --name <name_of_AKS>
    
  5. Instale o kubectl se ele não estiver presente em seu ambiente.

    az aks install-cli
    
  6. Verifique se o contexto atual é o cluster do AKS que você acabou de instalar as credenciais e se pode se conectar a ele:

    kubectl config current-context
    kubectl get deployments --all-namespaces=true
    

Instalar o driver csi

Para instalar o driver CSI, execute o seguinte comando:

curl -skSL https://raw.githubusercontent.com/kubernetes-sigs/azurelustre-csi-driver/main/deploy/install-driver.sh | bash

Para obter exemplos de comando de instalação local, consulte Instalar o Driver CSI do Azure Lustre em um cluster do Kubernetes.

Criar e configurar um volume persistente

Para criar um volume persistente para um sistema de arquivos lustre gerenciado do Azure existente, execute estas etapas:

  1. Copie os seguintes arquivos de configuração da pasta /docs/examples/ no repositório azurelustre-csi-driver . Se você clonou o repositório quando instalou o driver csi, já tem cópias locais disponíveis.

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    Se você não quiser clonar todo o repositório, poderá baixar cada arquivo individualmente. Abra cada um dos links a seguir, copie o conteúdo do arquivo e cole o conteúdo em um arquivo local com o mesmo nome de arquivo.

  2. No arquivo storageclass_existing_lustre.yaml , atualize o nome interno do cluster Lustre e o endereço IP do MSG.

    Captura de tela do arquivo storageclass_existing_lustre.yaml com valores a serem substituídos realçados.

    Ambas as configurações são exibidas no portal do Azure, na página Conexão do cliente do sistema de arquivos do Azure Lustre.

    Captura de tela da página conexão do cliente portal do Azure. O endereço IP do MGS e o nome

    Faça estas atualizações:

    • Substitua EXISTING_LUSTRE_FS_NAME pelo nome interno atribuído pelo sistema do cluster Lustre no sistema de arquivos lustre gerenciado do Azure. O nome interno geralmente lustrefsé . O nome interno não é o nome que você deu ao sistema de arquivos quando o criou.

      O comando sugerido mount inclui o nome realçado na cadeia de caracteres de endereço a seguir.

      Captura de tela de uma cadeia de caracteres de endereço de exemplo na página Conexão do Cliente. O nome interno do cluster Lustre está realçado.

    • Substitua EXISTING_LUSTRE_IP_ADDRESS pelo endereço IP do MSG.

  3. Para criar a classe de armazenamento e a declaração de volume persistente, execute o seguinte kubectl comando:

    kubectl create -f storageclass_existing_lustre.yaml
    kubectl create -f pvc_storageclass.yaml
    

Verificar a instalação

Se você quiser marcar sua instalação, opcionalmente, poderá usar um pod de eco para confirmar se o driver está funcionando.

Para exibir carimbos de data/hora no console durante as gravações, execute os seguintes comandos:

  1. Adicione o seguinte código ao pod de eco:

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Para exibir carimbos de data/hora no console durante as gravações, execute o seguinte kubectl comando:

    `kubectl logs -f lustre-echo-date`
    

Próximas etapas