Partilhar via


Utilizar o Controlador CSI do Azure Managed Lustre com Azure Kubernetes Service

Este artigo descreve como planear, instalar e utilizar o Azure Managed Lustre no Azure Kubernetes Service (AKS) com o controlador de interface de suporte de contentor do Azure Managed Lustre Kubernetes (controlador CSI do Azure Managed Lustre).

Acerca do controlador CSI do Azure Managed Lustre para o AKS

O controlador CSI (Azure Managed Managed Lustre Container Support Interface) do AKS permite-lhe aceder ao armazenamento do Azure Managed Lustre como volumes de armazenamento persistentes a partir de contentores do Kubernetes implementados no Azure Kubernetes Service (AKS).

Versões compatíveis do Kubernetes

O controlador CSI do Azure Managed Lustre para AKS é compatível com Azure Kubernetes Service (AKS). Outras instalações do Kubernetes não são atualmente suportadas.

São suportadas as versões 1.21 e posteriores do AKS Kubernetes. Isto inclui todas as versões atualmente disponíveis ao criar um novo cluster do AKS.

Importante

Atualmente, o controlador CSI do Azure Managed Lustre só funciona com o SKU do SO Ubuntu Linux para conjuntos de nós do AKS.

Versões do Lustre compatíveis

O controlador CSI do Azure Managed Lustre para o AKS é compatível com o Azure Managed Lustre. Outras instalações do Lustre não são atualmente suportadas.

As versões 0.1.10 e posteriores do controlador CSI do Azure Managed Lustre são suportadas com a versão atual do serviço Azure Managed Lustre.

Pré-requisitos

Planear a implementação do AKS

Existem várias opções ao implementar Azure Kubernetes Service que afetam a operação entre o AKS e o Azure Managed Lustre.

Determinar o tipo de rede a utilizar com o AKS

Existem dois tipos de rede compatíveis com o SKU do SO Ubuntu Linux, o kubenet e o controlador CNI (Azure Container Network Interface). Ambas as opções funcionam com o controlador CSI do Azure Managed Lustre para o AKS, mas têm requisitos diferentes que têm de ser compreendidos ao configurar redes virtuais e o AKS. Veja Conceitos de rede para aplicações no Azure Kubernetes Service (AKS) para obter mais informações sobre como determinar a seleção adequada.

Determinar a arquitetura de rede para interligação do AKS e do Azure Managed Lustre

O Azure Managed Lustre funciona numa rede virtual privada, o Kubernetes tem de ter conectividade de rede à rede virtual do Azure Managed Lustre. Existem duas formas comuns de configurar a rede entre o Azure Managed Lustre e o AKS.

  • Instale o AKS no seu próprio Rede Virtual e crie um peering de rede virtual com o Azure Managed Lustre Rede Virtual.
  • Utilize a opção Bring your Own Networking no AKS para instalar o AKS numa nova sub-rede no Azure Managed Lustre Rede Virtual.

Nota

Não é recomendado instalar o AKS na mesma sub-rede que o Azure Managed Lustre.

Peering AKS and Azure Managed Lustre virtual networks (Peering AKS and Azure Managed Lustre virtual networks)

A opção de colocar duas redes virtuais diferentes em modo de peering tem a vantagem de separar a gestão das várias redes para diferentes funções privilegiadas. O peering também pode fornecer flexibilidade adicional, uma vez que pode ser feito em todas as subscrições ou regiões do Azure. Rede Virtual Peering exigirá coordenação entre as duas redes para evitar escolher espaços de rede IP em conflito.

Diagrama a mostrar duas VNets, uma para o Azure Managed Lustre e outra para o AKS, com uma seta de peering de VNet a ligá-las.

Instalar o AKS numa sub-rede na rede virtual do Azure Managed Lustre

A opção para instalar o cluster do AKS na rede virtual do Azure Managed Lustre com a funcionalidade Bring Your Own Network no AKS pode ser vantajosa onde quer cenários em que a rede é gerida singularmente. Terá de ser criada uma sub-rede adicional para satisfazer os seus requisitos de rede do AKS na rede virtual do Azure Managed Lustre.

Não existe separação de privilégios para a gestão de rede ao aprovisionar o AKS na Rede Lustre Gerida do Azure e o principal de serviço do AKS precisará de privilégios na rede virtual do Azure Managed Lustre.

Diagrama a mostrar a VNet do Azure Managed Lustre com duas sub-redes, uma para o sistema de ficheiros Lustre e outra para o AKS.

Descrição geral da configuração

Para ativar o Controlador CSI do Azure Managed Lustre para Kubernetes, execute estes passos:

  1. Criar um sistema de ficheiros do Azure Managed Lustre

  2. Criar um Cluster do Kubernetes do AKS

  3. Criar peering de rede virtual

  4. Instale o Controlador CSI do Azure Managed Lustre para Kubernetes.

  5. Criar e configurar um volume persistente.

  6. Verifique a instalação ao utilizar opcionalmente um pod de eco para confirmar que o controlador está a funcionar.

