Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Accelerate container startup with on-demand image loading

Son Güncelleme:Oct 06, 2026

Konteyner görüntüleri sıkıştırılmış katmanlar olarak depolanır. Bir konteyner başladığında, çalışma zamanı konteyner çalışabilmeden önce her katmanı indirir ve açar; oysa çoğu iş senaryosunda konteyner çalışma zamanının konteyner görüntüsünden yalnızca bir veri bölümünü okuması gerekir. Büyük görüntüler için bu gereksiz indirme işlemi başlangıç süresini büyük ölçüde etkiler.

ACK, Data Accelerator for Disaggregated Infrastructure (DADI) kullanarak konteyner görüntülerinin isteğe bağlı yüklenmesini destekler. DADI, tüm görüntüyü önceden çekmek yerine konteynerin gerçekten ihtiyaç duyduğu verileri yükler ve bunları anında açar.

Docker Hub'dan alınan 1,34 GB boyutundaki NodeBB görüntüsü için isteğe bağlı yükleme, görüntü çekme aşamasını 36 saniyeden 4 saniyeye ve toplam uygulama başlangıç süresini 38 saniyeden 9 saniyeye düşürür.

Önemli

Yukarıdaki görüntü çekme süreleri yalnızca referans amaçlıdır. Gerçek performans, görüntü boyutuna ve ağ koşullarına bağlıdır.

Sınırlamalar

Kısıtlama Gereksinim
Küme türü Yalnızca ACK yönetilen kümeler.
Küme sürümü 1.26 veya üzeri. Bkz. Bir kümeyi manuel olarak yükseltme.
Düğüm çalışma zamanı containerd 1.6.34 veya üzeri. Bkz. Bir düğüm havuzunu güncelleme.
DADI modu Yalnızca tam mod. Yalnızca dizin modu desteklenmez.

Önemli davranış — bir düğüm havuzunda Konteyner Görüntü Hızlandırmayı etkinleştirmek veya devre dışı bırakmak yalnızca daha sonra eklenen düğümleri etkiler. Değişikliği mevcut düğümlere uygulamak için bunları düğüm havuzundan kaldırın ve yeniden ekleyin. Bkz. Bir düğümü kaldırma ve Mevcut düğümleri ekleme.

Önkoşullar

Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:

  • Kubernetes 1.26 veya üzeri sürümde çalışan ve düğüm çalışma zamanı olarak containerd 1.6.34 veya üzeri sürümü kullanan bir ACK yönetilen kümesi

  • Bir görüntü deposuna erişim — ACR Enterprise Edition (Standard veya Premium) ya da kendi yönettiğiniz bir kayıt defteri

  • Kümeye kubectl erişimi

Adım 1: Hızlandırılmış bir görüntü edinin

Hızlandırılmış görüntüler DADI biçimini kullanır. Mevcut bir görüntüyü dönüştürmek için ACR Enterprise Edition'ın yerleşik dönüştürme özelliğini (önerilir) veya açık kaynaklı DADI aracını kullanın.

Seçenek 1: ACR Enterprise Edition kullanın (önerilir)

ACR Enterprise Edition (Standard veya Premium), görüntüleri depo düzeyinde otomatik olarak dönüştürür. Bir görüntüyü gönderdiğinizde ACR, orijinali değiştirmeden hızlandırılmış bir kopya oluşturur. Hızlandırılmış görüntü aynı ad alanını ve depo adını kullanır; etiketin sonuna _accelerated eklenir (örneğin, latest etiketi latest_accelerated olur).

Daha fazla bilgi ve sınırlamalar için bkz. Konteyner görüntülerinin isteğe bağlı yüklenmesi.

  1. Container Registry konsolunda oturum açın ve bir bölge seçin.

  2. Sol gezinme bölmesinde Instances öğesini tıklayın. Instances sayfasında Enterprise Edition örneğinin adını tıklayın.

  3. Sol gezinme bölmesinde Repository > Repositories seçeneklerini seçin.

  4. Depo adını tıklayın. Details sayfasında sol üst köşede Edit seçeneğini tıklayın.

  5. Modify Settings iletişim kutusunda Accelerated Image seçeneğini etkinleştirin, Full Mode seçeneğini belirleyin ve Confirm seçeneğini tıklayın. Bu değişiklikten sonra gönderilen görüntüler otomatik olarak bir dönüştürme görevini tetikler. Dönüştürme tamamlandığında bildirim almak için _accelerated$ ifadesiyle olay bildirimlerini yapılandırın. Bkz. Event Notifications.

Seçenek 2: Açık kaynaklı DADI aracını kullanın

