Tüm Ürünler
Search
Belge Merkezi

Container Service for Kubernetes:Pull images from an ACR Enterprise Edition instance in the same account using the credential-free add-on

Son Güncelleme:Oct 06, 2026

Kimlik bilgisi gerektirmeyen (credential-free) eklenti, görüntü çekme işlemleri için kimlik doğrulamayı otomatikleştirerek imagePullSecrets öğesini tekrar tekrar yapılandırma ihtiyacını ortadan kaldırır. Bu konu, eklentinin nasıl kurulacağını, yapılandırılacağını ve kullanılacağını yanı sıra dikkate alınması gereken önemli kullanım notlarını açıklar.

Çalışma prensibi

Görüntü kaynağı olarak Container Registry (ACR) kullandığınızda ve anonim görüntü çekmeyi etkinleştirmediğinizde, ACK kümenizin her görüntü çekme işlemi için kimlik doğrulaması yapmak üzere bir kullanıcı adı ve parola sağlaması gerekir. Yaygın çözüm, bu kimlik bilgilerini bir Secret içinde saklamaktır; ancak bu yaklaşımın birkaç dezavantajı bulunur:

  • Secret'lar Base64 kodlu düz metindir ve ifşa edilmeleri durumunda güvenlik riski oluşturur.

  • Her workload için imagePullSecrets değerini manuel olarak belirtmeniz gerekir.

  • Secret'lar ad alanları arasında paylaşılamaz.

Kimlik bilgisi gerektirmeyen eklenti şu şekilde çalışır:

  1. Eklenti, ACR örneğinden geçici kimlik bilgileri alır.

  2. Eklenti, geçici kimlik bilgilerini bir Secret'a kaydeder.

  3. Eklenti, yapılandırmasında belirtilen ServiceAccount'larla bu Secret'ı ilişkilendirir.

  4. Bu ServiceAccount'ları kullanan workload'lar, Secret'ta depolanan geçici kimlik bilgilerini kullanarak görüntüleri otomatik olarak çekebilir.

Kimlik bilgisi gerektirmeyen eklenti, birden fazla ad alanında ServiceAccount'ları yönetebilir ve geçici kimlik bilgilerini düzenli aralıklarla yenileyebilir. Bu sayede güvenlik riskleri azalır ve workload'lara manuel olarak imagePullSecrets ekleme zorunluluğu ortadan kalkar. Kimlik bilgisi gerektirmeyen eklenti ücretsizdir.

image

Eklenti karşılaştırması

ACK, aliyun-acr-credential-helper eklentisini yönetilen (managed) ve kendi kendine yönetilen (self-managed) olmak üzere iki sürümde sunar. Aynı anda yalnızca bir sürümü yükleyebilirsiniz. Aşağıdaki tabloda iki sürüm karşılaştırılmaktadır.

Öğe

aliyun-acr-credential-helper (yönetilen)

aliyun-acr-credential-helper (kendi kendine yönetilen)

Desteklenen küme sürümleri

ACK managed clusters, ACK serverless clusters veya ACK Edge clusters sürüm 1.22 veya üzeri

ACK managed clusters veya ACK dedicated clusters sürüm 1.20 veya üzeri

Özellikler

  • Kendi kendine yönetim gerekmez

  • RRSA kullanarak hesaplar arası görüntü çekmeyi destekler

  • Eklenti günlüklerini sorgulamayı destekler

  • Bir worker RAM rolü, RRSA veya bir AccessKey çifti kullanarak hesaplar arası görüntü çekmeyi destekler

Bir kümeyi yükseltmek için bkz. Manually upgrade a cluster .

