Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Diskleri geçici birimler olarak kullanma

Son Güncelleme:Oct 06, 2026

Uygulamanız geçici disk alanına—örneğin çalışma alanı, önbellekleme veya yüksek aktarım hızı gerektiren günlük çıktısına—ihtiyaç duyuyorsa her Pod'a bir geçici birim bağlayabilirsiniz. Kalıcı birimlerden (PV'ler) farklı olarak geçici birimler Pod'un yaşam döngüsüne bağlıdır: Pod başlatıldığında otomatik olarak oluşturulur ve Pod kaldırıldığında silinir. Bu sayede manuel temizleme ihtiyacı ortadan kalkar ve durumsuz iş yükleri için dağıtım süreci basitleşir.

Bu konuda, ephemeral.volumeClaimTemplate kullanarak cloud disk'in nasıl geçici birim olarak bağlanacağı ve bir Pod silindiğinde PV ile kalıcı birim talebinin (PVC) otomatik olarak nasıl temizlendiği gösterilmektedir.

Geçici birimlerin kullanım senaryoları

Uygulamanız geçici depolamaya ihtiyaç duyuyor ancak verilerin yeniden başlatmalar arasında kalıcı olmasını gerektirmiyorsa geçici birimler uygun bir çözümdür:

  • Çalışma alanı ve ara veriler: Veri işleme işlem hatlarından gelen geçici sonuçları manuel temizleme yapmadan saklayın.

  • Yüksek aktarım hızı gerektiren günlük çıktıları: G/Ç çakışmasını önlemek amacıyla her Pod için ayrılmış, paylaşılmayan disk depolaması kullanın.

  • Önbellekleme: Kalıcı depolama yönetimi ek yükü olmadan kısa ömürlü önbellek verilerini uygulamaya yakın tutun.

