Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Kalıcı depolama için statik cloud disk birimi - Flexvolume

Son Güncelleme:Oct 06, 2026

Bir konteyner çöktüğünde, durum bilgisi içeren iş yüklerindeki veriler kaybolabilir veya güvenilmez hale gelebilir. Kalıcı depolama bu riski ortadan kaldırır. Bu konu, Flexvolume ile kalıcı depolama amacıyla statik olarak sağlanan bir cloud disk biriminin nasıl kullanılacağını açıklar.

Önkoşullar

Aşağıdaki görevleri tamamlayın:

Arka Plan

Cloud disk kullanım senaryoları:

  • MySQL ve Redis gibi yüksek disk G/Ç gerektiren ve veri paylaşımı gerekmeyen hizmetler.

  • Yüksek hızlı günlük yazma.

  • Verilerin bir pod'un yaşam döngüsü ötesinde kalıcı hale getirilmesi.

Mevcut bir cloud disk biriminiz varsa statik olarak sağlanan bir birim kullanın.

Statik olarak sağlanan bir cloud disk birimini kullanmak için Kalıcı Birim (PV) ve Kalıcı Birim Talebi (PVC) öğelerini manuel olarak oluşturun.

Sınırlamalar

  • Bir cloud disk birimi aynı anda yalnızca bir pod'a bağlanabilir.

  • Bir cloud disk birimi yalnızca aynı alandaki bir düğüme bağlanabilir.

PV Oluşturma

  1. pv-static.yaml adlı bir dosya oluşturun.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: <your-disk-id>
      labels:
        alicloud-pvname: <your-disk-id>
        failure-domain.beta.kubernetes.io/zone: <your-zone>
        failure-domain.beta.kubernetes.io/region: <your-region>
    spec:
      capacity:
        storage: 20Gi
      accessModes:
        - ReadWriteOnce
      flexVolume:
        driver: "alicloud/disk"
        fsType: "ext4"
        options:
          volumeId: "<your-disk-id>"
    Not
    • alicloud-pvname: <your-disk-id>: PV adı. Cloud disk ID'nizle eşleşmelidir.

    • failure-domain.beta.kubernetes.io/zone: <your-zone>: Cloud disk alanı, örneğin cn-hangzhou-b.

    • failure-domain.beta.kubernetes.io/region: <your-region>: Cloud disk bölgesi, örneğin cn-hangzhou.

    Çok bölgeli kümeler için pod'ların cloud disk ile aynı alanda zamanlanmasını sağlamak üzere failure-domain.beta.kubernetes.io/zone ve failure-domain.beta.kubernetes.io/region değerlerini belirtin.

  2. PV'yi oluşturun.

    kubectl create -f pv-static.yaml

    Verification Result

    1. Container Service Management Console üzerinde oturum açın.

    2. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

    3. Clusters sayfasında hedef kümeye tıklayın veya Actions sütunundaki Details seçeneğine tıklayın.

    4. Küme yönetimi sayfasının sol gezinme bölmesinde Volumes > Persistent Volumes yolunu izleyin. PV; kapasite 20Gi, erişim modu ReadWriteOnce, geri alma ilkesi Retain ve durum Available olarak görünür.

PVC Oluşturma

  1. pvc-static.yaml adlı bir dosya oluşturun.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: pvc-disk
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 20Gi
      selector:
        matchLabels:
          alicloud-pvname: <your-disk-id>
  2. PVC'yi oluşturun.

    kubectl create -f pvc-static.yaml

    Verification Result

    1. Container Service Management Console üzerinde oturum açın.

    2. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

    3. Clusters sayfasında hedef kümeye tıklayın veya Actions sütunundaki Details seçeneğine tıklayın.

    4. Küme yönetimi sayfasının sol gezinme bölmesinde Volumes > Persistent Volume Claims yolunu izleyin.

    5. PVC, Persistent Volume Claims sayfasında görünür.

Uygulama Oluşturma

  1. static.yaml adlı bir dosya oluşturun.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-static
      labels:
        app: nginx
    spec:
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx
            volumeMounts:
              - name: disk-pvc
                mountPath: "/data"
          volumes:
            - name: disk-pvc
              persistentVolumeClaim:
                claimName: pvc-disk
  2. Uygulamayı oluşturun.

    kubectl create -f static.yaml

    Verification Result

    1. Container Service Management Console üzerinde oturum açın.

    2. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

    3. Clusters sayfasında hedef kümeye tıklayın veya Actions sütunundaki Details seçeneğine tıklayın.

    4. Küme yönetimi sayfasının sol gezinme bölmesinde Workloads > Deployments yolunu izleyin.

    5. Uygulama, Deployments sayfasında görünür.

Veri Kalıcılığını Doğrulama

  1. Pod adını alın.

    kubectl get pod | grep static

    Beklenen çıktı:

    nginx-static-78c7dcb9d7-g****   2/2     Running     0          32s
  2. Cloud disk biriminin /data konumuna bağlandığını doğrulayın.

    kubectl exec nginx-static-78c7dcb9d7-g**** -- df | grep data

    Beklenen çıktı:

    /dev/vdf        20511312    45080  20449848   1% /data
  3. /data içindeki dosyaları listeleyin.

    kubectl exec nginx-static-78c7dcb9d7-g**** -- ls /data

    Beklenen çıktı:

    lost+found
  4. /data dizininde static adlı bir dosya oluşturun.

    kubectl exec nginx-static-78c7dcb9d7-g**** -- touch /data/static
  5. /data içindeki dosyaları listeleyin.

    kubectl exec nginx-static-78c7dcb9d7-g**** -- ls /data

    Beklenen çıktı:

    static
    lost+found
  6. nginx-static-78c7dcb9d7-g**** pod'unu silin.

    kubectl delete pod nginx-static-78c7dcb9d7-g****

    Beklenen çıktı:

    pod "nginx-static-78c7dcb9d7-g****" deleted
  7. Ayrı bir terminalde Kubernetes'in pod'u silip yeniden oluşturmasını izleyin.

    kubectl get pod -w -l app=nginx

    Beklenen çıktı:

    NAME                            READY   STATUS            RESTARTS   AGE
    nginx-static-78c7dcb9d7-g****   2/2     Running           0          50s
    nginx-static-78c7dcb9d7-g****   2/2     Terminating       0          72s
    nginx-static-78c7dcb9d7-h****   0/2     Pending           0          0s
    nginx-static-78c7dcb9d7-h****   0/2     Pending           0          0s
    nginx-static-78c7dcb9d7-h****   0/2     Init:0/1          0          0s
    nginx-static-78c7dcb9d7-g****   0/2     Terminating       0          73s
    nginx-static-78c7dcb9d7-h****   0/2     Init:0/1          0          5s
    nginx-static-78c7dcb9d7-g****   0/2     Terminating       0          78s
    nginx-static-78c7dcb9d7-g****   0/2     Terminating       0          78s
    nginx-static-78c7dcb9d7-h****   0/2     PodInitializing   0          6s
    nginx-static-78c7dcb9d7-h****   2/2     Running           0          8s
  8. Yeniden oluşturulan pod'un adını alın.

    kubectl get pod

    Beklenen çıktı:

    NAME                            READY   STATUS      RESTARTS   AGE
    nginx-static-78c7dcb9d7-h****   2/2     Running     0          14s
  9. /data içindeki dosyaları listeleyin. static dosyası hala mevcuttur; bu durum, cloud disk üzerindeki verilerin pod yeniden başlatmaları sırasında korunduğunu doğrular.

    kubectl exec nginx-static-78c7dcb9d7-h**** -- ls /data

    Beklenen çıktı:

    static
    lost+found