Ön koşullar

  • Kümeniz, kimlik bilgisi gerektirmeyen eklenti tarafından desteklenen bir sürümü çalıştırıyor olmalıdır. Daha fazla bilgi için önceki tabloya bakın.

  • Bir ACR Enterprise Edition örneğiniz bulunmalıdır.

    Önemli
    • Kimlik bilgisi gerektirmeyen eklenti yalnızca ACR Enterprise Edition örneklerini ve 8 Eylül 2024 veya önceki tarihlerde oluşturulan ACR Personal Edition örneklerini destekler. Kimlik bilgisi gerektirmeyen eklentiyi kullanamıyorsanız bkz. How do I use imagePullSecrets?.

  • Kimlik bilgisi gerektirmeyen eklentinin kullandığı RAM rolüne izinler atanmış olmalıdır. Daha fazla bilgi için bkz. Grant permissions.

  • ACR Enterprise Edition örneği ile ACK kümesi arasında ağ bağlantısı kurulmuş olmalıdır.

    Ağ bağlantısını yapılandırma

    Bir görüntü çekmeden önce, ACR Enterprise Edition örneği ile ACK kümesinin birbirleriyle iletişim kurabildiğinden ve gerekli etki alanı adlarının çözümlenebildiğinden emin olun. Aynı hesap içinde görüntü çekmek için aşağıdaki yöntemlerden birini kullanabilirsiniz:

    • ACR VPC erişim denetimi: ACR Enterprise Edition örneği ile ACK kümesi aynı bölgedeyse, ACK kümesi ACR örneğine bir VPC üzerinden erişebilir. Daha fazla bilgi için bkz. Configure network access control.

    • VPC eşlemesi: ACR örneği ile ACK kümesi aynı VPC'de değilse, iki VPC'yi bağlamak için bir VPC eşlemesi kullanabilirsiniz. Bu sayede ACK kümesi ACR Enterprise Edition örneğine erişebilir. Aynı bölgedeki VPC'ler için VPC eşlemesi ücretsizdir ancak farklı bölgelerdeki VPC'ler için ücretlendirilir. Daha fazla bilgi için bkz. Billing. İki VPC'nin CIDR blokları örtüşmemelidir. Kullanılan CIDR blokları büyük ölçüde örtüşüyorsa mevcut ağ mimarisini değiştirmeniz gerekir.

      VPC eşleme yordamı

      1. Enable private domain name resolution for the ACR instance

        ACR Enterprise Edition örneğini VPC'ye bağladıktan sonra, özel etki alanı adını kullanarak örnek içindeki VPC'ye erişebilirsiniz. Yapılandırmadan sonra, ACR Enterprise Edition örneğinin VPC kimliğini ve özel IP adresini alın.
      2. Obtain the domain name and IP address of the ACR instance

        ACR Enterprise Edition örneğine erişmek için kullanılan kimlik doğrulama hizmetinin etki alanı adını ve IP adresini ile ilişkili OSS paketinin etki alanı adını ve IP adresini alın.
      3. Create a VPC peering connection and configure a route table

        ACK kümesi ve ACR Enterprise Edition örneği için VPC'ler arasında özel iletişimi etkinleştirmek amacıyla VPC eşlemesinin her iki ucuna da eş VPC'yi gösteren rota girdileri eklemeniz gerekir. ACK kümesinin VPC eşleme ucunda, kimlik doğrulama hizmetinin IP adresi ve ilişkili OSS paketinin IP adresi için de rota girdileri yapılandırmanız gerekir.
      4. ACK kümesi için ACR örneği etki alanı adını çözümleyin

        Etki alanı adının özel IP adresine çözümlenmesini sağlayarak ACK kümesinin yapılandırılmış rota girdileri aracılığıyla trafiği ACR örneğinin VPC'sine iletmesine olanak tanımak için adding a private DNS record gibi yöntemler kullanın veya node pool custom data script kullanarak /etc/hosts dosyasını toplu olarak değiştirin.
    • İnternet: Hem ACR Enterprise Edition örneği hem de ACK kümesi internete erişebiliyorsa görüntüler internet üzerinden aktarılabilir. Daha fazla bilgi için bkz. Configure public access control for an ACR instance ve Enable internet access for a cluster.

Yönetilen kimlik bilgisi gerektirmeyen eklentiyi kullanma

