Mengintegrasikan Azure HPC Cache dengan Azure Kubernetes Service (AKS)
Azure HPC Cache mempercepat akses ke data Anda untuk tugas komputasi dengan performa tinggi (HPC). Dengan penembolokan file di Azure, Azure HPC Cache membawa skalabilitas komputasi cloud ke alur kerja Anda yang sudah ada. Artikel ini menunjukkan cara mengintegrasikan Azure HPC Cache dengan Azure Kubernetes Service (AKS).
Kluster AKS harus berada di wilayah yang mendukung Azure HPC Cache.
Anda memerlukan Azure CLI versi 2.7 atau yang lebih baru. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.Daftarkan
hpc-cache
ekstensi di langganan Azure Anda. Untuk informasi selengkapnya tentang menggunakan HPC Cache dengan Azure CLI, lihat prasyarat HPC Cache CLI.Tinjau prasyarat HPC Cache. Anda perlu memenuhi hal berikut sebelum dapat menjalankan HPC Cache:
- Cache memerlukan subnet khusus dengan setidaknya 64 alamat IP yang tersedia.
- Subnet tidak boleh menghosting VM atau kontainer lain.
- Subnet harus dapat diakses dari simpul AKS.
Jika Anda perlu menjalankan aplikasi Anda sebagai pengguna tanpa akses root, Anda mungkin perlu menonaktifkan root squashing dengan menggunakan perintah ubah pemilik (chown) untuk mengubah kepemilikan direktori ke pengguna lain. Pengguna tanpa akses root perlu memiliki direktori untuk mengakses sistem file. Agar pengguna memiliki direktori, pengguna root harus menggunakan direktori kepada pengguna tersebut, tetapi jika HPC Cache melakukan squashing root, operasi ini ditolak karena pengguna root (UID 0) sedang dipetakan ke pengguna anonim. Untuk informasi selengkapnya tentang kebijakan root squashing dan akses klien, lihat kebijakan akses HPC Cache.
Penting
Fitur pratinjau AKS tersedia berdasarkan layanan mandiri. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan mereka dikecualikan dari perjanjian tingkat layanan dan garansi terbatas. Pratinjau AKS sebagian dicakup oleh dukungan pelanggan berdasarkan upaya terbaik. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:
Untuk menginstal ekstensi hpc-cache, jalankan perintah berikut:
az extension add --name hpc-cache
Jalankan perintah berikut untuk memperbarui ke versi terbaru ekstensi yang dirilis:
az extension update --name hpc-cache
Daftarkan penyedia sumber daya Microsoft.StorageCache menggunakan az provider register
perintah .
az provider register --namespace Microsoft.StorageCache --wait
Dibutuhkan beberapa menit agar status menampilkan Terdaftar. Verifikasi status pendaftaran dengan menggunakan perintah az feature show :
az feature show --namespace "Microsoft.StorageCache"
Dapatkan grup sumber daya simpul menggunakan
az aks show
perintah dengan--query nodeResourceGroup
parameter kueri.az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
Output Anda akan terlihat mirip dengan contoh output berikut:
MC_myResourceGroup_myAKSCluster_eastus
Buat subnet HPC Cache khusus menggunakan
az network vnet subnet create
perintah . Pertama tentukan variabel lingkungan untukRESOURCE_GROUP
, ,VNET_NAME
VNET_ID
, danSUBNET_NAME
. Salin output dari langkah sebelumnya untukRESOURCE_GROUP
, dan tentukan nilai untukSUBNET_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
Buat HPC Cache di grup dan wilayah sumber daya simpul yang sama. Pertama-tama tentukan variabel
SUBNET_ID
lingkungan .SUBNET_ID=$(az network vnet subnet show --resource-group $RESOURCE_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME --query "id" -o tsv)
Buat HPC Cache menggunakan
az hpc-cache create
perintah . Contoh berikut membuat HPC Cache di wilayah US Timur dengan jenis cache 2G Standar bernama MyHpcCache. Tentukan nilai untuk --location, --sku-name, dan --name.az hpc-cache create \ --resource-group $RESOURCE_GROUP \ --cache-size-gb "3072" \ --location eastus \ --subnet $SUBNET_ID \ --sku-name "Standard_2G" \ --name MyHpcCache
Catatan
Pembuatan HPC Cache dapat memakan waktu hingga 20 menit.
Buat akun penyimpanan menggunakan
az storage account create
perintah . Pertama-tama tentukan variabelSTORAGE_ACCOUNT_NAME
lingkungan .Penting
Anda harus memilih nama akun penyimpanan yang unik. Ganti dengan nama yang Anda tentukan
uniquestorageaccount
. Panjang nama akun penyimpanan harus antara 3 dan 24 karakter dan hanya boleh berisi angka dan huruf kecil.STORAGE_ACCOUNT_NAME=uniquestorageaccount
Contoh berikut membuat akun penyimpanan di wilayah US Timur dengan SKU Standard_LRS. Tentukan nilai untuk --location dan --sku.
az storage account create \ --name $STORAGE_ACCOUNT_NAME \ --resource-group $RESOURCE_GROUP \ --location eastus \ --sku Standard_LRS
Tetapkan Peran Kontributor Data Blob Penyimpanan pada langganan Anda menggunakan
az role assignment create
perintah . Pertama, tentukan variabelSTORAGE_ACCOUNT_ID
lingkungan danAD_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
Buat kontainer Blob dalam akun penyimpanan menggunakan
az storage container create
perintah . Pertama, tentukan variabelCONTAINER_NAME
lingkungan dan ganti nama untuk kontainer Blob.CONTAINER_NAME=mystoragecontainer
az storage container create --name $CONTAINER_NAME --account-name $STORAGE_ACCOUNT_NAME --auth-mode login
Berikan izin ke akun layanan Azure HPC Cache untuk mengakses akun penyimpanan dan kontainer Blob Anda menggunakan
az role assignment
perintah . Pertama, tentukan variabelHPC_CACHE_USER
lingkungan danHPC_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
Tambahkan kontainer blob ke HPC Cache Anda sebagai target penyimpanan menggunakan
az hpc-cache blob-storage-target add
perintah . Contoh berikut membuat kontainer blob bernama MyStorageTarget ke HPC Cache MyHpcCache. Tentukan nilai untuk --name, --cache-name, dan --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"
Buat zona DNS Privat Azure untuk alamat IP yang menghadap klien menggunakan
az network private-dns zone create
perintah . Pertama-tama tentukan variabelPRIVATE_DNS_ZONE
lingkungan dan tentukan nama untuk zona tersebut.PRIVATE_DNS_ZONE="myhpccache.local"
az network private-dns zone create \ --resource-group $RESOURCE_GROUP \ --name $PRIVATE_DNS_ZONE
Buat tautan DNS antara Zona DNS Privat Azure dan VNet menggunakan
az network private-dns link vnet create
perintah . Ganti nilai untuk --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
Buat nama DNS round-robin untuk alamat IP yang menghadap klien menggunakan
az network private-dns record-set a create
perintah . Pertama, tentukan variabelDNS_NAME
lingkungan , ,HPC_MOUNTS0
,HPC_MOUNTS1
danHPC_MOUNTS2
. Ganti nilai untuk propertiDNS_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
Buat file bernama
pv-nfs.yaml
untuk menentukan volume persisten lalu tempelkan dalam manifes berikut. Ganti nilai untuk propertiserver
danpath
.--- apiVersion: v1 kind: PersistentVolume metadata: name: pv-nfs spec: capacity: storage: 10000Gi accessModes: - ReadWriteMany mountOptions: - vers=3 nfs: server: server.myhpccache.local path: /
Dapatkan kredensial untuk kluster Kubernetes Anda menggunakan
az aks get-credentials
perintah .az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
Buat volume persisten menggunakan
kubectl apply
perintah .kubectl apply -f pv-nfs.yaml
Verifikasi status volume persisten Tersedia menggunakan
kubectl describe
perintah .kubectl describe pv pv-nfs
Buat file bernama
pvc-nfs.yaml
untuk menentukan klaim volume persisten, lalu tempel manifes berikut.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-nfs spec: accessModes: - ReadWriteMany storageClassName: "" resources: requests: storage: 100Gi
Buat klaim volume persisten menggunakan
kubectl apply
perintah .kubectl apply -f pvc-nfs.yaml
Verifikasi status klaim volume persisten terikat menggunakan
kubectl describe
perintah .kubectl describe pvc pvc-nfs
Buat file bernama
nginx-nfs.yaml
untuk menentukan pod yang menggunakan klaim volume persisten, lalu tempel manifes berikut.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
Buat pod menggunakan
kubectl apply
perintah .kubectl apply -f nginx-nfs.yaml
Verifikasi pod berjalan menggunakan
kubectl describe
perintah .kubectl describe pod nginx-nfs
Pastikan volume Anda dipasang di pod menggunakan
kubectl exec
perintah untuk terhubung ke pod.kubectl exec -it nginx-nfs -- sh
Untuk memeriksa apakah volume dipasang, jalankan
df
dalam format yang dapat dibaca manusia menggunakan--human-readable
opsi (-h
singkatnya).df -h
Contoh berikut menyerupai output yang dikembalikan dari perintah:
Filesystem Size Used Avail Use% Mounted on ... server.myhpccache.local:/myfilepath 8.0E 0 8.0E 0% /mnt/azure/myfilepath ...
- Untuk informasi selengkapnya tentang Azure HPC Cache, lihat Gambaran umum HPC Cache.
- Untuk informasi selengkapnya tentang menggunakan NFS dengan AKS, lihat Membuat dan menggunakan volume Server Linux Network File System (NFS) secara manual dengan AKS.
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: