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
sorgu parametresiyle
--query nodeResourceGroup
komutunu kullanarakaz 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
komutunu kullanarak
az network vnet subnet create
ayrılmış bir HPC Önbelleği alt ağı oluşturun. İlk olarak , ,VNET_NAME
VNET_ID
veSUBNET_NAME
içinRESOURCE_GROUP
ortam değişkenlerini tanımlayın. içinRESOURCE_GROUP
önceki adımdan çıktıyı kopyalayın ve içinSUBNET_NAME
bir 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
Aynı düğüm kaynak grubunda ve bölgesinde bir HPC Önbelleği oluşturun. İlk olarak ortam değişkenini
SUBNET_ID
tanı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
komutunu kullanarak
az storage account create
bir depolama hesabı oluşturun. İlk olarak ortam değişkeniniSTORAGE_ACCOUNT_NAME
tanı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
komutunu kullanarak aboneliğinizde Depolama Blob Verileri Katkıda Bulunanı Rolünü atayın
az role assignment create
. İlk olarak, veAD_USER
ortam değişkenleriniSTORAGE_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
komutunu kullanarak depolama hesabı içinde Blob kapsayıcısını
az storage container create
oluşturun. İlk olarak ortam değişkeniniCONTAINER_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
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, veHPC_CACHE_ID
ortam değişkenleriniHPC_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
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
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şkeniniPRIVATE_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
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
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_MOUNTS0
HPC_MOUNTS1
veHPC_MOUNTS2
ortam değişkenleriniDNS_NAME
tanımlayın. özelliğininDNS_NAME
değ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
Kalıcı birim tanımlamak için adlı
pv-nfs.yaml
bir dosya oluşturun ve aşağıdaki bildirime yapıştırın. vepath
özelliğininserver
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: /
komutunu kullanarak
az aks get-credentials
Kubernetes kümenizin kimlik bilgilerini alın.az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
komutunu kullanarak
kubectl apply
kalıcı birimi oluşturun.kubectl apply -f pv-nfs.yaml
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
Kalıcı bir birim talebi tanımlamak için adlı
pvc-nfs.yaml
bir 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
komutunu kullanarak
kubectl apply
kalıcı birim talebi oluşturun.kubectl apply -f pvc-nfs.yaml
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
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
komutunu kullanarak pod oluşturun
kubectl apply
.kubectl apply -f nginx-nfs.yaml
komutunu kullanarak pod'un
kubectl describe
çalıştığını doğrulayın.kubectl describe pod nginx-nfs
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.
Azure Kubernetes Service