1. Adım: Eklentiyi yükleme

  1. ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Add-ons seçeneğine tıklayın.

  3. Add-ons sayfasında Security sekmesine tıklayın, aliyun-acr-credential-helper (managed) kartını bulun ve ardından Install. seçeneğine tıklayın.

  4. Install add-on aliyun-acr-credential-helper sayfasında AcrInstanceInfo ayarlarını ve diğer seçenekleri görüntüleyin. AcrInstanceInfo , eklentiyle ilişkili her bir ACR örneğinin ayarlarını içerir. Diğer seçenekler ise eklenti ayarlarıdır. Eklentinin izlediği ad alanlarını veya ServiceAccount'ları değiştirmeniz gerekmiyorsa varsayılan ayarları koruyabilirsiniz.

    Eklenti yüklendikten sonra Add-ons sayfasındaki aliyun-acr-credential-helper (managed) kartında Configurations seçeneğine tıklayarak ayarları değiştirebilirsiniz.

    ACR örneği ilişkilendirme ayarları:

    AcrInstanceInfo

    Açıklama

    InstanceId

    ACR örneğinin kimliği. Kimliği Container Registry konsolundan alabilirsiniz.

    Önemli

    ACR Personal Edition örnekleri için bu alanı boş bırakın. Bu alan ACR Enterprise Edition örnekleri için gereklidir.

    regionId

    ACR örneğinin dağıtıldığı bölgenin kimliği. Kimliği Container Registry konsolundan alabilirsiniz.

    Önemli

    Bu parametre, bölgeler arası görüntü çekme işlemleri için gereklidir.

    domains

    Kimlik bilgisi gerektirmeyen eklentinin ACR örneğine erişmek için kullandığı etki alanı adları. Varsayılan olarak bu, belirtilen ACR örneğinin tüm etki alanı adlarını (internet ve VPC) içerir. Birden çok etki alanı adı belirtmek için bunları virgülle (,) ayırın.

    Hesaplar arası görüntü çekme ayarları

    Bu ayarlar hesaplar arası görüntü çekme işlemleri için geçerlidir. Bu özelliğe ihtiyacınız yoksa alanları boş bırakın.

    assumeRoleARN

    Aynı hesap içi çekmeler için yapılandırma gerekmez. Hesaplar arası çekmeler için bkz. Pull images across accounts.

    expireDuration

    rrsaRoleARN

    rrsaOIDCProviderRoleARN

    Eklenti ayarları


    Parametre


    Açıklama


    Enable RRSA


    RRSA'yı etkinleştirmek için bu onay kutusunu seçin. Aynı hesap içi çekmeler için yapılandırma gerekmez. Hesaplar arası çekmeler için bkz. Pull images across accounts.


    watchNamespace


    Kimlik bilgisi gerektirmeyen görüntü çekmeyi etkinleştirmek istediğiniz ad alanları. Varsayılan değer default değeridir. Bu özelliği tüm ad alanları için etkinleştirmek üzere değeri all olarak ayarlayın. Birden çok ad alanı belirtmek için bunları virgülle (,) ayırın. Yalnızca iş ad alanlarınızı belirtmeniz ve sistem görüntüsü çekme işlemlerinin kesintiye uğramasını önlemek için all veya küme sistemi bileşenlerine ait ad alanlarını kullanmamanız önerilir.


    serviceAccount


    Yönetilen kimlik bilgisi gerektirmeyen eklentinin uygulanacağı ServiceAccount'u belirtir. Varsayılan değer Default değeridir. Default değeri, eklentiyi belirtilen ad alanlarında varsayılan ServiceAccount'a uygular. Değeri * olarak ayarlarsanız eklenti, belirtilen ad alanlarında tüm ServiceAccount'lara uygulanır. Birden çok ServiceAccount belirtmek için bunları virgülle (,) ayırın.


    expiringThreshold


    Eklentideki kimlik bilgilerinin sona erme eşiği. Varsayılan değer 15m değeridir.


    notifyEmail


    Yapılandırma gerekmez.

2. Adım: Görüntü çekme

Kimlik bilgisi gerektirmeyen eklentiyi yükledikten ve yapılandırdıktan sonra, bir workload oluştururken eklentiyle ilişkili bir ServiceAccount belirtin. Bu sayede kimlik bilgisi gerektirmeyen görüntü çekme etkinleşir.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      serviceAccountName: my-service-account # Specify a ServiceAccount that is associated with the credential-free add-on.
      containers:
      - name: nginx
        image: "******.cn-hangzhou.cr.aliyuncs.com/nginx/nginx:latest" # Specify the ACR image address.
        ports:
        - containerPort: 80

Kendi kendine yönetilen kimlik bilgisi gerektirmeyen eklentiyi kullanma

