Làm thế nào để gỡ lỗi “ImagePullBackOff”?


120

Đột nhiên, tôi không thể triển khai một số hình ảnh có thể được triển khai trước đó. Tôi có trạng thái nhóm sau:

[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 

Ứng dụng sẽ không khởi động. Nhóm không cố gắng chạy vùng chứa. Từ trang Sự kiện, tôi đã có Back-off pulling image "172.30.84.25:5000/default/arix@sha256:d326. Tôi đã xác minh rằng tôi có thể kéo hình ảnh có thẻ với docker pull.

Tôi cũng đã kiểm tra nhật ký của container cuối cùng. Nó đã bị đóng cửa vì một số lý do. Tôi nghĩ nhóm ít nhất nên cố gắng khởi động lại nó.

Tôi đã hết ý tưởng để gỡ lỗi các vấn đề. Tôi có thể kiểm tra thêm những gì?


Đây có phải là một thiết lập nhiều máy không? Nếu vậy xác minh bạn có thể lấy từ tất cả các nút. Nếu không, hãy bật tính năng đăng nhập --loglevel = 5 trên nút và khởi động lại - bạn sẽ thấy thông tin được in mô tả nỗ lực kéo hình ảnh và bất kỳ lỗi nào đi kèm.
Clayton

Điều gì xuất hiện sau khi khởi động lại với loglevel = 5?
lvthillo

2
Bạn đã giải quyết vấn đề chưa? ai đó có thể giải thích vấn đề này của 'ImagePullBackOff' không? (hình ảnh hiện có trong 'hình ảnh
docker

Tôi nhận được điều này do sử dụng sai vùng cho repo của mình. Tôi quên thêm eu. tới --image = eu.gcr.io / $ PROJECT_ID / ...
Clemens Tolboom

Trong trường hợp của tôi, đó là tên thẻ sai cho hình ảnh được chuyển. Tôi đã thay đổi tên TAG để giải quyết vấn đề.
Tara Prasad Gurung

Câu trả lời:


118

Bạn có thể sử dụng cú pháp ' mô tả nhóm '

Để sử dụng OpenShift:

oc describe pod <pod-id>  

Đối với Kubernetes vani:

kubectl describe pod <pod-id>  

Kiểm tra các sự kiện của đầu ra. Trong trường hợp của tôi, nó hiển thị Back-off pull image coredns / coredns: mới nhất

Trong trường hợp này, không thể lấy hình ảnh coredns / coredns: mới nhất từ ​​Internet.

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\""

Các bước gỡ lỗi bổ sung

  1. cố gắng kéo hình ảnh docker và gắn thẻ theo cách thủ công trên máy tính của bạn
  2. Xác định nút bằng cách thực hiện thao tác 'kubectl / oc get pods-wide'
  3. ssh vào nút (nếu bạn có thể) không thể kéo hình ảnh docker
  4. kiểm tra xem nút có thể phân giải DNS của sổ đăng ký docker hay không bằng cách thực hiện ping.
  5. cố gắng kéo hình ảnh docker theo cách thủ công trên nút
  6. Nếu bạn đang sử dụng sổ đăng ký riêng tư, hãy kiểm tra xem bí mật của bạn có tồn tại và bí mật là chính xác. Bí mật của bạn cũng phải nằm trong cùng một không gian tên. Cảm ơn swenzel
  7. Một số cơ quan đăng ký có tường lửa hạn chế quyền truy cập địa chỉ ip. Tường lửa có thể chặn kéo
  8. Một số CI tạo triển khai với các bí mật tạm thời của docker. Vì vậy, bí mật sẽ hết hạn sau vài ngày (Bạn đang yêu cầu sản xuất thất bại ...)

3
Ngoài ra, trong trường hợp bạn sử dụng kho lưu trữ hình ảnh riêng tư, hãy đảm bảo rằng các bí mật kéo hình ảnh của bạn tồn tại, không có lỗi đánh máy và chúng nằm trong không gian tên phù hợp.
swenzel

Trong trường hợp kho lưu trữ hình ảnh riêng tư, hãy đảm bảo rằng bạn tham khảo các bí mật kéo hình ảnh trong nhóm của bạn bằng cách sử dụng mục nhập "imagePullSecrets".
Donato Szilagyi

1
Ngoài ra còn có một bài đăng blog dài mô tả cách gỡ lỗi này chuyên sâu ở đây: Managedkube.com/kubernetes/k8sbot/troubleshooting/…
gar

1

Bạn đã thử chỉnh sửa xem có gì sai không (tôi đặt nhầm vị trí hình ảnh)

kubectl edit pods arix-3-yjq9w

hoặc thậm chí xóa nhóm của bạn?

kubectl delete arix-3-yjq9w

0

Tôi quên đẩy hình ảnh được gắn thẻ 1.0.8 vào ECR (AWS images hub) ... Nếu bạn đang sử dụng Helm và nâng cấp bằng cách:

nâng cấp helm minta-user ./src/services/user/helm-chart

đảm bảo rằng thẻ hình ảnh bên trong giá trị.yaml được đẩy (tới ECR hoặc Docker Hub, v.v.), ví dụ: (đây là helm-chart / values.yaml của tôi)

replicaCount: 1

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

bạn cần đảm bảo rằng image: 1.0.8 được đẩy!


0

Tôi đang gặp phải vấn đề tương tự, nhưng thay vì một trong tất cả các nhóm của tôi chưa sẵn sàng và hiển thị trạng thái Sẵn sàng 0/1 Một cái gì đó giống như nhập mô tả hình ảnh ở đây

Tôi đã thử rất nhiều thứ nhưng cuối cùng tôi thấy rằng bối cảnh không được đặt chính xác. Vui lòng sử dụng lệnh sau và đảm bảo bạn đang ở trong ngữ cảnh chính xác

kubectl config get-context


0

Trên GKE, nếu nhóm đã chết, tốt nhất bạn nên kiểm tra các sự kiện. Nó sẽ hiển thị chi tiết hơn lỗi đó là gì.

Trong trường hợp của tôi, tôi đã có:

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

Hóa ra hình ảnh đã bị hư hỏng bằng cách nào đó. Sau khi đẩy lùi nó và triển khai với hàm băm mới, nó đã hoạt động trở lại.


-9

Chạy đăng nhập docker

Đẩy hình ảnh vào trung tâm docker

Tạo lại nhóm

Điều này giải quyết các vấn đề đối với tôi. Hy vọng nó giúp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.