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
- Uma conta do Azure com uma subscrição ativa. Crie uma conta gratuitamente.
- Um ambiente terminal com as ferramentas da CLI do Azure instaladas. Veja Introdução à CLI do Azure
- o kubectl, a ferramenta de gestão do Kubernetes, está instalado no seu ambiente de terminal. Veja Início Rápido: Implementar um cluster do Azure Kubernetes Service (AKS) com a CLI do Azure
- Crie uma implementação do Azure Managed Lustre. Veja a documentação do Sistema de Ficheiros do Azure Managed Lustre
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.
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.
Descrição geral da configuração
Para ativar o Controlador CSI do Azure Managed Lustre para Kubernetes, execute estes passos:
Instale o Controlador CSI do Azure Managed Lustre para Kubernetes.
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:
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
Inicie sessão no portal do Azure.
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.
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>
Instale o kubectl se não estiver presente no seu ambiente.
az aks install-cli
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:
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.
No ficheiro storageclass_existing_lustre.yaml , atualize o nome interno do cluster Lustre e o endereço IP MSG.
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.
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.Substitua pelo
EXISTING_LUSTRE_IP_ADDRESS
Endereço IP do MSG.
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:
Adicione o seguinte código ao pod echo:
while true; do echo $(date) >> /mnt/lustre/outfile; tail -1 /mnt/lustre/outfile; sleep 1; done
Para ver os carimbos de data/hora na consola durante as escritas, execute o seguinte
kubectl
comando:`kubectl logs -f lustre-echo-date`