1. Adım: Eklentiyi yükleme

  1. ACK konsolu üzerinde oturum açın. Sol gezinme bölmesinde Clusters seçeneğine tıklayın.

  2. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Add-ons seçeneğine tıklayın.

  3. Add-ons sayfasında Security sekmesine tıklayın, aliyun-acr-credential-helper kartını bulun ve ardından Install seçeneğine tıklayın.

  4. Parameters sayfasında, tokenMode açılır listesinden bir izin modu seçin ve OK seçeneğine tıklayın. Eklenti yüklendikten sonra görüntü çekebilmek için yapılandırmanız gerekir. Daha fazla bilgi için bkz. Step 2: Update the add-on configuration (add an ACR instance).

    tokenMode

    Açıklama

    auto

    (Önerilir) Eklenti, küme oluşturma zamanını algılar ve otomatik olarak bir izin modu seçer. 3 Nisan 2023'ten önce oluşturulan kümeler workerRole modunu kullanır. 3 Nisan 2023'te veya sonrasında oluşturulan kümeler managedRole modunu kullanır.

    Önemli

    3 Nisan 2023'te veya sonrasında yayınlanan aliyun-acr-credential-helper sürümleri, eklentinin bağlı olduğu RAM rolünü özelleştirmenize olanak tanıyan bir parametre sağlar. Daha fazla bilgi için bkz. [Product Change] Announcement on changing the permissions required by the aliyun-acr-credential-helper add-on.

    managedRole

    Eklenti, Ön koşullar bölümünde yetkilendirilen AliyunCSManagedAcrRole rolünü kullanarak izinleri alır.

    workerRole

    Eklenti, izinleri almak için küme worker RAM rolünü kullanır. Worker RAM rolüne belirli izinler atamanız gerekir.

    Eklenti modu olarak workerRole seçin

    Eklenti izin modu olarak workerRole seçerseniz küme worker RAM rolünün aşağıdaki izinlere sahip olması gerekir. İzinlerin nasıl atanacağı hakkında bilgi için bkz. Manage RAM role permissions.

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "cr:GetAuthorizationToken",
                    "cr:ListInstanceEndpoint",
                    "cr:PullRepository"
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
    Önemli

    Bir rol üstlenerek hesaplar arası görüntü çekmeniz gerekiyorsa bu modu seçin.

2. Adım: Eklenti yapılandırmasını güncelleme

Kimlik bilgisi gerektirmeyen eklenti yüklendikten sonra, görüntü çekebilmek için bir ACR örneği eklemek üzere acr-configuration ConfigMap'ini yapılandırmanız gerekir. Bunu konsolu veya kubectl kullanarak yapabilirsiniz.

Konsol

  1. Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Configurations > ConfigMaps seçeneğine tıklayın.

  2. ConfigMaps sayfasında, Namespace açılır listesinden kube-system seçeneğini belirleyin. Ardından acr-configuration ConfigMap'e tıklayın ve aşağıdaki tabloda açıklandığı gibi ayarları değiştirin.

    Parametre

    Açıklama

    watch-namespace

    Kimlik bilgisi gerektirmeyen görüntü çekmeyi etkinleştirmek istediğiniz ad alanları. Varsayılan değer default değeridir. Bu özelliği tüm ad alanları için etkinleştirmek üzere değeri all olarak ayarlayın. Birden çok ad alanı belirtmek için bunları virgülle (,) ayırın. Yalnızca iş ad alanlarınızı belirtmeniz ve sistem görüntüsü çekme işlemlerinin kesintiye uğramasını önlemek için all veya küme sistemi bileşenlerine ait ad alanlarını kullanmamanız önerilir.

    acr-api-version

    Varsayılan değeri koruyun.

    expiring-threshold

    Eklentideki kimlik bilgilerinin sona erme eşiği. Varsayılan değer 15m (15 dakika) değeridir.

    acr-registry-info

    Çok satırlı YAML dizesi biçiminde ACR örneği bilgilerinden oluşan bir dizi. Her örnek üç parametreden oluşan bir küme ile yapılandırılır.

    • instanceId: ACR örneğinin kimliği. Kimliği Container Registry konsolundan alabilirsiniz.

      Önemli

      ACR Personal Edition örnekleri için bu alanı boş bırakın. Bu alan ACR Enterprise Edition örnekleri için gereklidir.

    • regionId: ACR örneğinin dağıtıldığı bölgenin kimliği. Kimliği Container Registry konsolundan alabilirsiniz.

      Önemli

      Bu parametre, bölgeler arası görüntü çekme işlemleri için gereklidir. Örnek bir yapılandırma için aşağıdaki bölüme bakın.

    • domains: Kimlik bilgisi gerektirmeyen eklentinin ACR örneğine erişmek için kullandığı etki alanı adları. Varsayılan olarak bu, instanceId ile belirtilen ACR örneğinin tüm etki alanı adlarını içerir. Birden çok etki alanı adı belirtmek için bunları virgülle (,) ayırın.

    Bölgeler arası çekmeler için örnek yapılandırma

    Farklı bölgelerde birden çok ACR örneği kullanırken her örnek için kimliği ve bölgeyi belirtmeniz gerekir.

    data:
        service-account: "default"
        watch-namespace: "all"
        expiring-threshold: "15m"
        notify-email: "c*@aliyuncs.com"
        acr-registry-info: |
          - instanceId: "cri-instanceId"
            regionId: "cn-beijing"
          - instanceId: "cri-instanceId"
            regionId: "cn-hangzhou"      

    service-account

    Kimlik bilgisi gerektirmeyen eklentiyle ilişkili ServiceAccount'lar. Birden çok ServiceAccount belirtmek için bunları virgülle (,) ayırın. Değeri default olarak ayarlarsanız eklenti, belirtilen her ad alanındaki varsayılan ServiceAccount ile ilişkilendirilir. Değeri "*" olarak ayarlarsanız eklenti, belirtilen ad alanlarında tüm ServiceAccount'larla ilişkilendirilir.

