Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Expand a cloud disk volume online

Son Güncelleme:Oct 06, 2026

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: true ayarı 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.

Önemli

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.

  1. ACK konsoluna giriş yapın ve Clusters öğesini tıklayın.

  2. Küme adını tıklayın, ardından sol bölmede Cluster Information seçeneğini tıklayın.

  3. Basic Information sekmesinde, Cluster Resources bölümünde Master RAM Role değerini bulun ve bağlantıyı tıklayın.

  4. RAM konsolundaki Roles sayfasında ResizeDisk iznini 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.

  1. 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.

  2. Pod'un Çalışıyor (Running) durumunda olduğunu doğrulayın.

    kubectl get pod -l app=nginx

    Beklenen çıktı:

    NAME          READY   STATUS    RESTARTS   AGE
    disk-test-0   1/1     Running   0          23h
  3. Mevcut disk kullanımını ve PVC'yi kontrol edin.

    Önemli

    Statik olarak sağlanan bir disk birimi için, PVC'deki storageClassName değ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 ve allowVolumeExpansion: true ayarını yapın.

    kubectl exec disk-test-0 -- df -h /data

    Beklenen çıktı:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vdb         20G   24K   20G   1% /data
    kubectl get pvc

    Beklenen çıktı (PVC disk-pvc 20 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
  4. StorageClass'te allowVolumeExpansion: true ayarının bulunduğunu doğrulayın.

    kubectl get sc alicloud-disk-wait-for-first-consumer -o yaml

    Beklenen çı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
  5. 30 GiB talep etmek için PVC'ye yama uygulayın.

    kubectl patch pvc disk-pvc -p '{"spec":{"resources":{"requests":{"storage":"30Gi"}}}}'
  6. Bir dakika bekleyin, ardından yeni kapasiteyi doğrulayın.

    kubectl get pvc

    Beklenen çıktı:

    NAME       STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                            VOLUMEATTRIBUTESCLASS   AGE
    disk-pvc   Bound    d-uf6axyb1er071h6o****   30Gi       RWO            alicloud-disk-wait-for-first-consumer   <unset>                 23h
    kubectl exec disk-test-0 -- df -h /data

    Beklenen çıktı:

    Filesystem      Size  Used Avail Use% Mounted on
    /dev/vdb         30G   24K   30G   1% /data

ACK konsolunu kullanarak bir disk birimini genişletin

Not

ACK konsolu yalnızca dinamik olarak sağlanan disk birimlerini destekler. Statik olarak sağlanan disk birimleri için kubectl kullanın.

  1. ACK konsoluna giriş yapın ve Clusters öğesini tıklayın.

  2. Küme yönetim sayfasına gitmek için küme adını tıklayın.

  3. Pod durumunu doğrulayın ve PVC'yi bulun.

    1. Sol gezinme bölmesinde Workloads > StatefulSets seçeneklerini seçin.

    2. Uygulama adını tıklayın. Pods sekmesinde pod'un Çalışıyor (Running) durumunda olduğunu doğrulayın.

    3. Pod adını tıklayın. Volumes sekmesinde pod tarafından kullanılan PVC'yi not edin.

  4. StorageClass'te genişletmenin etkin olduğunu doğrulayın.

    1. Sol gezinme bölmesinde Volumes > Storage Classes seçeneklerini seçin.

    2. Disk birimi tarafından kullanılan StorageClass'ı bulun ve View in YAML seçeneğini tıklayın.

    3. allowVolumeExpansion: true ayarı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
  5. PVC'yi genişletin.

    1. Sol gezinme bölmesinde Volumes > Persistent Volume Claims seçeneklerini seçin.

    2. PVC'yi bulun ve Expand seçeneğini tıklayın.

    3. 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.

      Not

      PVC herhangi bir pod tarafından referans alınmıyorsa, PVC genişletme işlemi Genişletiliyor (Expanding) durumunda kalır.

    4. Genişletmenin tamamlanmasını bekleyin, ardından PVC'nin yeni kapasiteyi gösterdiğini doğrulayın.

Sonraki adımlar