volumeClaimTemplate ile desteklenen geçici birimler, emptyDir birimlerinden iki temel açıdan farklıdır: ağ üzerinden bağlı depolamayı (cloud disk'ler) desteklerler ve Pod'un aşamayacağı sabit bir kapasite belirtmenize olanak tanır.

Çalışma mantığı

Bir Deployment, Pod veya StatefulSet içinde ephemeral.volumeClaimTemplate tanımladığınızda Kubernetes, Pod ile aynı ad alanında bir PVC oluşturur. PVC'nin sahibi Pod'dur. Pod silindiğinde—bu durum ölçek küçültme, rolling update veya manuel silme yoluyla olabilir—Kubernetes garbage collector ilgili PVC'yi siler; bu işlem de altta yatan PV ve cloud disk'in silinmesini tetikler.

PVC adlandırması: Kubernetes, her PVC için <pod-name>-<volume-name> desenini kullanarak otomatik olarak bir ad atar. Örneğin, ephemeral-example-7f795798f9-kbplx adlı bir Pod ve scratch-volume adlı bir birim söz konusu olduğunda ephemeral-example-7f795798f9-kbplx-scratch-volume adında bir PVC oluşturulur. Adlandırma deterministik olduğu için arama yapmadan Pod adı ve birim adını birleştirerek PVC'yi bulabilirsiniz.

İki Pod, adları ve birim adları örtüşüyorsa aynı PVC adını üretebilir (örneğin, pod-a Pod'u ve scratch birimi ile pod Pod'u ve a-scratch biriminin her ikisi de pod-a-scratch PVC'sini oluşturur). Pod ve birim adlarını özelleştirirken ad çakışmalarından kaçının.

Ön koşullar

Başlamadan önce aşağıdaki koşulu sağladığınızdan emin olun:

  • 1,22 veya sonraki bir sürümde çalışan Container Service for Kubernetes (ACK) kümesi

Deployment oluşturma ve geçici birim bağlama

volumeClaimTemplate, PVC'lerin yapılandırmasını tanımlar. İki replikaya sahip bir Deployment dağıttığınızda Kubernetes, aynı şablondan Pod başına bir tane olmak üzere iki PVC oluşturur. Bu PVC'ler aynı yapılandırmayı paylaşır ancak farklı adlara sahiptir.

ephemeral.volumeClaimTemplate Deployments, StatefulSets ve Pods ile çalışır. Bu konuda örnek olarak bir Deployment kullanılmıştır.
  1. Aşağıdaki içeriği ephemeral-example.yaml olarak kaydedin. Aşağıdaki tabloda yer alan açıklamalara göre volumeClaimTemplate içindeki parametreleri ayarlayın.

    Parametre Açıklama
    accessModes PV için erişim modu. Bir diskin aynı anda yalnızca bir Pod tarafından kullanıldığından emin olmak için ReadWriteOncePod (1,29 veya sonraki sürümlerde çalışan kümeler için) olarak ayarlayın. Daha eski küme sürümleri için ReadWriteOnce kullanın.
    storageClassName Kullanılacak StorageClass. Bu örnekte, diskleri şu sırayla sağlayan ACK varsayılan StorageClass'ı olan alicloud-disk-topology-alltype kullanılmaktadır: ESSD (kurumsal SSD), standart SSD ve ardından ultra disk. Diskler kullandıkça öde modeliyle faturalandırılır. Fiyatlandırma ayrıntıları için bkz. Elastic Block Storage faturalandırması ve Elastic Block Storage fiyatlandırması.
    storage Geçici birimin kapasitesi. alicloud-disk-topology-alltype StorageClass varsayılan olarak PL1 ESSD sağlar. Minimum kapasite 20 GiB'dir.
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: ephemeral-example
    spec:
      replicas: 2
      selector:
        matchLabels:
          pod: example-pod
      strategy:
        type: Recreate
      template:
        metadata:
          labels:
            pod: example-pod
        spec:
          containers:
            - name: nginx
              image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6
              resources:
                requests:
                  cpu: 500m
                  memory: 2Gi
                  ephemeral-storage: 2Gi
              volumeMounts:
              - mountPath: "/scratch"
                name: scratch-volume
          volumes:
            - name: scratch-volume
              ephemeral:      # Declare the current storage as ephemeral storage
                volumeClaimTemplate:
                  spec:
                    accessModes: [ "ReadWriteOncePod" ]
                    storageClassName: alicloud-disk-topology-alltype
                    resources:
                      requests:
                        storage: 30Gi
  2. Deployment'ı oluşturun.

    kubectl create -f ephemeral-example.yaml
  3. Her iki Pod'un da çalıştığını doğrulayın.

    kubectl get pod -l pod=example-pod

    Beklenen çıktı:

    NAME                                 READY   STATUS    RESTARTS   AGE
    ephemeral-example-7f795798f9-kbplx   1/1     Running   0          38s
    ephemeral-example-7f795798f9-p98lt   1/1     Running   0          38s
  4. PVC'lerin ve bunlara bağlı cloud disk'lerin otomatik olarak oluşturulduğunu doğrulayın.

    kubectl get pvc

    Beklenen çıktı (disk kimliği VOLUME alanında görünür):

    NAME                                                STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                     VOLUMEATTRIBUTESCLASS   AGE
    ephemeral-example-7f795798f9-kbplx-scratch-volume   Bound    d-uf61678cuo33eunn****   30Gi       RWOP           alicloud-disk-topology-alltype   <unset>                 74s
    ephemeral-example-7f795798f9-p98lt-scratch-volume   Bound    d-uf6dwkdcowyf2fj6****   30Gi       RWOP           alicloud-disk-topology-alltype   <unset>                 74s

Pod'lar kaldırıldığında PV'lerin ve PVC'lerin silindiğini doğrulama

Bir Pod silindiğinde Kubernetes garbage collector ilgili PVC'yi temizler; bu da bağlı PV ve cloud disk'in silinmesini tetikler. Aşağıdaki adımlar bu durumu ölçek küçültme işlemiyle göstermektedir.

  1. Deployment'ı tek bir replikaya düşürecek şekilde ölçeklendirin.

    kubectl scale deploy ephemeral-example --replicas=1
  2. Yalnızca bir Pod'un kaldığını onaylayın.

    kubectl get pod -l pod=example-pod

    Beklenen çıktı:

    NAME                                 READY   STATUS    RESTARTS   AGE
    ephemeral-example-7f795798f9-kbplx   1/1     Running   0          5m29s
  3. Silinen Pod'a ait PV'nin kaldırıldığını onaylayın.

    kubectl get pv

    Beklenen çıktı (yalnızca hayatta kalan Pod'a bağlı tek bir PV kalır):

    NAME                     CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                                       STORAGECLASS                     VOLUMEATTRIBUTESCLASS   REASON   AGE
    d-uf61678cuo33eunn****   30Gi       RWOP           Delete           Bound    default/ephemeral-example-7f795798f9-kbplx-scratch-volume   alicloud-disk-topology-alltype   <unset>                          5m52s
  4. Silinen Pod'a ait PVC'nin kaldırıldığını onaylayın.

    kubectl get pvc

    Beklenen çıktı (yalnızca tek bir PVC kalır):

    NAME                                                STATUS   VOLUME                   CAPACITY   ACCESS MODES   STORAGECLASS                     VOLUMEATTRIBUTESCLASS   AGE
    ephemeral-example-7f795798f9-kbplx-scratch-volume   Bound    d-uf61678cuo33eunn****   30Gi       RWOP           alicloud-disk-topology-alltype   <unset>                 7m11s

Sonraki adımlar

  • Pod başına geçici depolama tüketimini izlemek için bkz. Geçici depolama izleme.

  • Pod silinmesinden sonra varlığını koruyan kalıcı depolama için cloud disk'leri kullanmak amacıyla bkz. Disk birimleri.