Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Komut satırından dinamik olarak sağlanan birimleri kullanma

Son Güncelleme:Oct 06, 2026

Kubernetes, bir iş yükü için hangi cloud diskinin sağlanacağını otomatik olarak bilemez. Disk türü ve alan tercihlerinizi eşleyen bir StorageClass tanımlamanız ve bunu kalıcı birim talebinde (PVC) referans almanız gerekir. PVC oluşturulduğunda Disk-Controller diski otomatik olarak sağlar ve kalıcı birim (PV) olarak bağlar.

Ön koşullar

Başlamadan önce şunlara sahip olduğunuzdan emin olun:

  • kubectl yapılandırılmış çalışan bir ACK kümesi

  • Kümede StorageClass ve PVC kaynakları oluşturma izni

Varsayılan StorageClass'lar

Tek alanlı kümeler aşağıdaki StorageClass'ları hazır olarak içerir. Çok alanlı kümelerde hedef alanı belirtmek için StorageClass'ı manuel olarak oluşturmanız gerekir.

StorageClass Disk türü En uygun kullanım
alicloud-disk-efficiency Ultra disk Orta düzey G/Ç gereksinimleri olan maliyet odaklı iş yükleri
alicloud-disk-ssd Standart SSD Güvenilir performans gerektiren genel amaçlı iş yükleri
alicloud-disk-essd Gelişmiş SSD (ESSD) Düşük gecikme süresi ve yüksek aktarım hızı gerektiren üretim iş yükleri
alicloud-disk-available Yüksek kullanılabilirlik modu Disk türünden ziyade disk kullanılabilirliğinin öncelikli olduğu iş yükleri
alicloud-disk-topology WaitForFirstConsumer modu Pod zamanlamanın disk alanını belirlediği çok alanlı kümeler
alicloud-disk-available için sistem önce standart SSD oluşturmaya çalışır; SSD kaynakları tükendiğinde ultra diske geri döner. v1.14.8.44-c23b62c5-aliyun öncesi Disk-Controller sürümlerinde geri dönüş sırası şöyledir: gelişmiş SSD (ESSD) → standart SSD → ultra disk.

StorageClass oluşturma

Küme yapılandırmanıza göre bir StorageClass türü seçin:

Alan kimliği içeren StorageClass oluşturma

Bu yaklaşımı tek alanlı kümeler için veya disk oluşturmayı belirli bir alana sabitlemek istediğinizde kullanın.

  1. Aşağıdaki içeriğe sahip storage-class.yaml adlı bir dosya oluşturun:

    kind: StorageClass
    apiVersion: storage.k8s.io/v1
    metadata:
      name: alicloud-disk-ssd-hangzhou-b
    provisioner: alicloud/disk
    parameters:
      type: cloud_ssd
      regionId: cn-hangzhou
      zoneId: cn-hangzhou-b
    reclaimPolicy: Retain  # Default is Delete. Set to Retain to prevent accidental data loss.

    Aşağıdaki tabloda parametreler açıklanmaktadır:

    Parametre Açıklama Gerekli Varsayılan
    provisioner Disk sağlamak için kullanılan birim eklentisi. alicloud/disk olarak ayarlayın. Evet —
    type Disk türü. Geçerli değerler: cloud_efficiency (ultra disk), cloud_ssd (standart SSD), cloud_essd (ESSD), available (en iyi kullanılabilir türü otomatik seçen yüksek kullanılabilirlik modu). Evet —
    regionId Diske oluşturulacağı bölge. Evet —
    zoneId Diske oluşturulacağı alan. Çok alanlı kümeler için virgülle ayrılmış birden fazla alan belirtin: cn-hangzhou-a,cn-hangzhou-b,cn-hangzhou-c. Evet —
    reclaimPolicy PVC silindiğinde diskin geri kazanım ilkesi. Retain diski korur; Delete diski kaldırır. Veri kaybını önlemek için Retain olarak ayarlayın. Hayır Delete
    encrypted Diske şifreleme uygulanıp uygulanmayacağı. Hayır false
  2. StorageClass'ı uygulayın:

    kubectl apply -f storage-class.yaml
  3. StorageClass'ın oluşturulduğunu doğrulayın:

    kubectl get storageclass alicloud-disk-ssd-hangzhou-b

    Çıktıda, sağlayıcı olarak alicloud/disk içeren StorageClass görünmelidir.

WaitForFirstConsumer modunda StorageClass oluşturma

Çok alanlı kümelerde, bir pod zamanlanmadan önce PV sağlanabilir ve disk podun sonunda çalıştığı alandan farklı bir alanda yer alabilir. Bu durumda pod, başka bir alandaki diski bağlayamadığı için başlatılamaz. WaitForFirstConsumer modu, disk sağlamayı tüketici pod zamanlanana kadar erteleyerek bu sorunu çözer; böylece disk her zaman pod ile aynı alanda oluşturulur.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: alicloud-disk-topology-ssd
provisioner: alicloud/disk
parameters:
  type: cloud_ssd
reclaimPolicy: Retain  # Default is Delete.
volumeBindingMode: WaitForFirstConsumer

StorageClass'ı uygulayın:

kubectl apply -f storage-class-topology.yaml

Alan seçimi nasıl çalışır — Aşağıdaki tablo, StorageClass yapılandırmanıza göre disk yerleştirme davranışını özetler:

Yapılandırma Disk yerleşimi
zoneId yok, WaitForFirstConsumer yok Disk-Controller bileşeninin dağıtıldığı alan
zoneId ayarlı, WaitForFirstConsumer yok Belirtilen alanlar, yuvarlak roket yöntemiyle seçilir
WaitForFirstConsumer etkin Tüketici podun zamanlandığı düğümün alanı

PVC ve Pod oluşturma

Aşağıdaki manifest, alicloud-disk-ssd-hangzhou-b StorageClass'ını kullanan bir PVC ve diski bağlayan bir Pod oluşturur:

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: disk-ssd
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: alicloud-disk-ssd-hangzhou-b
  resources:
    requests:
      storage: 20Gi
---
kind: Pod
apiVersion: v1
metadata:
  name: disk-pod-ssd
spec:
  containers:
  - name: disk-pod
    image: nginx
    volumeMounts:
      - name: disk-pvc
        mountPath: "/mnt"
  restartPolicy: "Never"
  volumes:
    - name: disk-pvc
      persistentVolumeClaim:
        claimName: disk-ssd

Manifest'i uygulayın:

kubectl apply -f pvc-pod.yaml

PVC'nin bağlı olduğunu ve Pod'un çalıştığını doğrulayın:

kubectl get pvc disk-ssd
kubectl get pod disk-pod-ssd

Başarıyla bağlanmış bir PVC STATUS: Bound gösterir. Çalışan bir Pod STATUS: Running gösterir.

Çok örnekli StatefulSet oluşturma

Her StatefulSet çoğaltması için ayrı bir PVC ve PV dinamik olarak oluşturmak üzere volumeClaimTemplates kullanın. Aşağıdaki örnekte, çoğaltma başına 20 GiB disk içeren iki çoğaltmalı bir nginx StatefulSet oluşturulur:

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: web
spec:
  selector:
    matchLabels:
      app: nginx
  serviceName: "nginx"
  replicas: 2
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
          name: web
        volumeMounts:
        - name: disk-ssd
          mountPath: /data
  volumeClaimTemplates:
  - metadata:
      name: disk-ssd
    spec:
      accessModes: [ "ReadWriteOnce" ]
      storageClassName: "alicloud-disk-ssd-hangzhou-b"
      resources:
        requests:
          storage: 20Gi

Manifest'i uygulayın:

kubectl apply -f statefulset.yaml

StatefulSet, Pod'lar ve PVC'lerin tümünün oluşturulduğunu doğrulayın:

kubectl get statefulset web
kubectl get pods -l app=nginx
kubectl get pvc -l app=nginx

Her Pod (web-0, web-1), bağımsız olarak sağlanmış bir diskle desteklenen kendi PVC'sine (disk-ssd-web-0, disk-ssd-web-1) sahip olur.

Sonraki adımlar