3 Nguyên nhân tiềm ẩn gây ra lỗi ImagePullBackOff trong Kubernetes

[ad_1]

Trong môi trường Kubernetes, có một số lượng lớn các lỗi có thể xảy ra rằng hệ thống của bạn có thể trả về, với bất kỳ số lượng nào trong số chúng xuất hiện đồng thời trong hệ thống của bạn. Trong khi nhiều trường hợp trong số này nghiêm trọng và cần được chú ý ngay lập tức, những trường hợp khác thuộc loại bình thường hơn. Một trong những lỗi phổ biến hơn là ImagePullBackOff, nguyên nhân là do không kéo được tài nguyên hình ảnh cụ thể trên một nút.

Thông thường, trên mỗi nút trong một cụm Kubernetes, có một kubelect sẽ chạy tất cả các vùng chứa riêng lẻ trong nút đó. Kubelect này trở thành điểm giao tiếp giữa các vùng chứa, nút và API trung tâm của Kubernetes, tạo ra một luồng mà thông báo có thể chạy trơn tru.

Khi cố gắng kéo một hình ảnh, nếu hình ảnh đó chưa được định vị trên chính nút, thì hệ thống nhắn tin trung tâm, kubelet, sẽ hướng dẫn một thứ gọi là thời gian chạy vùng chứa để xác định vị trí và kéo nó vào sử dụng. Bất cứ khi nào không thể kéo hình ảnh này, kubelet sẽ trả về lỗi ImagePullBackOff.

Bất cứ khi nào bạn gặp lỗi này, bạn biết rằng có sự khác biệt giữa các quyền và quyền truy cập hình ảnh cụ thể mà một nút có và các nhiệm vụ mà bạn đã cấp cho nó. Việc tìm ra nguyên nhân của sự tắc nghẽn này và khắc phục nó sẽ khắc phục được lỗi này và cho phép hệ thống của bạn tiếp tục hoạt động hiệu quả nhất có thể.

Điều gì gây ra lỗi ImagePullBackOff trong Kubernetes?

Trong Kubernetes, lỗi ImagePullBackOff có thể xảy ra do một số nguyên nhân cụ thể. Vì lỗi liên quan trực tiếp đến lỗi hình ảnh, nếu có sự khác biệt giữa những gì các nút của bạn có quyền truy cập và bản thân các hình ảnh, thì điều này sẽ gây ra lỗi. Tương tự, như bạn biết rằng lỗi này đặc biệt xảy ra với một hình ảnh, bạn đã có một phần lớn của câu đố khắc phục sự cố.

Có ba nguyên nhân phổ biến gây ra lỗi này, mỗi nguyên nhân trong số đó bạn có thể lần lượt giải quyết để tìm ra cách khắc phục sự cố của mình:

  • Tài liệu tham khảo của bạn không khớp
  • Bạn đang thiếu quyền
  • Cơ quan đăng ký của bạn đã chặn quyền truy cập của bạn

Hãy chia nhỏ những điều này hơn nữa.

Tài liệu tham khảo của bạn không khớp

Với hàng nghìn tài nguyên hình ảnh khác nhau trong môi trường Kubernetes của bạn, khả năng cao là một trong những hình ảnh lọt qua mạng của bạn. Khi tạo một hình ảnh, bạn cần đặt cho nó một thẻ hiện không tồn tại. Trong khi nhiều người có xu hướng thực hiện việc này một cách tuần tự, bắt đầu với hình ảnh đầu tiên của họ là image1 và hình ảnh tiếp theo là image2, điều này không phải lúc nào cũng bảo vệ bạn.

Đôi khi, các nhà phát triển sẽ quên thêm tiêu đề hoặc thẻ chính xác vào hình ảnh, có nghĩa là nó không thể được tìm thấy với tên mà bạn đã định. Khi một nhóm cố gắng kéo một hình ảnh cụ thể với một tên nhất định nhưng không thể tìm thấy nó, nó sẽ trả về lỗi ImagePullBackOff vì nó chỉ đơn giản là không thể truy cập hình ảnh, vì tên tệp đó không tồn tại.

