ACK'deki Container Storage Interface (CSI) eklentisi, çalışan pod'larınızı yeniden başlatmanıza veya kesintiye uğratmanıza gerek kalmadan kalıcı birim talebini (PVC) değiştirerek bir Cloud Disk birimini genişletmenizi sağlar. Bu işlem için Kubernetes 1.16 veya sonraki bir sürüm gerekir.
Önkoşullar
Başlamadan önce aşağıdakileri doğrulayın:
PVC ile ilişkili StorageClass içinde
allowVolumeExpansion: trueayarı bulunmalıdır. ACK tarafından sağlanan StorageClass'lerde bu ayar varsayılan olarak etkindir. Özel StorageClass'ler için bu ayarı manuel olarak yapmanız gerekir. StorageClass özellikleri oluşturulduktan sonra değiştirilemez; gerekliyse yeni bir StorageClass oluşturun.Diski kullanan pod Çalışıyor (Running) durumundadır.
Disk temel (basic) disk değildir. Temel diskler çevrimiçi genişletmeyi desteklemez.
Küme, Kubernetes 1.16 veya üzeri bir sürümde çalışmaktadır. Yükseltme yapmak için bkz. Kümeleri yükseltin.
Disk, yeniden boyutlandırmayı destekler. Desteklenen disk türleri için bkz. ResizeDisk.
Verilerinizi yedeklemek amacıyla yeniden boyutlandırmadan önce bir anlık görüntü oluşturun. Gereksiz ücretlerden kaçınmak için genişletme tamamlandıktan sonra anlık görüntüyü silin. Bkz. Disk anlık görüntülerini kullanma.
Yalnızca ACK özel kümeleri: Kümenin RAM rolüne ResizeDisk iznini verin. ACK yönetilen kümelerde bu izin zaten mevcuttur.
ACK konsoluna giriş yapın ve Clusters öğesini tıklayın.
Küme adını tıklayın, ardından sol bölmede Cluster Information seçeneğini tıklayın.
Basic Information sekmesinde, Cluster Resources bölümünde Master RAM Role değerini bulun ve bağlantıyı tıklayın.
RAM konsolundaki Roles sayfasında
ResizeDiskiznini ekleyin. Bkz. Özel ilkenin belgesini ve açıklamasını değiştirin.
Aşağıda, ResizeDisk eylemini içeren izin ilkesine bir örnek verilmiştir:
"Action": [
"ecs:AttachDisk",
"ecs:DetachDisk",
"ecs:DescribeDisks",
"ecs:CreateDisk",
"ecs:CreateSnapshot",
"ecs:DeleteDisk",
"ecs:ResizeDisk",
"ecs:CreateNetworkInterface",
"ecs:DescribeNetworkInterfaces",
"ecs:AttachNetworkInterface",
"ecs:DetachNetworkInterface",
"ecs:DeleteNetworkInterface",
"ecs:DescribeInstanceAttribute",
"ecs:AssignPrivateIpAddresses",
"ecs:UnassignPrivateIpAddresses",
"ecs:DescribeInstances"
]
kubectl kullanarak bir disk birimini genişletin
Aşağıdaki örnekte, Dinamik olarak sağlanan bir disk birimi oluşturma bölümünde oluşturulan bir disk birimi kullanılmaktadır. PVC'yi değiştirmek, CSI eklentisinin altta yatan diski yeniden boyutlandırmasını ve dosya sistemini çevrimiçi olarak genişletmesini tetikler; bu süreçte pod çalışmaya devam eder.
Kümenize bağlanın. Bkz. Bir kümenin kubeconfig dosyasını alın ve kubectl kullanarak kümeye bağlanın veya Workbench veya Cloud Shell üzerinde kubectl kullanarak ACK kümelerine bağlanın.
-
Pod'un Çalışıyor (Running) durumunda olduğunu doğrulayın.
kubectl get pod -l app=nginxBeklenen çıktı:
NAME READY STATUS RESTARTS AGE disk-test-0 1/1 Running 0 23h -
Mevcut disk kullanımını ve PVC'yi kontrol edin.
ÖnemliStatik olarak sağlanan bir disk birimi için, PVC'deki
storageClassNamedeğerinin boş olmadığından ve kümede bu ada sahip bir StorageClass bulunduğundan emin olun. Eşleşen bir StorageClass yoksa, mevcut diskin nitelikleriyle bir tane oluşturun veallowVolumeExpansion: trueayarını yapın.kubectl exec disk-test-0 -- df -h /dataBeklenen çıktı:
Filesystem Size Used Avail Use% Mounted on /dev/vdb 20G 24K 20G 1% /datakubectl get pvcBeklenen çıktı (PVC
disk-pvc20 GiB kapasite ile bağlıdır):NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-uf6axyb1er071h6o**** 20Gi RWO alicloud-disk-wait-for-first-consumer <unset> 23h -
StorageClass'te
allowVolumeExpansion: trueayarının bulunduğunu doğrulayın.kubectl get sc alicloud-disk-wait-for-first-consumer -o yamlBeklenen çıktı:
allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: creationTimestamp: "2025-01-21T08:48:26Z" name: alicloud-disk-wait-for-first-consumer resourceVersion: "59936" uid: 5bdb798e-5888-40df-9f91-259ee8510f34 parameters: type: cloud_auto,cloud_essd,cloud_ssd provisioner: diskplugin.csi.alibabacloud.com reclaimPolicy: Retain volumeBindingMode: WaitForFirstConsumer -
30 GiB talep etmek için PVC'ye yama uygulayın.
kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}' -
Bir dakika bekleyin, ardından yeni kapasiteyi doğrulayın.
kubectl get pvcBeklenen çıktı:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTESCLASS AGE disk-pvc Bound d-uf6axyb1er071h6o**** 30Gi RWO alicloud-disk-wait-for-first-consumer <unset> 23hkubectl exec disk-test-0 -- df -h /dataBeklenen çıktı:
Filesystem Size Used Avail Use% Mounted on /dev/vdb 30G 24K 30G 1% /data
ACK konsolunu kullanarak bir disk birimini genişletin
ACK konsolu yalnızca dinamik olarak sağlanan disk birimlerini destekler. Statik olarak sağlanan disk birimleri için kubectl kullanın.
ACK konsoluna giriş yapın ve Clusters öğesini tıklayın.
Küme yönetim sayfasına gitmek için küme adını tıklayın.
-
Pod durumunu doğrulayın ve PVC'yi bulun.
Sol gezinme bölmesinde Workloads > StatefulSets seçeneklerini seçin.
Uygulama adını tıklayın. Pods sekmesinde pod'un Çalışıyor (Running) durumunda olduğunu doğrulayın.
Pod adını tıklayın. Volumes sekmesinde pod tarafından kullanılan PVC'yi not edin.
-
StorageClass'te genişletmenin etkin olduğunu doğrulayın.
Sol gezinme bölmesinde Volumes > Storage Classes seçeneklerini seçin.
Disk birimi tarafından kullanılan StorageClass'ı bulun ve View in YAML seçeneğini tıklayın.
-
allowVolumeExpansion: trueayarının mevcut olduğunu doğrulayın.Örnek çıktı:
allowVolumeExpansion: true apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: creationTimestamp: '2025-01-21T08:48:26Z' managedFields: - apiVersion: storage.k8s.io/v1 fieldsType: FieldsV1 fieldsV1: 'f:allowVolumeExpansion': {} 'f:parameters': .: {} 'f:type': {} 'f:provisioner': {} 'f:reclaimPolicy': {} 'f:volumeBindingMode': {} manager: okhttp operation: Update time: '2025-01-21T08:48:26Z' name: alicloud-disk-wait-for-first-consumer resourceVersion: '59936' uid: 5bdb798e-5888-40df-9f91-259ee8510f34 parameters: type: 'cloud_auto,cloud_essd,cloud_ssd' provisioner: diskplugin.csi.alibabacloud.com reclaimPolicy: Retain volumeBindingMode: WaitForFirstConsumer
-
PVC'yi genişletin.
Sol gezinme bölmesinde Volumes > Persistent Volume Claims seçeneklerini seçin.
PVC'yi bulun ve Expand seçeneğini tıklayın.
-
Yeni kapasiteyi girin, I understand and agree to the preceding operations. seçeneğini işaretleyin ve OK düğmesini tıklayın.
Genişletme aralığı: minimum 21 GiB, maksimum 32.768 GiB. Ondalık sayılar desteklenmez.
NotPVC herhangi bir pod tarafından referans alınmıyorsa, PVC genişletme işlemi Genişletiliyor (Expanding) durumunda kalır.
Genişletmenin tamamlanmasını bekleyin, ardından PVC'nin yeni kapasiteyi gösterdiğini doğrulayın.
Sonraki adımlar
Kullanım bir eşiği aştığında bir disk birimini otomatik olarak genişletmek için bkz. Bir disk birimini otomatik olarak genişletme (genel önizleme).
Disk birimi hataları ve çözümleri için bkz. Disk birimleri hakkında SSS.