"ImagePullBackOff" hata ayıklama nasıl yapılır?


125

Birdenbire, daha önce yerleştirilebilecek bazı görüntüleri yerleştiremiyorum. Aşağıdaki kapsül durumunu aldım:

[root@webdev2 origin]# oc get pods 
NAME                      READY     STATUS             RESTARTS   AGE 
arix-3-yjq9w              0/1       ImagePullBackOff   0          10m 
docker-registry-2-vqstm   1/1       Running            0          2d 
router-1-kvjxq            1/1       Running            0          2d 

Uygulama henüz başlamıyor. Bölme, kabı çalıştırmaya çalışmıyor. Etkinlik sayfasından aldım Back-off pulling image "172.30.84.25:5000/default/arix@sha256:d326. Etiketli resmi çekebileceğimi doğruladım docker pull.

Son konteynerin günlüğünü de kontrol ettim. Nedense kapalıydı. Sanırım bölme en azından yeniden başlatmayı denemeli.

Sorunları giderecek fikrim kalmadı. Daha neyi kontrol edebilirim?


Bu çok makineli bir kurulum mu? Öyleyse tüm düğümlerden çekebildiğinizi doğrulayın. Değilse, düğümde günlüğü --loglevel = 5'e açın ve yeniden başlatın - görüntüyü çekme girişimini ve dahil olan hataları açıklayan basılı bilgileri görmelisiniz.
Clayton

Loglevel = 5 ile yeniden başlattıktan sonra ne çıktı?
lvthillo

2
Problemi çözdün mü birisi bu 'ImagePullBackOff' sorununu açıklayabilir mi? (resimler 'docker görüntülerimde' mevcut)
ItayB

Bunu repom için yanlış bölgeyi kullanarak aldım. Eu eklemeyi unuttum . to --image = eu.gcr.io / $ PROJECT_ID / ...
Clemens Tolboom

Benim durumumda, aktarılan görüntü için yanlış etiket adıydı. Sorunu çözen TAG adını değiştirdim.
Tara Prasad Gurung

Yanıtlar:


127

' Kapsülü tanımla ' sözdizimini kullanabilirsiniz

OpenShift kullanımı için:

oc describe pod <pod-id>  

Vanilya Kubernetes için:

kubectl describe pod <pod-id>  

Çıktının olaylarını inceleyin. Benim durumumda, görüntü çekirdeklerini / çekirdeklerini çekerek Back-off gösteriyor: en son

Bu durumda görüntü çekirdekleri / özler: en son İnternet'ten alınamaz.

Events:
  FirstSeen LastSeen    Count   From                SubObjectPath           Type        Reason      Message
  --------- --------    -----   ----                -------------           --------    ------      -------
  5m        5m      1   {default-scheduler }                        Normal      Scheduled   Successfully assigned coredns-4224169331-9nhxj to 192.168.122.190
  5m        1m      4   {kubelet 192.168.122.190}   spec.containers{coredns}    Normal      Pulling     pulling image "coredns/coredns:latest"
  4m        26s     4   {kubelet 192.168.122.190}   spec.containers{coredns}    Warning     Failed      Failed to pull image "coredns/coredns:latest": Network timed out while trying to connect to https://index.docker.io/v1/repositories/coredns/coredns/images. You may want to check your internet connection or if you are behind a proxy.
  4m        26s     4   {kubelet 192.168.122.190}                   Warning     FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "coredns" with ErrImagePull: "Network timed out while trying to connect to https://index.docker.io/v1/repositories/coredns/coredns/images. You may want to check your Internet connection or if you are behind a proxy."

  4m    2s  7   {kubelet 192.168.122.190}   spec.containers{coredns}    Normal  BackOff     Back-off pulling image "coredns/coredns:latest"
  4m    2s  7   {kubelet 192.168.122.190}                   Warning FailedSync  Error syncing pod, skipping: failed to "StartContainer" for "coredns" with ImagePullBackOff: "Back-off pulling image \"coredns/coredns:latest\""