kubectl

  1. acr-configuration ConfigMap'ini düzenlemek için aşağıdaki komutu çalıştırın. Yapılandırma ayrıntıları için aşağıdaki tabloya bakın.

    kubectl edit cm acr-configuration -n kube-system

    Parametre anahtarı

    Açıklama

    Değer

    service-account

    Kimlik bilgisi gerektirmeyen eklentinin hedef aldığı ServiceAccount'lar.

    Varsayılan değer default değeridir.

    Not

    Birden çok ServiceAccount belirtmek için bunları virgülle (,) ayırın. Değeri "*" olarak ayarlarsanız bu, belirtilen ad alanlarında tüm ServiceAccount'lar için geçerli olur.

    acr-registry-info

    Çok satırlı YAML dizesi biçiminde ACR örneği bilgilerinden oluşan bir dizi. Her örnek üç parametreden oluşan bir küme ile yapılandırılır.

    Not

    Örnek bilgisi parametreleri:

    • instanceId: Örneğin kimliği. Bu, Enterprise Edition örnekleri için gereklidir.

    • regionId: İsteğe bağlı. Varsayılan olarak yerel bölge kullanılır.

    • domains: İsteğe bağlı. Varsayılan olarak ilgili örneğin tüm etki alanı adları kullanılır. Birden çok etki alanı adı belirtmek için bunları virgülle (,) ayırın.

    ACR Enterprise Edition örneği için örnek yapılandırma:

    - instanceId: <cri-instanceId>
      regionId: "cn-hangzhou"
      domains: "xxx.com,yyy.com"

    watch-namespace

    Kimlik bilgisi gerektirmeyen görüntü çekmeyi etkinleştirmek istediğiniz ad alanları.

    Varsayılan değer default değeridir. Bu özelliği tüm ad alanları için etkinleştirmek üzere değeri all olarak ayarlayın. Birden çok ad alanı belirtmek için bunları virgülle (,) ayırın.

    Not

    Yalnızca iş ad alanlarınızı belirtmeniz ve sistem görüntüsü çekme işlemlerinin kesintiye uğramasını önlemek için all veya küme sistemi bileşenlerine ait ad alanlarını kullanmamanız önerilir.

    expiring-threshold

    Yerel olarak önbelleğe alınan kimlik bilgilerinin sona erme eşiği.

    Varsayılan değer 15m (15 dakika) değeridir.

3. Adım: Görüntü çekme

Kimlik bilgisi gerektirmeyen eklentiyi yükledikten ve yapılandırdıktan sonra, bir workload oluştururken eklentiyle ilişkili bir ServiceAccount belirtin. Bu sayede kimlik bilgisi gerektirmeyen görüntü çekme etkinleşir.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      serviceAccountName: my-service-account # Specify a ServiceAccount that is associated with the credential-free add-on.
      containers:
      - name: nginx
        image: "******.cn-hangzhou.cr.aliyuncs.com/nginx/nginx:latest" # Specify the ACR image address.
        ports:
        - containerPort: 80

SSS

ServiceAccount'ların hemen kullanılmasını etkinleştirme

Önemli

Bu özellik, aliyun-acr-credential-helper v23.02.06.1-74e2172-aliyun veya sonraki bir sürümü gerektirir.

Etkinleştirildiğinde, kimlik bilgisi gerektirmeyen eklenti bir Webhook kullanarak kümedeki ServiceAccount değişikliklerini izler. Yeni bir ServiceAccount oluşturulduğunda eklenti, kimlik bilgisi gerektirmeyen Secret'ı hemen enjekte eder. Bu özellik, bir Helm Chart'in aynı anda hem bir ServiceAccount hem de bir Deployment oluşturduğu gibi, ServiceAccount'un oluşturulduktan hemen sonra kullanıldığı senaryolar için kullanışlıdır. Bu özellik eklenti performansını etkileyebilir ve genel kullanım için önerilmez.

