Integrace služby Azure HPC Cache se službou Azure Kubernetes Service (AKS)
Azure HPC Cache zrychluje přístup k datům pro úlohy vysokovýkonného výpočetního prostředí (HPC). Díky ukládání souborů do mezipaměti v Azure přináší Azure HPC Cache do vašich stávajících pracovních postupů škálovatelnost, jaká je možná u cloud computingu. V tomto článku se dozvíte, jak integrovat Azure HPC Cache se službou Azure Kubernetes Service (AKS).
Než začnete
Cluster AKS musí být v oblasti, která podporuje Azure HPC Cache.
Potřebujete Azure CLI verze 2.7 nebo novější. Verzi zjistíte spuštěním příkazu
az --version
. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.hpc-cache
Zaregistrujte rozšíření ve svém předplatném Azure. Další informace o používání služby HPC Cache s Azure CLI najdete v požadavcích rozhraní příkazového řádku služby HPC Cache.Projděte si požadavky služby HPC Cache. Před spuštěním služby HPC Cache musíte splnit následující skutečnosti:
- Mezipaměť vyžaduje vyhrazenou podsíť s alespoň 64 dostupnými IP adresami.
- Podsíť nesmí hostovat jiné virtuální počítače ani kontejnery.
- Podsíť musí být přístupná z uzlů AKS.
Pokud potřebujete aplikaci spustit jako uživatele bez kořenového přístupu, možná budete muset zakázat root squashing pomocí příkazu change owner (chown) a změnit vlastnictví adresáře na jiného uživatele. Uživatel bez kořenového přístupu musí vlastnit adresář pro přístup k systému souborů. Aby uživatel vlastní adresář, musí uživatel kořenového adresáře pro tohoto uživatele přemístit, ale pokud je služba HPC Cache squashing root, je tato operace odepřena, protože uživatel root (UID 0) je namapován na anonymního uživatele. Další informace o kořenovém squashingu a zásadách přístupu klientů najdete v tématu Zásady přístupu ke službě HPC Cache.
hpc-cache
Instalace rozšíření Azure CLI
Důležité
Funkce AKS ve verzi Preview jsou k dispozici na samoobslužné bázi. Verze Preview jsou poskytovány "tak, jak jsou" a "dostupné", a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview AKS jsou částečně pokryty zákaznickou podporou na základě maximálního úsilí. Proto tyto funkce nejsou určené pro produkční použití. Další informace najdete v následujících článcích podpory:
Pokud chcete nainstalovat rozšíření hpc-Cache, spusťte následující příkaz:
az extension add --name hpc-cache
Spuštěním následujícího příkazu aktualizujte nejnovější verzi vydaného rozšíření:
az extension update --name hpc-cache
Registrace příznaku funkce StorageCache
Pomocí příkazu zaregistrujte poskytovatele az provider register
prostředků Microsoft.StorageCache.
az provider register --namespace Microsoft.StorageCache --wait
Zobrazení stavu Zaregistrované trvá několik minut. Pomocí příkazu az feature show ověřte stav registrace:
az feature show --namespace "Microsoft.StorageCache"
Vytvoření služby Azure HPC Cache
Pomocí příkazu s parametrem
--query nodeResourceGroup
dotazu získejte skupinuaz aks show
prostředků uzlu.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
Výstup by měl vypadat podobně jako v následujícím příkladu výstupu:
MC_myResourceGroup_myAKSCluster_eastus
Pomocí příkazu vytvořte vyhrazenou podsíť
az network vnet subnet create
služby HPC Cache. Nejprve definujte proměnné prostředí proRESOURCE_GROUP
,VNET_NAME
VNET_ID
, aSUBNET_NAME
. Zkopírujte výstup z předchozího kroku proRESOURCE_GROUP
a zadejte hodnotu proSUBNET_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=MyHpcCacheSubnet
az network vnet subnet create \ --resource-group $RESOURCE_GROUP \ --vnet-name $VNET_NAME \ --name $SUBNET_NAME \ --address-prefixes 10.0.0.0/26
Vytvořte mezipaměť HPC Cache ve stejné skupině prostředků a oblasti uzlu. Nejprve definujte proměnnou
SUBNET_ID
prostředí .SUBNET_ID=$(az network vnet subnet show --resource-group $RESOURCE_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME --query "id" -o tsv)
Pomocí příkazu vytvořte službu HPC Cache
az hpc-cache create
. Následující příklad vytvoří mezipaměť HPC Cache v oblasti USA – východ s typem mezipaměti Standard 2G s názvem MyHpcCache. Zadejte hodnotu pro --location, --sku-name a --name.az hpc-cache create \ --resource-group $RESOURCE_GROUP \ --cache-size-gb "3072" \ --location eastus \ --subnet $SUBNET_ID \ --sku-name "Standard_2G" \ --name MyHpcCache
Poznámka:
Vytvoření služby HPC Cache může trvat až 20 minut.
Vytvoření a konfigurace úložiště Azure
Pomocí příkazu vytvořte účet
az storage account create
úložiště. Nejprve definujte proměnnouSTORAGE_ACCOUNT_NAME
prostředí .Důležité
Musíte vybrat jedinečný název účtu úložiště. Nahraďte
uniquestorageaccount
zadaným názvem. Názvy účtů úložiště musí mít délku 3 až 24 znaků a můžou obsahovat jenom číslice a malá písmena.STORAGE_ACCOUNT_NAME=uniquestorageaccount
Následující příklad vytvoří účet úložiště v oblasti USA – východ s skladovou jednotkou Standard_LRS. Zadejte hodnotu pro --location a --sku.
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location eastus \ --sku Standard_LRS
Pomocí příkazu přiřaďte roli Přispěvatel dat v objektu blob služby Storage ve vašem předplatném
az role assignment create
. Nejprve definujte proměnnéSTORAGE_ACCOUNT_ID
prostředí aAD_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_ID
Pomocí příkazu vytvořte kontejner objektů blob v rámci účtu
az storage container create
úložiště. Nejprve definujte proměnnouCONTAINER_NAME
prostředí a nahraďte název kontejneru objektů blob.CONTAINER_NAME=mystoragecontainer
az storage container create --name $CONTAINER_NAME --account-name $STORAGE_ACCOUNT_NAME --auth-mode login
Zadejte oprávnění k účtu služby Azure HPC Cache pro přístup k účtu úložiště a kontejneru
az role assignment
objektů blob pomocí příkazů. Nejprve definujte proměnnéHPC_CACHE_USER
prostředí aHPC_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_ID
Přidejte kontejner objektů blob do služby HPC Cache jako cíl úložiště pomocí
az hpc-cache blob-storage-target add
příkazu. Následující příklad vytvoří kontejner objektů blob MyStorageTarget do mezipaměti HPC Cache MyHpcCache. Zadejte hodnotu pro --name, --cache-name a --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"
Nastavení vyrovnávání zatížení klienta
Pomocí příkazu vytvořte zónu azure Privátní DNS pro IP adresy určené pro klienty
az network private-dns zone create
. Nejprve definujte proměnnouPRIVATE_DNS_ZONE
prostředí a zadejte název zóny.PRIVATE_DNS_ZONE="myhpccache.local"
az network private-dns zone create \ --resource-group $RESOURCE_GROUP \ --name $PRIVATE_DNS_ZONE
Pomocí příkazu vytvořte propojení DNS mezi zónou Azure Privátní DNS a virtuální
az network private-dns link vnet create
sítí. Nahraďte hodnotu parametru --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 true
Pomocí příkazu vytvořte název DNS s kruhovým dotazováním pro IP adresy
az network private-dns record-set a create
určené pro klienta. Nejprve definujte proměnnéDNS_NAME
prostředí ,HPC_MOUNTS0
,HPC_MOUNTS1
aHPC_MOUNTS2
. Nahraďte hodnotu vlastnostiDNS_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
Vytvoření trvalého svazku
Vytvořte soubor s názvem
pv-nfs.yaml
pro definování trvalého svazku a vložte ho do následujícího manifestu. Nahraďte hodnoty vlastnostiserver
apath
.--- apiVersion: v1 kind: PersistentVolume metadata: name: pv-nfs spec: capacity: storage: 10000Gi accessModes: - ReadWriteMany mountOptions: - vers=3 nfs: server: server.myhpccache.local path: /
Pomocí příkazu získejte přihlašovací údaje pro cluster
az aks get-credentials
Kubernetes.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Pomocí příkazu vytvořte trvalý svazek
kubectl apply
.kubectl apply -f pv-nfs.yaml
Pomocí příkazu ověřte, že je trvalý svazek k dispozici
kubectl describe
.kubectl describe pv pv-nfs
Vytvoření deklarace trvalého svazku
Vytvořte soubor s názvem
pvc-nfs.yaml
definující trvalou deklaraci identity svazku a vložte následující manifest.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-nfs spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 100Gi
Pomocí příkazu vytvořte trvalou deklaraci identity svazku
kubectl apply
.kubectl apply -f pvc-nfs.yaml
Pomocí příkazu ověřte, že je deklarace identity trvalého svazku
kubectl describe
svázaná.kubectl describe pvc pvc-nfs
Připojení služby HPC Cache s podem
Vytvořte soubor s názvem
nginx-nfs.yaml
pro definování podu, který používá trvalou deklaraci identity svazku, a vložte následující 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-nfs
Vytvořte pod pomocí
kubectl apply
příkazu.kubectl apply -f nginx-nfs.yaml
Pomocí příkazu ověřte, že pod běží
kubectl describe
.kubectl describe pod nginx-nfs
Ověřte, že je svazek připojený k podu pomocí
kubectl exec
příkazu pro připojení k podu.kubectl exec -it nginx-nfs -- sh
Pokud chcete zkontrolovat, jestli je svazek připojený, spusťte
df
ho ve formátu čitelném pro člověka--human-readable
pomocí možnosti (-h
zkráceně).df -h
Následující příklad připomíná výstup vrácený příkazem:
Filesystem Size Used Avail Use% Mounted on ... server.myhpccache.local:/myfilepath 8.0E 0 8.0E 0% /mnt/azure/myfilepath ...
Další kroky
- Další informace o službě Azure HPC Cache najdete v přehledu služby HPC Cache.
- Další informace o použití systému souborů NFS s AKS najdete v tématu Ruční vytvoření a použití svazku systému souborů NFS (Network File System) s Linuxem s AKS.
Azure Kubernetes Service