As secções seguintes descrevem cada tarefa com maior detalhe.

Criar um sistema de ficheiros do Azure Managed Lustre

Se ainda não criou o cluster do sistema de ficheiros do Azure Managed Lustre, crie o cluster agora. Para obter instruções, veja Criar um sistema de ficheiros do Azure Managed Lustre no portal do Azure. Atualmente, o controlador só pode ser utilizado com um sistema de ficheiros do Azure Managed Lustre existente.

Criar um cluster do AKS

Se ainda não criou o cluster do AKS, crie uma implementação de cluster. Veja Implementar um cluster do Azure Kubernetes Service (AKS).

Criar peering de rede virtual

Nota

Ignore este passo de peering de rede se tiver instalado o AKS numa sub-rede na rede virtual do Azure Managed Lustre.

A rede virtual do AKS é criada num grupo de recursos separado do grupo de recursos do cluster do AKS. Pode encontrar o nome deste grupo de recursos ao aceder ao cluster do AKS no Portal do Azure, escolhendo o painel Propriedades e encontrando o grupo de recursos Infraestrutura . Este grupo de recursos contém a rede virtual que precisa de ser emparelhada com a rede virtual do Azure Managed Lustre. Corresponde ao padrão MC_<aks-rg-name>_<aks-cluster-name>_<region>.

Consulte Rede Virtual Peering para criar um peering na rede virtual do AKS com a sua rede virtual Do Azure Manages Lustre.

Dica

Devido à nomenclatura dos MC_ grupos de recursos e redes virtuais, os nomes das redes podem ser semelhantes ou os mesmos em várias implementações do AKS. Ao configurar o peering, tenha em atenção que está a escolher as redes do AKS que pretende escolher.

Ligar ao cluster do AKS

Ligue-se ao cluster de Azure Kubernetes Service efetuando estes passos:

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

    az login
    
  2. Inicie sessão no portal do Azure.

  3. Localize o cluster do AKS. Selecione o painel Descrição geral e, em seguida, selecione o botão Ligar e copie o comando para Transferir credenciais do cluster.

  4. Na sua sessão de terminal, cole o comando para transferir as credenciais. 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 não estiver presente no seu ambiente.

    az aks install-cli
    
  6. Verifique se o contexto atual é o cluster do AKS que acabou de instalar as credenciais e que pode ligar-se ao mesmo:

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

Instalar o controlador CSI

Para instalar o controlador 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 comandos de instalação local, veja Instalar o Controlador CSI do Azure Lustre num cluster do Kubernetes.

Criar e configurar um volume persistente

Para criar um volume persistente para um sistema de ficheiros do Azure Managed Lustre existente, siga estes passos:

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

    • storageclass_existing_lustre.yaml
    • pvc_storageclass.yaml

    Se não quiser clonar todo o repositório, pode transferir cada ficheiro individualmente. Abra cada uma das seguintes ligações, copie o conteúdo do ficheiro e, em seguida, cole os conteúdos num ficheiro local com o mesmo nome de ficheiro.

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

    Captura de ecrã do ficheiro storageclass_existing_lustre.yaml com valores a substituir realçados.

    Ambas as definições são apresentadas no portal do Azure, na página Ligação de cliente do sistema de ficheiros do Azure Lustre.

    Captura de ecrã a mostrar a página portal do Azure Ligação de Cliente. O endereço IP MGS e o nome

    Efetue estas atualizações:

    • Substitua EXISTING_LUSTRE_FS_NAME pelo nome interno atribuído pelo sistema do cluster Lustre no seu sistema de ficheiros do Azure Managed Lustre. Normalmente, o nome interno é lustrefs. O nome interno não é o nome que atribuiu ao sistema de ficheiros quando o criou.

      O comando sugerido mount inclui o nome realçado na seguinte cadeia de endereço.

      Captura de ecrã a mostrar uma cadeia de endereço de exemplo na página Ligação do Cliente. O nome interno do cluster Lustre está realçado.

    • Substitua pelo EXISTING_LUSTRE_IP_ADDRESSEndereço IP do MSG.

  3. Para criar a classe de armazenamento e a afirmaçã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 quiser verificar a instalação, pode utilizar opcionalmente um pod de eco para confirmar que o controlador está a funcionar.

Para ver os carimbos de data/hora na consola durante as escritas, execute os seguintes comandos:

  1. Adicione o seguinte código ao pod echo:

    while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
    
  2. Para ver os carimbos de data/hora na consola durante as escritas, execute o seguinte kubectl comando:

    `kubectl logs -f lustre-echo-date`
    

Passos seguintes