Yönetilen eklenti

Bu özelliği etkinleştirmek için kümenizde acr-credential-helper-webhook eklentisini yükleyin:

  1. ACK Clusters sayfasında kümenizin adına tıklayın. Sol gezinme bölmesinde Add-ons seçeneğine tıklayın.

  2. Add-ons sayfasında Security sekmesine tıklayın, acr-credential-helper-webhook (managed) kartını bulun ve ardından Install. seçeneğine tıklayın.

Kendi kendine yönetilen eklenti

Bu özelliği etkinleştirmek için acr-configuration ConfigMap'ine aşağıdaki alanları ekleyin:

data:
  webhook-configuration: |
    enable: true
    failure-policy: Ignore
    timeout-seconds: 10

Parametre

Açıklama

enable

Webhook özelliğinin etkinleştirilip etkinleştirilmeyeceğini belirtir.

  • true: Özelliği etkinleştirir.

  • false: Özelliği devre dışı bırakır.

failure-policy

ServiceAccount oluşturma sırasında oluşan özel durumların işlenme ilkesi.

  • Ignore: Özel durumu yoksayar ve ServiceAccount'un normal şekilde oluşturulmasına izin verir. Görüntü çekme Secret'ı eklenmeyebilir.

  • Fail: Özel durum oluşması halinde ServiceAccount oluşturmayı durdurur. Dağıtım hatalarına neden olabileceği için bu seçenek önerilmez.

Önemli

Küme API Server'ın bir sınırlaması nedeniyle, timeout-seconds değeri 15 olarak, failure-policy değeri Fail olarak ayarlanır ve saniyede sürekli olarak 10 ServiceAccount oluşturursanız ServiceAccount oluşturma işlemi başarısız olur.

timeout-seconds

Tek bir ServiceAccount oluşturma isteği için zaman aşımı süresi. Zaman aşımı aşılırsa sistem, failure-policy ayarına göre yanıt verir. Varsayılan değer 10 saniyedir (s).

Görüntü çekme hatalarını giderme

Olası nedenlerden biri, kimlik bilgisi gerektirmeyen eklenti yapılandırmasının yanlış olmasıdır; örneğin:

  • Kimlik bilgisi gerektirmeyen eklentide yapılandırılan örnek bilgileri ACR örneğiyle eşleşmiyor.

  • Görüntü çekmek için kullanılan görüntü adresi, eklentinin örnek bilgilerinde belirtilen etki alanı adıyla eşleşmiyor.

Sorunu gidermek için bu konudaki adımları izleyin.

Eklenti doğru şekilde yapılandırıldığı halde görüntü çekme başarısız oluyorsa bunun nedeni, workload YAML'sinde manuel olarak belirtilen imagePullSecrets alanı ile kimlik bilgisi gerektirmeyen eklenti arasındaki bir çakışma olabilir. Bunu çözmek için imagePullSecrets alanını manuel olarak kaldırın ve Pod'u yeniden oluşturun.

imagePullSecrets nasıl kullanılır?

9 Eylül 2024 veya sonraki tarihlerde oluşturulan ACR Personal Edition örnekleri kimlik bilgisi gerektirmeyen eklentiyi desteklemez. Bu örnekler için kullanıcı adını ve parolayı bir Secret içinde saklamanızı ve bunu imagePullSecrets alanında referans olarak belirtmenizi öneririz.

Önemli
  • Kimlik bilgisi gerektirmeyen eklenti, manuel olarak belirtilen imagePullSecrets alanı ile uyumlu değildir.

  • Secret, workload ile aynı ad alanında olmalıdır.

imagePullSecrets kullanımı örneği

Kullanıcı adınızı ve parolanızı içeren bir Secret oluşturmak için aşağıdaki komutu çalıştırın ve parametreleri değiştirin.

kubectl create secret docker-registry image-secret-1 \
  --docker-server=<registry-server> \
  --docker-username=<name> \
  --docker-password=<password> \
  --docker-email=<email>

Secret'ı workload'unuzda kullanın:

apiVersion: apps/v1
kind: Deployment 
metadata:
  name: nginx-test
  namespace: default 
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx 
    spec:
      imagePullSecrets:
      - name: image-secret-1  # Use the Secret created in the previous step.
      containers:
      - name: nginx 
        image: <acrID>.cr.aliyuncs.com/<repo>/nginx:latest  # Replace with the ACR image address.

İlgili konular