Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met Azure HPC Cache wordt de toegang tot uw gegevens versneld voor HPC-taken (High Performance Computing). Door bestanden in cache op te slaan in Azure, brengt Azure HPC Cache de schaalbaarheid van cloud-computing naar uw bestaande werkstroom. In dit artikel leest u hoe u Azure HPC Cache integreert met Azure Kubernetes Service (AKS).
Voordat u begint
Een AKS-cluster moet zich in een regio bevinden die Ondersteuning biedt voor Azure HPC Cache.
U hebt Azure CLI versie 2.7 of hoger nodig. Voer
az --versionuit om de versie te bekijken. Als u Azure CLI 2.0 wilt installeren of upgraden, raadpleegt u Azure CLI 2.0 installeren.Registreer de
hpc-cacheextensie in uw Azure-abonnement. Zie de vereisten voor HPC Cache CLI voor meer informatie over het gebruik van HPC Cache Met Azure CLI.Controleer de vereisten voor HPC Cache. U moet aan het volgende voldoen voordat u een HPC-cache kunt uitvoeren:
- De cache vereist een toegewezen subnet met ten minste 64 IP-adressen die beschikbaar zijn.
- Het subnet mag geen andere VM's of containers hosten.
- Het subnet moet toegankelijk zijn vanaf de AKS-knooppunten.
Als u uw toepassing moet uitvoeren als gebruiker zonder hoofdtoegang, moet u mogelijk root-squashing uitschakelen met behulp van de opdracht eigenaar van de wijziging (chown) om het eigendom van de directory te wijzigen in een andere gebruiker. De gebruiker zonder hoofdtoegang moet eigenaar zijn van een map om toegang te krijgen tot het bestandssysteem. Als de gebruiker eigenaar is van een map, moet de hoofdgebruiker een map aan die gebruiker toewijzen, maar als de HPC-cache de hoofdmap verplettert, wordt deze bewerking geweigerd omdat de hoofdgebruiker (UID 0) wordt toegewezen aan de anonieme gebruiker. Zie HPC Cache-toegangsbeleid voor meer informatie over root-squashing- en clienttoegangsbeleid.
hpc-cache De Azure CLI-extensie installeren
Belangrijk
AKS preview-functies zijn beschikbaar op selfservice, opt-in basis. Previews worden geleverd 'zoals is' en 'als beschikbaar' en ze worden uitgesloten van de serviceovereenkomsten en beperkte garantie. AKS-previews worden gedeeltelijk gedekt door klantondersteuning op basis van best effort. Daarom zijn deze functies niet bedoeld voor productiegebruik. Zie de volgende ondersteuningsartikelen voor meer informatie:
Voer de volgende opdracht uit om de hpc-cache-extensie te installeren:
az extension add --name hpc-cache
Voer de volgende opdracht uit om bij te werken naar de nieuwste versie van de extensie die is uitgebracht:
az extension update --name hpc-cache
De functievlag StorageCache registreren
Registreer de resourceprovider Microsoft.StorageCache met behulp van de az provider register opdracht.
az provider register --namespace Microsoft.StorageCache --wait
Het duurt enkele minuten voordat de status Geregistreerd wordt weergegeven. Controleer de registratiestatus met behulp van de opdracht az feature show :
az feature show --namespace "Microsoft.StorageCache"
De Azure HPC Cache maken
Haal de knooppuntresourcegroep op met behulp van de
az aks showopdracht met de--query nodeResourceGroupqueryparameter.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsvDe uitvoer moet er ongeveer uitzien als in de volgende voorbeelduitvoer:
MC_myResourceGroup_myAKSCluster_eastusMaak een toegewezen HPC Cache-subnet met behulp van de
az network vnet subnet createopdracht. Definieer eerst de omgevingsvariabelen voorRESOURCE_GROUP,VNET_NAMEenVNET_IDSUBNET_NAME. Kopieer de uitvoer van de vorige stap enRESOURCE_GROUPgeef een waarde op voorSUBNET_NAME.RESOURCE_GROUP=MC_myResourceGroup_myAKSCluster_eastus VNET_NAME=$(az network vnet list --resource-group $RESOURCE_GROUP --query [].name -o tsv) VNET_ID=$(az network vnet show --resource-group $RESOURCE_GROUP --name $VNET_NAME --query "id" -o tsv) SUBNET_NAME=MyHpcCacheSubnetaz network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 10.0.0.0/26Maak een HPC-cache in dezelfde knooppuntresourcegroep en -regio. Definieer eerst de omgevingsvariabele
SUBNET_ID.SUBNET_ID=$(az network vnet subnet show --resource-group $RESOURCE_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME --query "id" -o tsv)Maak de HPC Cache met behulp van de
az hpc-cache createopdracht. In het volgende voorbeeld wordt de HPC-cache gemaakt in de regio VS - oost met een standaard 2G-cachetype met de naam MyHpcCache. Geef een waarde op voor --location, --sku-name en --name.az hpc-cache create \ --resource-group $RESOURCE_GROUP \ --cache-size-gb "3072" \ --location eastus \ --subnet $SUBNET_ID \ --sku-name "Standard_2G" \ --name MyHpcCacheNotitie
Het maken van de HPC-cache kan tot 20 minuten duren.
Azure Storage maken en configureren
Maak een opslagaccount met behulp van de
az storage account createopdracht. Definieer eerst de omgevingsvariabeleSTORAGE_ACCOUNT_NAME.Belangrijk
U moet een unieke naam voor het opslagaccount selecteren. Vervang door
uniquestorageaccountde opgegeven naam. Namen van opslagaccounts moeten tussen de 3 en 24 tekens lang zijn en mogen alleen cijfers en kleine letters bevatten.STORAGE_ACCOUNT_NAME=uniquestorageaccountIn het volgende voorbeeld wordt een opslagaccount gemaakt in de regio VS - oost met de Standard_LRS SKU. Geef een waarde op voor --location en --sku.
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location eastus \ --sku Standard_LRSWijs de rol Inzender voor opslagblobgegevens toe aan uw abonnement met behulp van de
az role assignment createopdracht. Definieer eerst de omgevingsvariabelenSTORAGE_ACCOUNT_IDenAD_USER.STORAGE_ACCOUNT_ID=$(az storage account show --name $STORAGE_ACCOUNT_NAME --query "id" -o tsv) AD_USER=$(az ad signed-in-user show --query objectId -o tsv)az role assignment create --role "Storage Blob Data Contributor" --assignee $AD_USER --scope $STORAGE_ACCOUNT_IDMaak de Blob-container in het opslagaccount met behulp van de
az storage container createopdracht. Definieer eerst de omgevingsvariabeleCONTAINER_NAMEen vervang de naam voor de Blob-container.CONTAINER_NAME=mystoragecontaineraz storage container create --name $CONTAINER_NAME --account-name $STORAGE_ACCOUNT_NAME --auth-mode loginGeef machtigingen op voor het Azure HPC Cache-serviceaccount voor toegang tot uw opslagaccount en Blob-container met behulp van de
az role assignmentopdrachten. Definieer eerst de omgevingsvariabelenHPC_CACHE_USERenHPC_CACHE_ID.HPC_CACHE_USER="StorageCache Resource Provider" HPC_CACHE_ID=$(az ad sp list --display-name "${HPC_CACHE_USER}" --query "[].objectId" -o tsv)az role assignment create --role "Storage Account Contributor" --assignee $HPC_CACHE_ID --scope $STORAGE_ACCOUNT_ID az role assignment create --role "Storage Blob Data Contributor" --assignee $HPC_CACHE_ID --scope $STORAGE_ACCOUNT_IDVoeg de blobcontainer toe aan uw HPC Cache als opslagdoel met behulp van de
az hpc-cache blob-storage-target addopdracht. In het volgende voorbeeld wordt een blobcontainer met de naam MyStorageTarget gemaakt naar de HPC Cache MyHpcCache. Geef een waarde op voor --name, --cache-name en --virtual-namespace-path.az hpc-cache blob-storage-target add \ --resource-group $RESOURCE_GROUP \ --cache-name MyHpcCache \ --name MyStorageTarget \ --storage-account $STORAGE_ACCOUNT_ID \ --container-name $CONTAINER_NAME \ --virtual-namespace-path "/myfilepath"
Clienttaakverdeling instellen
Maak een Azure Privé-DNS-zone voor de clientgerichte IP-adressen met behulp van de
az network private-dns zone createopdracht. Definieer eerst de omgevingsvariabelePRIVATE_DNS_ZONEen geef een naam op voor de zone.PRIVATE_DNS_ZONE="myhpccache.local"az network private-dns zone create \ --resource-group $RESOURCE_GROUP \ --name $PRIVATE_DNS_ZONEMaak een DNS-koppeling tussen de Azure Privé-DNS-zone en het VNet met behulp van de
az network private-dns link vnet createopdracht. Vervang de waarde voor --name.az network private-dns link vnet create \ --resource-group $RESOURCE_GROUP \ --name MyDNSLink \ --zone-name $PRIVATE_DNS_ZONE \ --virtual-network $VNET_NAME \ --registration-enabled trueMaak de round robin DNS-naam voor de clientgerichte IP-adressen met behulp van de
az network private-dns record-set a createopdracht. Definieer eerst de omgevingsvariabelenDNS_NAME,HPC_MOUNTS0, enHPC_MOUNTS1HPC_MOUNTS2. Vervang de waarde voor de eigenschapDNS_NAME.DNS_NAME="server" HPC_MOUNTS0=$(az hpc-cache show --name "MyHpcCache" --resource-group $RESOURCE_GROUP --query "mountAddresses[0]" -o tsv | tr --delete '\r') HPC_MOUNTS1=$(az hpc-cache show --name "MyHpcCache" --resource-group $RESOURCE_GROUP --query "mountAddresses[1]" -o tsv | tr --delete '\r') HPC_MOUNTS2=$(az hpc-cache show --name "MyHpcCache" --resource-group $RESOURCE_GROUP --query "mountAddresses[2]" -o tsv | tr --delete '\r')az network private-dns record-set a add-record -g $RESOURCE_GROUP -z $PRIVATE_DNS_ZONE -n $DNS_NAME -a $HPC_MOUNTS0 az network private-dns record-set a add-record -g $RESOURCE_GROUP -z $PRIVATE_DNS_ZONE -n $DNS_NAME -a $HPC_MOUNTS1 az network private-dns record-set a add-record -g $RESOURCE_GROUP -z $PRIVATE_DNS_ZONE -n $DNS_NAME -a $HPC_MOUNTS2
Een permanent volume maken
Maak een bestand met de naam
pv-nfs.yamlom een permanent volume te definiëren en plak het volgende manifest. Vervang de waarden voor de eigenschapserverenpath.--- apiVersion: v1 kind: PersistentVolume metadata: name: pv-nfs spec: capacity: storage: 10000Gi accessModes: - ReadWriteMany mountOptions: - vers=3 nfs: server: server.myhpccache.local path: /Haal de referenties voor uw Kubernetes-cluster op met behulp van de
az aks get-credentialsopdracht.az aks get-credentials --resource-group myResourceGroup --name myAKSClusterMaak het permanente volume met behulp van de
kubectl applyopdracht.kubectl apply -f pv-nfs.yamlControleer of de status van het permanente volume beschikbaar is met behulp van de
kubectl describeopdracht.kubectl describe pv pv-nfs
De permanente volumeclaim maken
Maak een bestand met de naam
pvc-nfs.yamlom een permanente volumeclaim te definiëren en plak het volgende manifest.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-nfs spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 100GiMaak de permanente volumeclaim met behulp van de
kubectl applyopdracht.kubectl apply -f pvc-nfs.yamlControleer of de status van de permanente volumeclaim afhankelijk is met behulp van de
kubectl describeopdracht.kubectl describe pvc pvc-nfs
De HPC-cache koppelen aan een pod
Maak een bestand met de naam
nginx-nfs.yamlom een pod te definiëren die gebruikmaakt van de permanente volumeclaim en plak vervolgens het volgende manifest.kind: Pod apiVersion: v1 metadata: name: nginx-nfs spec: containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine name: nginx-nfs command: - "/bin/sh" - "-c" - while true; do echo $(date) >> /mnt/azure/myfilepath/outfile; sleep 1; done volumeMounts: - name: disk01 mountPath: /mnt/azure volumes: - name: disk01 persistentVolumeClaim: claimName: pvc-nfsMaak de pod met behulp van de
kubectl applyopdracht.kubectl apply -f nginx-nfs.yamlControleer of de pod wordt uitgevoerd met behulp van de
kubectl describeopdracht.kubectl describe pod nginx-nfsControleer of uw volume is gekoppeld in de pod met behulp van de
kubectl execopdracht om verbinding te maken met de pod.kubectl exec -it nginx-nfs -- shAls u wilt controleren of het volume is gekoppeld, voert
dfu de door mensen leesbare indeling uit met behulp van de--human-readableoptie (-hkortom).df -hHet volgende voorbeeld lijkt op uitvoer die wordt geretourneerd door de opdracht:
Filesystem Size Used Avail Use% Mounted on ... server.myhpccache.local:/myfilepath 8.0E 0 8.0E 0% /mnt/azure/myfilepath ...
Volgende stappen
- Zie het overzicht van HPC Cache voor meer informatie over Azure HPC Cache.
- Zie Voor meer informatie over het gebruik van NFS met AKS handmatig een Network File System (NFS) Linux Server-volume maken en gebruiken met AKS.