Megosztás a következőn keresztül:


Az Azure HPC Cache integrálása az Azure Kubernetes Service-vel (AKS)

Az Azure HPC Cache gyors hozzáférést biztosít az adatokhoz a nagy teljesítményű feldolgozási (HPC) feladatok végrehajtása érdekében. Az adatok Azure-beli gyorsítótárazásának köszönhetően az Azure HPC Cache a felhőalapú számítások skálázhatóságát biztosítja a meglévő munkafolyamatokhoz. Ez a cikk bemutatja, hogyan integrálhatja az Azure HPC Cache-t az Azure Kubernetes Service-vel (AKS).

Mielőtt elkezdené

  • Az AKS-fürtnek olyan régióban kell lennie, amely támogatja az Azure HPC Cache-t.

  • Az Azure CLI 2.7-es vagy újabb verziójára van szüksége. A verzió azonosításához futtassa a következőt: az --version. Ha telepíteni vagy frissíteni szeretne: Az Azure CLI telepítése.

  • Regisztrálja a bővítményt hpc-cache az Azure-előfizetésében. A HPC Cache Azure CLI-vel való használatáról további információt a HPC Cache CLI előfeltételeiben talál.

  • Tekintse át a HPC Cache előfeltételeit. A HPC-gyorsítótár futtatása előtt meg kell felelnie a következőknek:

    • A gyorsítótárhoz legalább 64 IP-címmel rendelkező dedikált alhálózat szükséges.
    • Az alhálózat nem üzemeltethet más virtuális gépeket vagy tárolókat.
    • Az alhálózatnak elérhetőnek kell lennie az AKS-csomópontokról.
  • Ha gyökérhozzáférés nélküli felhasználóként kell futtatnia az alkalmazást, előfordulhat, hogy le kell tiltania a gyökérpréselést a módosítástulajdonos (chown) paranccsal, hogy a címtár tulajdonjogát egy másik felhasználóra módosítsa. A legfelső szintű hozzáféréssel nem rendelkező felhasználónak egy könyvtárral kell rendelkeznie a fájlrendszer eléréséhez. Ahhoz, hogy a felhasználó birtokolhassa a címtárat, a gyökérfelhasználónak meg kell adnia egy könyvtárat a felhasználónak, de ha a HPC Cache összenyomja a gyökérkönyvtárat, a művelet megtagadva, mert a gyökérfelhasználó (UID 0) le van képezve a névtelen felhasználóhoz. További információ a gyökérpréselésről és az ügyfél-hozzáférési szabályzatokról: HPC Cache hozzáférési szabályzatok.

Az hpc-cache Azure CLI-bővítmény telepítése

Fontos

Az AKS előzetes verziójú funkciói önkiszolgáló, opt-in alapon érhetők el. Az előzetes verziókat "ahogy van" és "rendelkezésre állóként" biztosítjuk, és a szolgáltatási szerződésekből és a korlátozott jótállásból kizárjuk őket. Az AKS előzetes verzióit részben az ügyfélszolgálat fedezi a legjobb munkamennyiség alapján. Ezért ezek a funkciók nem éles használatra vannak szánva. További információkért tekintse meg az alábbi támogatási cikkeket:

A hpc-cache bővítmény telepítéséhez futtassa a következő parancsot:

az extension add --name hpc-cache

Futtassa a következő parancsot a bővítmény legújabb verziójára való frissítéshez:

az extension update --name hpc-cache

A StorageCache funkciójelző regisztrálása

Regisztrálja a Microsoft.StorageCache erőforrás-szolgáltatót a az provider register paranccsal.

az provider register --namespace Microsoft.StorageCache --wait

Néhány percig tart, amíg az állapot megjelenik a Regisztrált állapotban. Ellenőrizze a regisztrációs állapotot az az feature show paranccsal:

az feature show --namespace "Microsoft.StorageCache"

Az Azure HPC Cache létrehozása

  1. Kérje le a csomópont erőforráscsoportját a az aks show lekérdezési paraméterrel rendelkező --query nodeResourceGroup paranccsal.

    az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
    

    A kimenetnek a következő példakimenethez hasonlóan kell kinéznie:

    MC_myResourceGroup_myAKSCluster_eastus
    
  2. Hozzon létre egy dedikált HPC Cache-alhálózatot a az network vnet subnet create paranccsal. Először határozza meg az , VNET_NAME, VNET_IDés SUBNET_NAME. környezeti változóitRESOURCE_GROUP. Másolja ki a kimenetet az előző lépésbőlRESOURCE_GROUP, és adjon meg egy értéket.SUBNET_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
    
  3. Hozzon létre egy HPC-gyorsítótárat ugyanabban a csomópont-erőforráscsoportban és -régióban. Először határozza meg a környezeti változót SUBNET_ID.

    SUBNET_ID=$(az network vnet subnet show --resource-group $RESOURCE_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME --query "id" -o tsv)
    

    Hozza létre a HPC Cache-t a az hpc-cache create paranccsal. Az alábbi példa az USA keleti régiójában hozza létre a HPC Cache-t egy MyHpcCache nevű standard 2G-gyorsítótártípussal. Adja meg a --location, --sku-name és --name értéket.

    az hpc-cache create \
      --resource-group $RESOURCE_GROUP \
      --cache-size-gb "3072" \
      --location eastus \
      --subnet $SUBNET_ID \
      --sku-name "Standard_2G" \
      --name MyHpcCache
    

    Feljegyzés

    A HPC Cache létrehozása akár 20 percet is igénybe vehet.

