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
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um ambiente de terminal com as ferramentas da CLI do Azure instaladas. Consulte Introdução à CLI do Azure.
- kubectl, a ferramenta de gerenciamento do Kubernetes, instalada em seu ambiente de terminal. Consulte Início Rápido: Implantar um cluster do AKS (Serviço de Kubernetes do Azure) usando a CLI do Azure.
- Uma implantação do Azure Managed Lustre. Consulte a documentação do Lustre Gerenciado do Azure.
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.
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.
Configuração do driver
Para habilitar o Driver CSI do Azure Lustre para Kubernetes, execute estas etapas:
Criar um cluster do sistema de arquivos Lustre gerenciado pelo Azure.
Crie e configure um volume persistente.
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
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
Abra uma sessão de terminal com acesso às ferramentas da CLI do Azure e entre em sua conta do Azure:
az login
Entre no portal do Azure.
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.
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>
Instale o kubectl se ele não estiver presente em seu ambiente:
az aks install-cli
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:
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.
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).
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.
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 é geralmentelustrefs
. 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.Substitua
EXISTING_LUSTRE_IP_ADDRESS
pelo endereço IP do MGS.
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:
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
Para exibir carimbos de data/hora no console durante gravações, execute o seguinte comando
kubectl
:`kubectl logs -f lustre-echo-date`