Ngoài ra, bạn có thể đã mắc một lỗi đánh máy nhỏ khi định cấu hình tiêu đề của hình ảnh mà nhóm đang cố gắng kéo. Thay vì viết Image2829, bạn có thể viết 2992, với sự kết hợp đơn giản của chữ cái này sẽ chuyển vị trí kéo hình ảnh sang một tệp hoàn toàn khác. Mặc dù nhóm có thể kéo tệp đó, nhưng tốt nhất, nó sẽ không phải là hình ảnh bạn muốn và tệ nhất, bạn sẽ nhận được lỗi ImagePullBackOff.

Bất cứ khi nào một trong các nhóm của bạn trả về lỗi này, điều đầu tiên bạn phải luôn kiểm tra là liệu bạn đã kết nối nhóm đó với một hình ảnh:

  1. Thực sự tồn tại trong hệ sinh thái của bạn
  2. Có tiêu đề như bạn nghĩ, chú ý đến định dạng chính xác của tiêu đề hoặc thẻ

Nếu một trong hai điều này sai, thì bạn chỉ cần thực hiện một thay đổi nhỏ để đưa hệ thống của mình hoạt động trở lại.

Cơ quan đăng ký của bạn đã chặn quyền truy cập của bạn

Trong Kubernetes, nhiều công ty thường sẽ hợp tác với Docker Hub để kéo một loạt các thuộc tính hình ảnh khác nhau. Mặc dù điều này thường hoạt động để bắt đầu, Docker Hub có hai gói, một Miễn phí và một Pro, mà các công ty sẽ phải lựa chọn. Với gói Miễn phí, việc kết nối hệ sinh thái Kubernetes của bạn sẽ cấp cho bạn tối đa 200 yêu cầu hình ảnh vùng chứa sau mỗi 6 giờ.

Tuy nhiên, nếu bạn vượt quá 200 yêu cầu hình ảnh vùng chứa đó, thì bạn sẽ phải nâng cấp lên cấp tiếp theo. Nếu bạn không nâng cấp, Docker Hub sẽ chặn yêu cầu của bạn, khiến bạn nhận được lỗi ImagePullBackOff.

May mắn thay, đây là một lỗi rất dễ kiểm tra, vì tất cả những gì bạn cần làm là kiểm tra các quyền hiện tại mà tài khoản Docker Hub của bạn có. Nếu bạn đang ở mức giới hạn, bạn cần nâng cấp tài khoản của mình lên cấp tiếp theo.

Bạn đang thiếu quyền

Khi các doanh nghiệp tạo môi trường Kubernetes của riêng họ, họ cũng thường thích sử dụng các hình ảnh tùy chỉnh chỉ thuộc về công ty của họ. Với điều này, họ tạo ra cái được gọi là sổ đăng ký hình ảnh vùng chứa riêng tư trong hệ sinh thái của họ. Trong khi các công ty có thể đơn giản xuất bản tệp của họ trên Docker Hub, điều đó có nghĩa là công khai chúng, nghĩa là các công ty khác có thể xem xét chúng.

Thay vì làm điều này, họ sử dụng sổ đăng ký hình ảnh vùng chứa riêng tư, có nghĩa là bạn cần cấp cho các nút Kubernetes của mình quyền truy cập vào sổ đăng ký để tìm các hình ảnh cụ thể mà họ đang tìm kiếm.

Một lần nữa, đây là một lỗi khá dễ sửa, người dùng chỉ phải tạo thứ được gọi là ‘Bí mật’ trong nút. Tệp này sẽ cấp quyền cho nút để kéo từ sổ đăng ký riêng, cho phép nó phá vỡ khối trước đó và kéo hình ảnh mong muốn.

Lời kết

Thật khó để trải qua toàn bộ chu kỳ phát triển trong môi trường Kubernetes mà không thực hiện một bước giám sát nhỏ ở đây và ở đó. Hầu hết thời gian, cũng như với lỗi ImagePullBackOff, đây không phải là một vấn đề lớn. Thay vì hoảng sợ, cách khắc phục sự cố của bạn rất có thể sẽ là một trong ba cách trên.

[ad_2]

Dịch vụ Sửa máy tính tận nơi

Chat Zalo
0979106855