Compartilhar via


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

Neste artigo, você aprenderá a planejar, instalar e usar Azure Managed Lustre no Azure Kubernetes Service (AKS) com o Azure Lustre CSI Driver para Kubernetes. Esse driver é baseado na especificação CSI (Interface de Suporte de Contêiner).

Você pode usar o Driver CSI do Azure Lustre para Kubernetes para acessar o armazenamento do Lustre Gerenciado do Azure como volumes de armazenamento persistente a partir de contêineres do Kubernetes implantados no AKS.

Versões compatíveis do Kubernetes

O driver CSI do Azure Lustre para Kubernetes é compatível com AKS. No momento, não há suporte para outras instalações do Kubernetes.

Há suporte para as versões 1.21 e posteriores do Kubernetes do AKS. Esse suporte inclui todas as versões disponíveis no momento quando você está criando um novo cluster do AKS.

Importante

O Driver CSI do Azure Lustre para Kubernetes funciona atualmente apenas com a SKU do SO Ubuntu Linux para pools de nós do AKS.

Versões compatíveis do Lustre

O Driver CSI do Azure Lustre para Kubernetes é compatível com o Lustre Gerenciado do Azure. Outras instalações do Lustre não são suportadas no momento.

O driver CSI do Azure Lustre para versões 0.1.10 e posteriores do Kubernetes tem suporte na versão atual do serviço Azure Managed Lustre.

Pré-requisitos

Planejar sua implantação do AKS

Quando você está implantando o Serviço de Kubernetes do Azure, várias opções afetam a operação entre o AKS e o Azure Managed Lustre.

Determinar o tipo de rede a ser usado com o AKS

Existem dois tipos de rede compatíveis com a SKU do SO Ubuntu Linux: o kubernet e o driver da Interface de Rede de Contêiner do Azure (CNI). Ambas as opções funcionam com o Driver CSI do Azure Lustre para Kubernetes, mas elas têm requisitos diferentes que você precisa entender ao configurar a rede virtual e o AKS. Para obter mais informações sobre como determinar a seleção adequada, consulte Conceitos de rede para aplicativos no AKS (Serviço de Kubernetes do Azure).

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. Sua instância do AKS 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 sua própria rede virtual e crie um emparelhamento de rede virtual com a rede virtual do Lustre Gerenciado do Azure.
  • Use a opção 'Traga sua própria rede virtual do Azure' no AKS para instalar o AKS em uma nova sub-rede na rede virtual do Lustre Gerenciado do Azure.

Observação

Não recomendamos que você instale o AKS na mesma sub-rede que o Lustre Gerenciado do Azure.

Emparelhamento de redes virtuais do AKS e do Azure Managed Lustre

A opção de emparelhar duas redes virtuais tem a vantagem de separar o gerenciamento das redes em diferentes funções privilegiadas. O peering também pode fornecer ainda mais flexibilidade, pois você pode implementá-lo em assinaturas ou regiões do Azure. O emparelhamento de rede virtual requer coordenação entre as duas redes para evitar escolher espaços de rede IP conflitantes.

Diagrama que mostra duas redes virtuais, uma para o Lustre Gerenciado do Azure e outra para o AKS, com uma seta de emparelhamento conectando as duas.

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

A opção de instalação do cluster do AKS na rede virtual do Lustre Gerenciado do Azure com o recurso Traga sua própria rede virtual do Azure no AKS pode ser vantajosa em cenários em que a rede é gerenciada de forma individual. Você precisará criar uma sub-rede adicional, dimensionada para atender aos requisitos de rede do AKS, na rede virtual do Lustre Gerenciado do Azure.

Não há separação de privilégios para o gerenciamento de rede quando você está provisionando o AKS na rede virtual do Lustre Gerenciado do Azure. A entidade de serviço do AKS precisa de privilégios na rede virtual do Lustre Gerenciado do Azure.

Diagrama que mostra uma rede virtual do Lustre Gerenciado do Azure com duas sub-redes, uma para o sistema de arquivos Lustre e outra para o AKS.

Configuração do driver

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

  1. Criar um cluster do sistema de arquivos Lustre gerenciado pelo Azure.

  2. Crie um cluster do AKS.

  3. Crie um emparelhamento de rede virtual.

  4. Instalar o driver.

  5. Crie e configure um volume persistente.

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

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

Criar um cluster do sistema de arquivos Lustre Gerenciado do Azure

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

Criar um cluster do AKS

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

Criar um emparelhamento de rede virtual

Observação

Se você tiver instalado o AKS em uma sub-rede na rede virtual do Lustre Gerenciado do Azure, ignore a etapa de emparelhamento de rede.

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, acessando Propriedadese encontrando o grupo de recursos infraestrutura . Esse grupo de recursos contém a rede virtual que precisa ser emparelhada com a rede virtual do Azure Managed Lustre. Ele corresponde ao padrão MC_<aks-rg-name>_<aks-cluster-name>_<region>.

Para emparelhar a rede virtual do AKS com a sua rede virtual do Lustre Gerenciado do Azure, consulte Emparelhamento de rede virtual.

Dica

Devido à nomenclatura dos grupos de recursos MC_ e redes virtuais, os nomes das redes podem ser semelhantes ou iguais em várias implantações do AKS. Ao configurar o emparelhamento, tenha cuidado para selecionar as redes do AKS que pretende escolher.

Conecte-se ao cluster do AKS

  1. Abra uma sessão de terminal com acesso às ferramentas da CLI do Azure e entre em sua conta do Azure:

    az login
    
  2. Entre no portal do Azure.

  3. Localize o cluster do AKS. No painel Visão Geral, selecione o botão Conectar e depois copie o comando para Baixar credenciais de cluster.

  4. Na sessão do terminal, cole o comando para baixar as credenciais. O 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 no qual 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

Para instalar o Driver CSI do Azure Lustre para Kubernetes, execute o seguinte comando:

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

Para obter comandos de exemplo para uma 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 Azure Lustre Gerenciado existente:

  1. Copie os arquivos de configuração a seguir da pasta /docs/examples/ no repositório azurelustre-csi-driver . Se você clonou o repositório quando instalado o driver, você 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 Serviço de Gerenciamento Lustre (MGS).

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

    As duas configurações são exibidas no portal do Azure, no painel Conexão de cliente para o sistema de arquivos do Lustre Gerenciado do Azure.

    Captura de tela do painel de conexão do cliente no 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 em seu 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 no painel para conexão do cliente. O nome interno do cluster Lustre está realçado.

    • Substitua EXISTING_LUSTRE_IP_ADDRESS pelo endereço IP do MGS.

  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
    

Verifique a instalação

Se você quiser verificar 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 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 gravações, execute o seguinte comando kubectl:

    `kubectl logs -f lustre-echo-date`