Aracılığıyla paylaş


Azure HPC Önbelleği Azure Kubernetes Service (AKS) ile tümleştirme

Azure HPC Önbelleği yüksek performanslı bilgi işlem (HPC) görevlerinde verilerinize erişimi hızlandırır. Azure HPC Önbelleği Azure'da dosyaları önbelleğe alarak, mevcut iş yükünüze bulut bilişimin ölçeklenebilirliğini getirir. Bu makalede Azure HPC Önbelleği'ı Azure Kubernetes Service (AKS) ile tümleştirme adımları gösterilmektedir.

Başlamadan önce

  • AKS kümesinin Azure HPC Önbelleği destekleyen bir bölgede olması gerekir.

  • Azure CLI sürüm 2.7 veya üzeri gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

  • Uzantıyı hpc-cache Azure aboneliğinize kaydedin. Azure CLI ile HPC Önbelleği kullanma hakkında daha fazla bilgi için HPC Önbelleği CLI önkoşullarına bakın.

  • HPC Önbelleği önkoşullarını gözden geçirin. bir HPC Önbelleği çalıştırabilmeniz için önce aşağıdakileri karşılamanız gerekir:

    • Önbellek, en az 64 IP adresi bulunan ayrılmış bir alt ağ gerektirir.
    • Alt ağ diğer VM'leri veya kapsayıcıları barındırmamalıdır.
    • Alt ağa AKS düğümlerinden erişilebilir olmalıdır.
  • Uygulamanızı kök erişimi olmayan bir kullanıcı olarak çalıştırmanız gerekiyorsa, dizin sahipliğini başka bir kullanıcıyla değiştirmek için change owner (chown) komutunu kullanarak kök sıkıştırmayı devre dışı bırakmanız gerekebilir. Kök erişimi olmayan kullanıcının dosya sistemine erişmek için bir dizine sahip olması gerekir. Kullanıcının bir dizine sahip olması için, kök kullanıcının bu kullanıcıya bir dizin hazırlaması gerekir, ancak HPC Önbelleği kök sıkıştırılıyorsa, kök kullanıcı (UID 0) anonim kullanıcıyla eşlendiğinden bu işlem reddedilir. Kök sıkıştırma ve istemci erişim ilkeleri hakkında daha fazla bilgi için bkz. erişim ilkeleri HPC Önbelleği.

Azure CLI uzantısını hpc-cache yükleme

Önemli

AKS önizleme özellikleri self servis ve kabul temelinde kullanılabilir. Önizlemeler "olduğu gibi" ve "kullanılabilir" olarak sağlanır ve hizmet düzeyi sözleşmelerinin ve sınırlı garantinin dışında tutulur. AKS önizlemeleri, müşteri desteği tarafından kısmen en iyi çaba temelinde ele alınmaktadır. Bu nedenle, bu özellikler üretim kullanımı için tasarlanmamıştır. Daha fazla bilgi için aşağıdaki destek makalelerine bakın:

hpc-cache uzantısını yüklemek için aşağıdaki komutu çalıştırın:

az extension add --name hpc-cache

Yayımlanan uzantının en son sürümüne güncelleştirmek için aşağıdaki komutu çalıştırın:

az extension update --name hpc-cache

StorageCache özellik bayrağını kaydetme

komutunu kullanarak Microsoft.StorageCache kaynak sağlayıcısını az provider register kaydedin.

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

Durumun Kayıtlı olarak gösterilmesi birkaç dakika sürer. az feature show komutunu kullanarak kayıt durumunu doğrulayın:

az feature show --namespace "Microsoft.StorageCache"

Azure HPC Önbelleği oluşturma

  1. sorgu parametresiyle --query nodeResourceGroup komutunu kullanarak az aks show düğüm kaynak grubunu alın.

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

    Çıkışınız aşağıdaki örnek çıkışa benzer olmalıdır:

    MC_myResourceGroup_myAKSCluster_eastus
    
  2. komutunu kullanarak az network vnet subnet create ayrılmış bir HPC Önbelleği alt ağı oluşturun. İlk olarak , , VNET_NAMEVNET_IDve SUBNET_NAMEiçin RESOURCE_GROUPortam değişkenlerini tanımlayın. için RESOURCE_GROUPönceki adımdan çıktıyı kopyalayın ve için SUBNET_NAMEbir değer belirtin.

    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. Aynı düğüm kaynak grubunda ve bölgesinde bir HPC Önbelleği oluşturun. İlk olarak ortam değişkenini SUBNET_IDtanımlayın.

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

    komutunu kullanarak az hpc-cache create HPC Önbelleği oluşturun. Aşağıdaki örnek, Doğu ABD bölgesinde MyHpcCache adlı Standart 2G önbellek türüne sahip HPC Önbelleği oluşturur. --location, --sku-name ve --name için bir değer belirtin.

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

    Not

    HPC Önbelleği oluşturulması 20 dakika kadar sürebilir.

