Email Doanh NghiệpSSLFirewall Anti DDoS

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Pod Pending là gì? Nguyên nhân phổ biến và cách khắc phục Pod ở Pending

Hưng Nguyễn

Đã kiểm duyệt nội dung

Ngày đăng:10/04/2026
Lượt xem

Quy trình sản xuất nội dung

Đánh giá

[esi kkstarratings cache="private" ttl="3"]

Pod Pending trong Kubernetes là trạng thái cho biết Pod đã được hệ thống chấp nhận nhưng vẫn đang chờ được lên lịch và chuẩn bị tài nguyên nên chưa thể khởi chạy container. Bài viết này sẽ giúp bạn hiểu rõ Pod Pending từ khái niệm, nguyên nhân, cách kiểm tra đến các bước khắc phục và phòng tránh để vận hành cụm Kubernetes ổn định hơn.

Những điểm chính

  • Khái niệm: Hiểu rõ trạng thái Pod Pending là gì, giúp nhận biết Pod đã được chấp nhận nhưng chưa chạy và đang trong giai đoạn chờ tài nguyên hoặc lên lịch.
  • Các trạng thái cơ bản: Phân biệt các trạng thái khác nhau của Pod, giúp hiểu rõ vòng đời hoạt động của Pod và xác định đúng giai đoạn sự cố.
  • Nguyên nhân: Nắm được các nguyên nhân phổ biến như thiếu tài nguyên, lỗi node hoặc PVC, giúp khoanh vùng và chẩn đoán chính xác lý do Pod bị kẹt.
  • Cách kiểm tra: Biết cách sử dụng lệnh `kubectl describe pod` để xem Events, giúp tìm ra thông báo lỗi cụ thể và xác định nguyên nhân gốc rễ.
  • Cách khắc phục: Nắm vững các bước xử lý chi tiết từ điều chỉnh tài nguyên, kiểm tra node đến xác minh image, giúp chủ động giải quyết sự cố và đưa Pod về trạng thái Running.
  • Cách phòng tránh: Biết được các lưu ý và phương pháp phòng ngừa như khai báo rõ tài nguyên và thiết lập giám sát, giúp giảm thiểu rủi ro Pod bị kẹt và vận hành cụm ổn định hơn.
  • Biết thêm Vietnix: Tìm hiểu về Enterprise Cloud của Vietnix, giúp có thêm lựa chọn nền tảng vững chắc cho Kubernetes
  • Câu hỏi thường gặp: Được giải đáp các thắc mắc về thời gian chờ, mức độ ảnh hưởng và khả năng cảnh báo tự động, giúp củng cố kiến thức và tự tin hơn khi xử lý sự cố.
những điểm chính

Trạng thái Pending của Pod là gì?

Trạng thái Pod Pending trong Kubernetes là trạng thái cho biết Pod đã được hệ thống Kubernetes chấp nhận nhưng vẫn đang chờ được lên lịch và chuẩn bị chạy trên một Node nên chưa có container nào thực sự khởi động. Nói cách khác, Pod ở trạng thái Pending khi Kubernetes còn đang tìm hoặc chuẩn bị tài nguyên, môi trường phù hợp (CPU, RAM, storage, image, cấu hình node,…) để có thể gán Pod vào một Node và chuyển sang trạng thái Running.

Trạng thái Pending của Pod
Trạng thái Pending của Pod

Việc Pod bị kẹt trạng thái Pending thường do giới hạn tài nguyên hoặc hạ tầng thiếu ổn định. Để khắc phục triệt để, dịch vụ Enterprise Cloud của Vietnix là giải pháp lý tưởng nhờ phần cứng hiệu năng cao, khả năng mở rộng CPU/RAM/Storage linh hoạt và mạng lưới ổn định. Nền tảng này giúp loại bỏ các “nút thắt cổ chai”, đảm bảo cụm Kubernetes luôn vận hành mượt mà và tối ưu hiệu suất cho doanh nghiệp.

Những trạng thái cơ bản của Pod

Trong Kubernetes, mỗi Pod có thể trải qua một số trạng thái khác nhau trong vòng đời hoạt động của mình:

  • Pending (Đang chờ khởi chạy): Pod đã được tạo và được Kubernetes chấp nhận, nhưng vẫn đang trong quá trình chuẩn bị nên các container bên trong chưa được khởi chạy.
  • Running (Đang chạy): Ít nhất một container trong Pod đang hoạt động và Pod đã được gán thành công vào một Node trong cụm Kubernetes.
  • Succeeded (Hoàn thành thành công): Tất cả container trong Pod đã dừng chạy và kết thúc với trạng thái thành công, không có lỗi trong quá trình thực thi.
  • Failed (Thất bại): Một hoặc nhiều container trong Pod kết thúc với lỗi hoặc không thể chạy đến khi hoàn thành như mong đợi.
  • Unknown (Không xác định): Hệ thống Kubernetes không thể lấy thông tin trạng thái của Pod, thường do lỗi kết nối hoặc sự cố giao tiếp với Node đang chạy Pod đó.