Azure Storage létrehozása és konfigurálása

  1. Hozzon létre egy tárfiókot a az storage account create parancs használatával. Először határozza meg a környezeti változót STORAGE_ACCOUNT_NAME.

    Fontos

    Ki kell választania egy egyedi tárfióknevet. Cserélje le uniquestorageaccount a megadott névre. A tárfiókok nevének 3 és 24 karakter közötti hosszúságúnak kell lennie, és csak számokat és kisbetűket tartalmazhat.

    STORAGE_ACCOUNT_NAME=uniquestorageaccount
    

    Az alábbi példa létrehoz egy tárfiókot az USA keleti régiójában a Standard_LRS termékváltozattal. Adja meg a --location és a --sku értékét.

    az storage account create \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location eastus \
      --sku Standard_LRS
    
  2. Rendelje hozzá a Storage Blob Data Közreműködői szerepkört az előfizetéséhez a az role assignment create paranccsal. Először határozza meg a környezeti változókat STORAGE_ACCOUNT_ID és AD_USERa .

    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
    
  3. Hozza létre a Blob-tárolót a tárfiókban a az storage container create paranccsal. Először adja meg a környezeti változót CONTAINER_NAME , és cserélje le a Blob-tároló nevét.

    CONTAINER_NAME=mystoragecontainer
    
    az storage container create --name $CONTAINER_NAME --account-name $STORAGE_ACCOUNT_NAME --auth-mode login
    
  4. Adjon meg engedélyeket az Azure HPC Cache szolgáltatásfiókhoz a tárfiók és a Blob-tároló eléréséhez a az role assignment parancsok használatával. Először határozza meg a környezeti változókat HPC_CACHE_USER és HPC_CACHE_IDa .

    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
    
  5. Adja hozzá a blobtárolót a HPC Cache-hez tárolóként a az hpc-cache blob-storage-target add parancs használatával. Az alábbi példa létrehoz egy MyStorageTarget nevű blobtárolót a HPC Cache MyHpcCache-hez. Adja meg a --name, --cache-name és --virtual-namespace-path értéket.

    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"
    

Ügyfél terheléselosztásának beállítása

  1. Hozzon létre egy Azure saját DNS zónát az ügyféloldali IP-címekhez a az network private-dns zone create parancs használatával. Először adja meg a környezeti változót PRIVATE_DNS_ZONE , és adja meg a zóna nevét.

    PRIVATE_DNS_ZONE="myhpccache.local"
    
    az network private-dns zone create \
      --resource-group $RESOURCE_GROUP \
      --name $PRIVATE_DNS_ZONE
    
  2. Hozzon létre egy DNS-kapcsolatot az Azure saját DNS Zóna és a virtuális hálózat között a az network private-dns link vnet create paranccsal. Cserélje le a --name értéket.

    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
    
  3. Hozza létre az ügyféloldali IP-címek ciklikus időszeleteléses DNS-nevét a az network private-dns record-set a create parancs használatával. Először határozza meg a környezeti változókat DNS_NAME, HPC_MOUNTS0és HPC_MOUNTS1HPC_MOUNTS2. Cserélje le a tulajdonság DNS_NAMEértékét.

    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
    

Állandó kötet létrehozása

  1. Hozzon létre egy állandó kötet definiálásához elnevezett pv-nfs.yaml fájlt, majd illessze be a következő jegyzékbe. Cserélje le a tulajdonság server és patha .

    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nfs
    spec:
      capacity:
        storage: 10000Gi
      accessModes:
        - ReadWriteMany
      mountOptions:
        - vers=3
      nfs:
        server: server.myhpccache.local
        path: /
    
  2. Kérje le a Kubernetes-fürt hitelesítő adatait a az aks get-credentials paranccsal.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. Hozza létre az állandó kötetet a kubectl apply paranccsal.

    kubectl apply -f pv-nfs.yaml
    
  4. Ellenőrizze, hogy az állandó kötet állapota elérhető-e a kubectl describe paranccsal.

    kubectl describe pv pv-nfs
    

Az állandó kötet jogcímének létrehozása

  1. Hozzon létre egy állandó mennyiségi jogcím definiálásához elnevezett pvc-nfs.yamlfájlt, majd illessze be a következő jegyzékfájlt.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-nfs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. Hozza létre az állandó kötet jogcímét a kubectl apply parancs használatával.

    kubectl apply -f pvc-nfs.yaml
    
  3. Ellenőrizze, hogy az állandó kötet jogcíme kötött-e a kubectl describe parancs használatával.

    kubectl describe pvc pvc-nfs
    

A HPC Cache csatlakoztatása podgal

  1. Hozzon létre egy fájlt nginx-nfs.yaml az állandó kötet jogcímét használó pod definiálásához, majd illessze be a következő jegyzékfájlt.

    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
    
  2. Hozza létre a podot a kubectl apply paranccsal.

    kubectl apply -f nginx-nfs.yaml
    
  3. Ellenőrizze, hogy a pod fut-e a kubectl describe paranccsal.

    kubectl describe pod nginx-nfs
    
  4. Ellenőrizze, hogy a kötet csatlakoztatva van-e a podhoz a kubectl exec podhoz való csatlakozás parancsával.

    kubectl exec -it nginx-nfs -- sh
    

    Annak ellenőrzéséhez, hogy a kötet csatlakoztatva van-e, futtassa df az ember által olvasható formátumban a --human-readable (-h rövid) beállítással.

    df -h
    

    Az alábbi példa a parancsból visszaadott kimenethez hasonlít:

    Filesystem             Size  Used Avail Use% Mounted on
    ...
    server.myhpccache.local:/myfilepath 8.0E         0      8.0E   0% /mnt/azure/myfilepath
    ...
    

Következő lépések