Azure depolama oluşturma ve yapılandırma

  1. komutunu kullanarak az storage account create bir depolama hesabı oluşturun. İlk olarak ortam değişkenini STORAGE_ACCOUNT_NAMEtanımlayın.

    Önemli

    Benzersiz bir depolama hesabı adı seçmeniz gerekir. değerini belirttiğiniz adla değiştirin uniquestorageaccount . Depolama hesabı adlarının uzunluğu 3 ile 24 karakter arasında olmalıdır ve yalnızca sayı ve küçük harf içerebilir.

    STORAGE_ACCOUNT_NAME=uniquestorageaccount
    

    Aşağıdaki örnek Doğu ABD bölgesinde Standard_LRS SKU'su ile bir depolama hesabı oluşturur. --location ve --sku için bir değer belirtin.

    az storage account create \
      --name $STORAGE_ACCOUNT_NAME \
      --resource-group $RESOURCE_GROUP \
      --location eastus \
      --sku Standard_LRS
    
  2. komutunu kullanarak aboneliğinizde Depolama Blob Verileri Katkıda Bulunanı Rolünü atayınaz role assignment create. İlk olarak, ve AD_USERortam değişkenlerini STORAGE_ACCOUNT_ID tanımlayın.

    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. komutunu kullanarak depolama hesabı içinde Blob kapsayıcısını az storage container create oluşturun. İlk olarak ortam değişkenini CONTAINER_NAME tanımlayın ve Blob kapsayıcısının adını değiştirin.

    CONTAINER_NAME=mystoragecontainer
    
    az storage container create --name $CONTAINER_NAME --account-name $STORAGE_ACCOUNT_NAME --auth-mode login
    
  4. Azure HPC Önbelleği hizmet hesabına, komutlarını kullanarak depolama hesabınıza ve Blob kapsayıcınıza erişmek için izinler az role assignment sağlayın. İlk olarak, ve HPC_CACHE_IDortam değişkenlerini HPC_CACHE_USER tanımlayın.

    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. komutunu kullanarak az hpc-cache blob-storage-target add blob kapsayıcısını HPC Önbelleği depolama hedefi olarak ekleyin. Aşağıdaki örnek, MyHpcCache HPC Önbelleği MyStorageTarget adlı bir blob kapsayıcısı oluşturur. --name, --cache-name ve --virtual-namespace-path için bir değer belirtin.

    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"
    

İstemci yük dengelemesini ayarlama

  1. komutunu kullanarak az network private-dns zone create istemciye yönelik IP adresleri için bir Azure Özel DNS bölgesi oluşturun. Önce ortam değişkenini PRIVATE_DNS_ZONE tanımlayın ve bölge için bir ad belirtin.

    PRIVATE_DNS_ZONE="myhpccache.local"
    
    az network private-dns zone create \
      --resource-group $RESOURCE_GROUP \
      --name $PRIVATE_DNS_ZONE
    
  2. komutunu kullanarak az network private-dns link vnet create Azure Özel DNS Bölgesi ile sanal ağ arasında bir DNS bağlantısı oluşturun. --name değerini değiştirin.

    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. komutunu kullanarak az network private-dns record-set a create istemciye yönelik IP adresleri için hepsini bir kez deneme DNS adını oluşturun. İlk olarak , , HPC_MOUNTS0HPC_MOUNTS1ve HPC_MOUNTS2ortam değişkenlerini DNS_NAMEtanımlayın. özelliğinin DNS_NAMEdeğerini değiştirin.

    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
    

Kalıcı birim oluşturma

  1. Kalıcı birim tanımlamak için adlı pv-nfs.yaml bir dosya oluşturun ve aşağıdaki bildirime yapıştırın. ve pathözelliğinin server değerlerini değiştirin.

    ---
    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nfs
    spec:
      capacity:
        storage: 10000Gi
      accessModes:
        - ReadWriteMany
      mountOptions:
        - vers=3
      nfs:
        server: server.myhpccache.local
        path: /
    
  2. komutunu kullanarak az aks get-credentials Kubernetes kümenizin kimlik bilgilerini alın.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  3. komutunu kullanarak kubectl apply kalıcı birimi oluşturun.

    kubectl apply -f pv-nfs.yaml
    
  4. komutunu kullanarak kubectl describe kalıcı birimin durumunun Kullanılabilir olduğunu doğrulayın.

    kubectl describe pv pv-nfs
    

Kalıcı birim talebi oluşturma

  1. Kalıcı bir birim talebi tanımlamak için adlı pvc-nfs.yamlbir dosya oluşturun ve aşağıdaki bildirimi yapıştırın.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-nfs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. komutunu kullanarak kubectl apply kalıcı birim talebi oluşturun.

    kubectl apply -f pvc-nfs.yaml
    
  3. Komutunu kullanarak kalıcı birim talebi durumunun kubectl describe Bağlı olduğunu doğrulayın.

    kubectl describe pvc pvc-nfs
    

HPC Önbelleği bir pod ile bağlama

  1. Kalıcı birim talebi kullanan bir pod tanımlamak için adlı nginx-nfs.yaml bir dosya oluşturun ve aşağıdaki bildirimi yapıştırın.

    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. komutunu kullanarak pod oluşturun kubectl apply .

    kubectl apply -f nginx-nfs.yaml
    
  3. komutunu kullanarak pod'un kubectl describe çalıştığını doğrulayın.

    kubectl describe pod nginx-nfs
    
  4. Pod'a bağlanmak için komutunu kullanarak kubectl exec biriminizin poda bağlandığını doğrulayın.

    kubectl exec -it nginx-nfs -- sh
    

    Birimin takılı olup olmadığını denetlemek için (-h kısaca) seçeneğini kullanarak --human-readable insan tarafından okunabilir biçimde çalıştırındf.

    df -h
    

    Aşağıdaki örnek, komutundan döndürülen çıkışa benzer:

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

Sonraki adımlar

  • Azure HPC Önbelleği hakkında daha fazla bilgi için bkz. HPC Önbelleği genel bakış.
  • AKS ile NFS kullanma hakkında daha fazla bilgi için bkz . AKS ile El ile Ağ Dosya Sistemi (NFS) Linux Server birimi oluşturma ve kullanma.