Ek hata ayıklama adımları

  1. docker görüntüsünü ve etiketi bilgisayarınızda manuel olarak çekmeyi deneyin
  2. Bir 'kubectl / oc kapsülleri -o genişlikte al' yaparak düğümü tanımlayın
  3. docker görüntüsünü çekemeyen düğüme ssh (yapabiliyorsanız)
  4. düğümün bir ping işlemi yaparak docker kayıt defterinin DNS'ini çözüp çözemediğini kontrol edin.
  5. docker görüntüsünü düğümde manuel olarak çekmeyi deneyin
  6. Özel bir kayıt kullanıyorsanız, sırrınızın var olduğunu ve sırrın doğru olduğunu kontrol edin. Sırrınız da aynı ad alanında olmalıdır. Teşekkürler swenzel
  7. Bazı kayıtların ip adresi erişimini sınırlayan güvenlik duvarları vardır. Güvenlik duvarı çekmeyi engelleyebilir
  8. Bazı CI'lar, geçici docker gizli dizileriyle dağıtımlar oluşturur. Yani sır birkaç gün sonra sona eriyor (Üretim hatalarını istiyorsunuz ...)

3
Ayrıca, özel bir görüntü havuzu kullanmanız durumunda, görüntü çekme sırlarınızın var olduğundan, yazım hatası olmadığından ve bunların doğru ad alanında bulunduğundan emin olun.
swenzel

Özel görüntü havuzu olması durumunda, "imagePullSecrets" girişini kullanarak bölmenizdeki görüntü çekme sırlarına başvurduğunuzdan da emin olun.
Donato Szilagyi

1
: Burada derinlemesine bu hata ayıklamak için nasıl açıklayan uzun bir blog yazısı da vardır managedkube.com/kubernetes/k8sbot/troubleshooting/...
gar

1

Neyin yanlış olduğunu görmek için düzenlemeyi denediniz mi (Yanlış görüntü konumu buldum)

kubectl edit pods arix-3-yjq9w

hatta bölmenizi silmek mi istiyorsunuz?

kubectl delete arix-3-yjq9w

0

1.0.8 etiketli görüntüyü ECR'ye (AWS görüntü merkezi) göndermeyi unuttum ... Helm kullanıyorsanız ve şu şekilde yükseltirseniz:

dümen yükseltme minta-user ./src/services/user/helm-chart

values.yaml içindeki resim etiketinin itildiğinden emin olun (ECR veya Docker Hub, vb.), örneğin: (bu benim dümen çizelgem / değerler.yaml)

replicaCount: 1

image:
   repository:dkr.ecr.us-east-1.amazonaws.com/minta-user
   tag: 1.0.8

1.0.8 görüntüsünün itildiğinden emin olmanız gerekir!


0

Benzer bir sorunla karşı karşıyaydım, ancak bir yerine tüm kapsüllerim hazır değildi ve 0/1 Hazır durumunu gösteriyor gibiydi. görüntü açıklamasını buraya girin

Pek çok şey denedim ama sonunda bağlamın doğru ayarlanmadığını öğrendim. Lütfen aşağıdaki komutu kullanın ve doğru bağlamda olduğunuzdan emin olun

kubectl config get-contexts


0

GKE'de, bölme ölüyse, olayları kontrol etmek en iyisidir. Hatanın ne hakkında olduğunu daha ayrıntılı olarak gösterecektir.

Benim durumumda:

Failed to pull image "gcr.io/project/imagename@sha256:c8e91af54fc17faa1c49e2a05def5cbabf8f0a67fc558eb6cbca138061a8400a":
 rpc error: code = Unknown desc = error pulling image configuration: unknown blob

Görüntünün bir şekilde zarar gördüğü ortaya çıktı. Yeniden gönderdikten ve yeni hash ile konuşlandırdıktan sonra tekrar çalıştı.


-10

Docker oturumunu çalıştır

Görüntüyü docker hub'a itin

Kapsülü yeniden oluşturun

Bu benim için sorunu çözdü. Umarım yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.