Aracılığıyla paylaş


Azure Kubernetes Service üzerinde Azure Premium SSD v2 disklerini kullanma

Azure Premium SSD v2 diskleri GÇ yoğunluklu kurumsal iş yükleri, tutarlı bir milisaniyelik disk gecikme süresi ve yüksek IOPS ve aktarım hızı sunar. Premium SSD v2 disklerinin performansı (kapasite, aktarım hızı ve IOPS) her zaman bağımsız olarak yapılandırılabilir ve performans gereksinimlerini karşılarken daha fazla senaryonun maliyet açısından verimli olmasını kolaylaştırır.

Bu makalede, Azure Premium SSD v2 disklerini kullanmak için yeni veya mevcut bir AKS kümesinin nasıl yapılandırıldığı açıklanır.

Başlamadan önce

Azure Premium SSD v2 disklerini kullanabilen bir AKS kümesi oluşturmadan veya yükseltmeden önce, Premium Depolama destekleyen aynı bölgede ve kullanılabilirlik alanında bir AKS kümesi oluşturmanız ve aşağıdaki adımları izleyerek diskleri eklemeniz gerekir.

Mevcut bir AKS kümesi için, kümenize yeni bir düğüm havuzu ekleyerek Premium SSD v2 disklerini etkinleştirebilir ve ardından aşağıdaki adımları izleyerek diskleri ekleyebilirsiniz.

Önemli

Azure Premium SSD v2 diskleri, bu diskleri destekleyen bölgelere dağıtılmış düğüm havuzları gerektirir. Desteklenen bölgelerin listesi için bkz. Premium SSD v2 disk desteklenen bölgeler.

Sınırlamalar

Premium SSD v2 disklerini bir depolama sınıfıyla dinamik olarak kullanma

Premium SSD v2 disklerini bir dağıtımda veya durum bilgisi olan bir kümede kullanmak için, dinamik sağlama için bir depolama sınıfı kullanabilirsiniz.

Depolama sınıfını oluşturma

Depolama sınıfı, bir depolama biriminin kalıcı bir birimle dinamik olarak nasıl oluşturulduğunu tanımlamak için kullanılır. Kubernetes depolama sınıfları hakkında daha fazla bilgi için bkz. Kubernetes Depolama Sınıfları.

Bu örnekte Premium SSD v2 disklerine başvuran bir depolama sınıfı oluşturacaksınız. adlı azure-pv2-disk-sc.yamlbir dosya oluşturun ve aşağıdaki bildirimde kopyalayın.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
   name: premium2-disk-sc
parameters:
   cachingMode: None
   skuName: PremiumV2_LRS
   DiskIOPSReadWrite: "4000"
   DiskMBpsReadWrite: "1000"
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true

kubectl apply komutuyla depolama sınıfını oluşturun ve azure-pv2-disk-sc.yaml dosyanızı belirtin:

kubectl apply -f azure-pv2-disk-sc.yaml

Komutun çıktısı aşağıdaki örneğe benzer:

storageclass.storage.k8s.io/premium2-disk-sc created

Kalıcı birim talebi oluşturma

Depolama sınıfını temel alan depolamayı otomatik olarak sağlamak için kalıcı birim talebi (PVC) kullanılır. Bu durumda, bir PVC ultra disk oluşturmak için önceden oluşturulmuş depolama sınıfını kullanabilir.

adlı azure-pv2-disk-pvc.yamlbir dosya oluşturun ve aşağıdaki bildirimde kopyalayın. Talep, ReadWriteOnce erişimiyle boyutu 1000 GB olan adlı premium2-disk bir disk talep eder. Premium2-disk-sc depolama sınıfı, depolama sınıfı olarak belirtilir.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: premium2-disk
spec:
  accessModes:
  - ReadWriteOnce
  storageClassName: premium2-disk-sc
  resources:
    requests:
      storage: 1000Gi

kubectl apply komutuyla kalıcı birim talebi oluşturun ve azure-pv2-disk-pvc.yaml dosyanızı belirtin:

kubectl apply -f azure-pv2-disk-pvc.yaml

Komutun çıktısı aşağıdaki örneğe benzer:

persistentvolumeclaim/premium2-disk created

Kalıcı birimi kullanma

Kalıcı birim talebi oluşturulduktan ve disk başarıyla sağlandıktan sonra, diske erişim ile bir pod oluşturulabilir. Aşağıdaki bildirim, azure diskini yoluna /mnt/azurebağlamak için premium2-disk adlı kalıcı birim talebi kullanan temel bir NGINX podu oluşturur.

adlı nginx-premium2.yamlbir dosya oluşturun ve aşağıdaki bildirimde kopyalayın.

kind: Pod
apiVersion: v1
metadata:
  name: nginx-premium2
spec:
  containers:
  - name: nginx-premium2
    image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 250m
        memory: 256Mi
    volumeMounts:
    - mountPath: "/mnt/azure"
      name: volume
  volumes:
    - name: volume
      persistentVolumeClaim:
        claimName: premium2-disk

Aşağıdaki örnekte gösterildiği gibi kubectl apply komutuyla pod oluşturun:

kubectl apply -f nginx-premium2.yaml

Komutun çıktısı aşağıdaki örneğe benzer:

pod/nginx-premium2 created

Artık azure diskinizin dizinine bağlı olarak çalışan bir podunuz /mnt/azure var. Bu yapılandırma, aşağıdaki daraltılmış örnekte gösterildiği gibi aracılığıyla kubectl describe pod nginx-premium2podunuz incelenirken görülebilir:

kubectl describe pod nginx-premium2

[...]
Volumes:
  volume:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  premium2-disk
    ReadOnly:   false
  kube-api-access-sh59b:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/memory-pressure:NoSchedule op=Exists
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason                  Age    From                     Message
  ----    ------                  ----   ----                     -------
  Normal  Scheduled               7m58s  default-scheduler        Successfully assigned default/nginx-premium2 to aks-agentpool-12254644-vmss000006
  Normal  SuccessfulAttachVolume  7m46s  attachdetach-controller  AttachVolume.Attach succeeded for volume "pvc-ff39fb64-1189-4c52-9a24-e065b855b886"
  Normal  Pulling                 7m39s  kubelet                  Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine"
  Normal  Pulled                  7m38s  kubelet                  Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine" in 1.192915667s
  Normal  Created                 7m38s  kubelet                  Created container nginx-premium2
  Normal  Started                 7m38s  kubelet                  Started container nginx-premium2
[...]

IOPS ve aktarım hızı sınırlarını ayarlama

Azure Premium v2 SSD disk için Saniye Başına Giriş/Çıkış İşlemleri (IOPS) ve aktarım hızı sınırları şu anda AKS aracılığıyla desteklenmemaktadır. Performansı ayarlamak için az disk update Azure CLI komutunu kullanabilir ve ve --disk-mbps-read-write parametrelerini dahil --disk-iops-read-write edebilirsiniz.

Aşağıdaki örnek, IOPS okuma/yazma diskini 5000 ve Mb/sn'yi 200 olarak güncelleştirir. için --resource-groupdeğeri, adlandırma kuralı MC_resourcegroupname_clustername_location AKS çalışan düğümlerini depolamak için otomatik olarak oluşturulan ikinci kaynak grubu olmalıdır. Daha fazla bilgi için bkz. AKS ile neden iki kaynak grubu oluşturulur?.

parametresinin --name değeri StorageClass kullanılarak oluşturulan birimin adıdır ve ile pvc-başlar. Disk adını tanımlamak için portalda çalıştırabilir kubectl get pvc veya ikincil kaynak grubuna gidip bulabilirsiniz. Daha fazla bilgi edinmek için bkz. Azure portal kaynakları yönetme.

az disk update --subscription subscriptionName --resource-group myResourceGroup --name diskName --disk-iops-read-write=5000 --disk-mbps-read-write=200  

Sonraki adımlar