Bir görüntüyü manuel olarak dönüştürmek için DADI image convertor aracını kullanın.

  1. overlaybd snapshotter bileşenini yükleyin.

    # Download the package for your instance architecture.
    wget https://github.com/containerd/accelerated-container-image/releases/download/v1.2.3/overlaybd-snapshotter-1.2.3-20241016090917.0c2f057.x86_64.rpm
    rpm -ivh overlaybd-snapshotter-1.2.3-20241016090917.0c2f057.x86_64.rpm
  2. overlaybd blok aygıtı katmanını yükleyin.

    # Download the package for your instance architecture.
    wget https://github.com/containerd/overlaybd/releases/download/v1.0.13/overlaybd-1.0.13-20240821.a117098.el8.x86_64.rpm
    rpm -ivh overlaybd-1.0.13-20240821.a117098.el8.x86_64.rpm
  3. Görüntüyü dönüştürün. Aşağıdaki örnek, bir ACR deposundaki bir görüntüyü dönüştürür. Kendi yönettiğiniz bir kayıt defteri için görüntü adresini ve kimlik bilgilerini buna göre güncelleyin.

    Yer Tutucu Açıklama
    user:password Kayıt defteri kimlik bilgileri
    xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis Kaynak görüntü deposu adresi
    latest Kaynak görüntü etiketi (-i)
    latest_obd_new Çıktı görüntü etiketi (-o)
    /opt/overlaybd/snapshotter/convertor \
      -u user:password \
      -r xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis \
      -i latest \
      -o latest_obd_new

    Aşağıdaki yer tutucuları değiştirin:

Adım 2: Bir düğüm havuzunda Konteyner Görüntü Hızlandırmayı etkinleştirin

Hem yeni hem de mevcut düğüm havuzları Container Image Acceleration özelliğini destekler. Adımlar biraz farklılık gösterir.

Yeni bir düğüm havuzu için etkinleştirin

  1. ACK konsolunda oturum açın ve sol gezinme bölmesinden Clusters seçeneğini tıklayın.

  2. Küme adını tıklayın. Sol gezinme bölmesinde Nodes > Node Pools seçeneklerini seçin.

  3. Bir düğüm havuzu oluşturma sırasında Advanced Options bölümünü genişletin ve Container Image Acceleration seçeneğini etkinleştirin.

Mevcut bir düğüm havuzu için etkinleştirin

Önemli

Container Image Acceleration değişiklikleri yalnızca değişiklikten sonra havuza eklenen düğümlerde etkili olur. Mevcut düğümler etkilenmez; özelliği mevcut düğümlere uygulamak için bunları kaldırıp yeniden eklemeniz gerekir. Bkz. Bir düğümü kaldırma ve Mevcut düğümleri ekleme.

  1. ACK konsolunda oturum açın ve sol gezinme bölmesinden Clusters seçeneğini tıklayın.

  2. Küme adını tıklayın. Sol gezinme bölmesinde Nodes > Node Pools seçeneklerini seçin.

  3. Düğüm havuzunu bulun ve Actions sütununda Edit seçeneğini tıklayın. Advanced Options bölümünde Container Image Acceleration seçeneğini etkinleştirin ve düğüm havuzu ConfigMap dosyasını güncellemek için ekrandaki talimatları izleyin. Güncelleme devam ederken Status sütununda Updating, tamamlandığında ise Active durumu görüntülenir.

Adım 3: Hızlandırılmış bir görüntü ile bir uygulama dağıtın

Görüntü çekme kimlik bilgilerini yapılandırın

DADI'nin görüntü verilerini isteğe bağlı yüklerken görüntü kayıt defteriyle kimlik doğrulaması yapabilmesi için aliyun-acr-acceleration-suite bileşenini yükleyin.

  1. ACK konsolunda oturum açın ve sol gezinme bölmesinden Clusters seçeneğini tıklayın.

  2. Küme adını tıklayın. Sol gezinme bölmesinden Add-ons seçeneğini tıklayın.

  3. Add-ons sayfasında Others sekmesinde aliyun-acr-acceleration-suite bileşenini bulun ve Install seçeneğini tıklayın.

Yüklemeden sonra kayıt defteri türüne göre çekme kimlik bilgilerini yapılandırın:

ACR Enterprise Edition: Erişim kimlik bilgilerini uygun iş yüklerine otomatik olarak enjekte etmek için parolasız eklentiyi yükleyin. Bu yaklaşım, manuel Secret yönetimini ortadan kaldırır. Bkz. Secret olmadan ACR görüntüleri çekme.

Kendi yönettiğiniz kayıt defteri: kubernetes.io/dockerconfigjson türünde bir Secret oluşturun ve ardından hızlandırma paketinin bunu kullanabilmesi için etiketleyin.

# Create the Secret.
kubectl create secret docker-registry <SecretName> \
  --docker-server=<RegistryVpcDomain> \
  --docker-username=<UserName> \
  --docker-password=<Password>

# Label the Secret for DADI.
kubectl label secrets <SecretName> images.alibabacloud.com/accelerated="true"
Not

Uygulamanız özel bir görüntü çekmek için bir secret kullanmıyorsa bu adımı atlayabilirsiniz.

Uygulamayı oluşturun

Podları görüntü hızlandırmanın etkin olduğu düğümlere zamanlamak için bir düğüm seçici kullanın. alibabacloud.com/image-accelerate-enabled: "true" etiketi, hızlandırma etkin düğümlere otomatik olarak uygulanır.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      nodeSelector:
        alibabacloud.com/image-accelerate-enabled: "true" # Schedule to acceleration-enabled nodes only.
      containers:
        - name: test
          image: xxxxx-registry.cn-hangzhou.cr.aliyuncs.com/default/redis:latest_obd_new # Replace with your accelerated image address.
          command: ["sleep", "3600"]

Bildirim dosyasını uygulayın:

kubectl apply -f deployment.yaml

Sonraki adımlar

Referanslar