Pod status indicators in Vietnamese
Những trạng thái cơ bản của Pod

Nguyên nhân dẫn đến trạng thái Pending của Pod

Có nhiều yếu tố về tài nguyên, cấu hình node, storage và image có thể khiến Pod bị kẹt lâu ở trạng thái Pending, thay vì nhanh chóng chuyển sang Running như mong đợi:

  • Thiếu tài nguyên trên node: Cụm Kubernetes không còn đủ CPU, RAM hoặc tài nguyên tính toán đáp ứng yêu cầu request/limit của Pod, khiến bộ lập lịch không thể gán Pod lên bất kỳ node nào.
  • Node không sẵn sàng hoặc bị hạn chế lập lịch: Node bị đánh dấu Unschedulable, Not Ready, đang bảo trì hoặc gặp sự cố phần cứng, mạng làm cho Pod không thể được đặt lên node đó dù cụm vẫn còn node.
  • Ràng buộc node selector/affinity quá chặt: Pod cấu hình nodeSelector, nodeAffinity, podAffinity/antiAffinity với tiêu chí quá khắt khe hoặc gán nhãn sai, dẫn tới không có node nào thỏa điều kiện để scheduler lựa chọn.
  • Taints và tolerations không khớp: Node được gắn taint để chỉ cho phép một số Pod nhất định chạy, nhưng Pod lại thiếu hoặc cấu hình toleration không phù hợp, khiến Pod bị loại khỏi tất cả node khả dụng.
  • PersistentVolumeClaim không được đáp ứng: Pod yêu cầu PVC nhưng không có PersistentVolume tương ứng, cấu hình StorageClass sai, hoặc backend lưu trữ không khả dụng nên volume không thể gắn vào Pod.
  • Lỗi tải image container (image pull): Tên image sai, tag không tồn tại, registry không truy cập được hoặc lỗi xác thực với registry private khiến Kubernetes không thể kéo image về, làm Pod không thể khởi tạo container. Trong trường hợp này, Pod thường ở trạng thái Pending với reason là ImagePullBackOff hoặc ErrImagePul
  • Container khởi động thất bại: Ứng dụng bên trong container lỗi logic, thiếu tài nguyên, cấu hình sai tham số start, lệnh entrypoint,… làm container không thể start thành công, khiến Pod bị giữ ở Pending trong giai đoạn chuẩn bị.
Nguyên nhân dẫn đến trạng thái Pending của Pod
Nguyên nhân dẫn đến trạng thái Pending của Pod

Cách kiểm tra trạng thái của Pod trong Kubernetes

Để hiểu vì sao một Pod bị kẹt ở trạng thái Pending, trước hết cần xem chi tiết trạng thái và các sự kiện liên quan của Pod thông qua công cụ dòng lệnh kubectl. Bạn có thể sử dụng lệnh kubectl describe pod <pod-name> để lấy thông tin chi tiết về Pod, bao gồm trạng thái, điều kiện (Conditions) và danh sách Events liên quan.

Quan sát kỹ phần Events và đặc biệt là cột Message, vì đây là nơi hiển thị các thông báo quan trọng giải thích lý do Pod vẫn Pending (ví dụ: thiếu tài nguyên, lỗi PVC, lỗi image, ràng buộc node,…). Dựa trên các thông tin này, người quản trị có thể xác định nguyên nhân gốc rễ và đưa ra hành động khắc phục phù hợp như bổ sung tài nguyên, chỉnh lại cấu hình Pod, node hoặc storage.

Cách kiểm tra trạng thái của Pod trong Kubernetes
Cách kiểm tra trạng thái của Pod trong Kubernetes

Sau khi xác định được nguyên nhân khiến Pod bị Pending, bạn có thể áp dụng lần lượt các bước dưới đây để xử lý và hạn chế lỗi tái diễn:

Điều chỉnh tài nguyên để Pod có thể được lên lịch

Bạn cần kiểm tra xem yêu cầu tài nguyên của Pod (CPU, RAM, storage) có vượt quá khả năng của các node hiện tại hay không, nếu có hãy giảm requests/limits hoặc scale thêm node vào cụm. Bạn có thể sửa lại manifest Deployment/Pod để giảm resource request, ví dụ:

resources:
  requests:
    cpu: "100m"
    memory: "128Mi"
  limits:
    cpu: "500m"
    memory: "512Mi"

Sau đó áp dụng lại cấu hình bằng kubectl apply -f .yaml hoặc tăng kích thước/ số lượng node nếu khối lượng tải thực sự lớn.

Kiểm tra node, trạng thái lập lịch và taints

Bạn sử dụng kubectl get nodes để xem danh sách node và trạng thái, nếu node bị Not Ready hoặc Unschedulable thì cần xử lý sức khỏe node hoặc bỏ chế độ cordon/drain nếu đã bảo trì xong. Nếu Event báo lỗi FailedScheduling liên quan đến taints/tolerations, bạn hãy kiểm tra chi tiết node bằng kubectl describe node và điều chỉnh lại taint trên node hoặc thêm tolerations tương ứng trong Pod spec.

Rà soát nodeSelector, affinity và các ràng buộc scheduling

Khi Pod dùng nodeSelector, nodeAffinity, podAffinity/antiAffinity, bạn hãy mở YAML Pod bằng lệnh:

kubectl get pod <pod-name> -o yaml

Đối chiếu lại nhãn trên node (kubectl get nodes –show-labels) và nới lỏng hoặc sửa lại selector/affinity nếu điều kiện quá khắt khe khiến không node nào đáp ứng.

Kiểm tra PersistentVolumeClaim và cấu hình storage

Nếu Event chỉ ra lỗi PVC hoặc volume, dùng kubectl get pvc và kubectl describe pvc để xem PVC có ở trạng thái Bound hay không và StorageClass có hoạt động bình thường không. Trong trường hợp PVC không được bind, bạn hãy tạo/điều chỉnh PersistentVolume phù hợp, cấu hình lại StorageClass, hoặc sửa lại spec PVC/Pod cho đúng tên, dung lượng, access mode rồi áp dụng lại manifest.

Xác minh lại container image, registry và thông tin truy cập

Khi Pod Pending do lỗi image pull, bạn hãy kiểm tra lại tên image, tag và registry trong Pod spec, bảo đảm không sai chính tả và image thực sự tồn tại trên registry. Bạn có thể thử kéo thủ công trên máy client/worker:

docker pull <image>:<tag>

Nếu dùng registry private, hãy cập nhật hoặc tạo lại imagePullSecrets, bạn cần đảm bảo Pod tham chiếu đúng secret trong phần imagePullSecrets.

Khắc phục lỗi image pull
Khắc phục lỗi image pull

Xem lại cấu hình Pod (YAML) và sửa các lỗi logic

Nếu Event không ghi rõ lỗi, hãy tải toàn bộ cấu hình Pod bằng:

kubectl get pod <pod-name> -o yaml > pod-on-cluster.yaml

So sánh file này với manifest gốc để phát hiện lỗi YAML, sai tên khóa, lồng sai cấp hoặc config sai command/args, có thể dùng công cụ lint YAML (như yamllint) để bắt lỗi cú pháp. Sau đó chỉnh sửa và kubectl apply lại.

Xóa Pod bị kẹt và để controller tạo lại

Trong nhiều trường hợp (Deployment, StatefulSet, ReplicaSet), cách nhanh là xóa Pod bị kẹt bằng:

kubectl delete pod <pod-name>

Control plane sẽ tự tạo Pod mới dựa trên spec của controller. Nếu bạn đã chỉnh sửa cấu hình trước đó thì Pod mới thường sẽ không còn bị Pending nếu nguyên nhân gốc đã được khắc phục.

Tận dụng autoscaler và cơ chế ưu tiên Pod

Với cụm sử dụng Cluster Autoscaler, hãy bật/tinh chỉnh autoscaler để tự động scale thêm node khi xuất hiện Pod Pending do thiếu tài nguyên. Ngoài ra, có thể cấu hình PriorityClass để Pod quan trọng có độ ưu tiên cao hơn, cho phép scheduler preempt (đuổi bớt) các Pod ưu tiên thấp để nhường tài nguyên cho workload quan trọng.

Thiết lập giám sát và cảnh báo để xử lý sớm

Bạn cần triển khai giám sát bằng Prometheus, Grafana và các công cụ logging để theo dõi trạng thái Pod, tài nguyên node, PVC và sự kiện Kubernetes theo thời gian thực. Hãy kết hợp với alert (Alertmanager, công cụ APM, hệ thống cảnh báo bên thứ ba) để nhận thông báo ngay khi có Pod chuyển sang Pending trong thời gian dài, giúp bạn xử lý sớm trước khi ảnh hưởng đến dịch vụ.

Cách khắc phục lỗi Pod bị kẹt ở trạng thái Pending
Cách khắc phục lỗi Pod bị kẹt ở trạng thái Pending

Những lưu ý cần nắm để hạn chế Pod bị kẹt ở trạng thái Pending

Qua quá trình triển khai thực tế, mình nhận thấy việc Pod bị kẹt ở trạng thái Pending hoàn toàn có thể phòng ngừa nếu chúng ta thực hiện đúng ngay từ khâu thiết kế cấu hình. Thay vì đợi lỗi xảy ra mới xử lý, bạn nên tập trung vào 3 trụ cột cốt lõi sau để đảm bảo workload luôn được lập lịch mượt mà:

  • Khai báo rõ ràng request/limit tài nguyên cho Pod: Bạn luôn định nghĩa requests và limits CPU, RAM trong spec của Pod/Deployment để scheduler chỉ đặt Pod lên những node thật sự đủ tài nguyên, tránh tình trạng yêu cầu vượt quá khả năng cụm.
  • Sử dụng anti-affinity để phân tán Pod hợp lý: Áp dụng các quy tắc chống liên kết (podAntiAffinity, topology spread,…) để phân tán Pod trên nhiều node khác nhau, giảm nguy cơ dồn tải vào một vài node dẫn đến cạn kiệt tài nguyên và Pod mới không được lên lịch.
  • Triển khai hệ thống giám sát và cảnh báo sớm: Thiết lập công cụ monitoring để theo dõi trạng thái Pod, mức sử dụng tài nguyên và sự kiện trong cụm, đồng thời cấu hình cảnh báo khi có Pod Pending quá lâu để kịp thời xử lý trước khi ảnh hưởng đến dịch vụ.
Cách giúp hạn chế Pod bị kẹt ở trạng thái Pending
Cách giúp hạn chế Pod bị kẹt ở trạng thái Pending

Vietnix Enterprise Cloud: Nền tảng vững chắc cho Kubernetes

Các vấn đề gây ra trạng thái Pod Pending thường xuất phát từ giới hạn hạ tầng. Để giải quyết triệt để, Enterprise Cloud của Vietnix cung cấp một nền tảng vượt trội so với VPS truyền thống. Dịch vụ này mang đến một cụm tài nguyên chuyên dụng với phần cứng hiệu năng cao (CPU AMD EPYC, ổ cứng NVMe) và kiến trúc có độ sẵn sàng cao (HA), đảm bảo Kubernetes luôn có đủ tài nguyên để lập lịch và khởi chạy Pod mà không bị gián đoạn.

Với Enterprise Cloud, bạn có toàn quyền quản trị, dễ dàng mở rộng tài nguyên và triển khai các cụm Kubernetes một cách nhanh chóng. Đây là giải pháp lý tưởng giúp xây dựng một môi trường container hóa ổn định, hiệu quả và loại bỏ hoàn toàn các “nút thắt cổ chai” về hạ tầng, giúp ứng dụng của bạn luôn hoạt động mượt mà.

Thông tin liên hệ:

  • Website: https://vietnix.vn/
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh

Câu hỏi thường gặp

Khi nào cần lo lắng nếu Pod ở trạng thái Pending?

Nếu Pod chỉ Pending vài giây đến vài chục giây thì thường là bình thường, nhưng nếu kéo dài trên 1 – 2 phút thì nên kiểm tra lại tài nguyên, node và sự kiện của Pod.

Pod Pending có ảnh hưởng đến toàn bộ cluster Kubernetes không?

Pod Pending chủ yếu ảnh hưởng đến ứng dụng hoặc workload đó không khởi chạy được nhưng nếu nguyên nhân do cạn tài nguyên hoặc cấu hình chung thì có thể là dấu hiệu hệ thống đang quá tải.

Có thể tự động phát hiện và cảnh báo khi Pod bị Pending lâu không?

Có, bạn có thể dùng các công cụ monitoring như Prometheus, Alertmanager hoặc giải pháp quan sát khác để tạo rule cảnh báo khi Pod ở trạng thái Pending vượt quá một ngưỡng thời gian nhất định.

Việc hiểu rõ ý nghĩa trạng thái Pod Pending, nắm nguyên nhân gây ra cũng như cách kiểm tra, khắc phục và phòng tránh sẽ giúp bạn vận hành cụm Kubernetes ổn định hơn, hạn chế tối đa tình trạng ứng dụng bị gián đoạn do Pod không thể chạy đúng như mong đợi.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

kien-thuc-dich-vu

kien-thuc-kubernetes

text
icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG