Pod restart policy là gì? Cách hoạt động và cấu hình trong Kubernetes
02/07/2026Khi container trong Pod dừng hoạt động, Kubernetes sẽ dựa vào restartPolicy để quyết định có khởi động lại hay không. Hiểu rõ Pod Restart Policy là gì giúp quản trị viên lựa chọn đúng chính sách đồng thời xử lý hiệu quả các tình huống lỗi. Cùng Viettel IDC tìm hiểu cách hoạt động, cấu hình và ứng dụng thực tế của chính sách khởi động lại trong bài viết dưới đây.
Pod restart policy là gì?
Pod restart policy (chính sách khởi động lại) là cơ chế xác định Kubernetes sẽ xử lý thế nào khi container trong Pod dừng hoạt động, dù do hoàn thành tác vụ hay phát sinh lỗi. Chính sách này được khai báo qua trường restartPolicy trong cấu hình Pod và áp dụng chung cho tất cả container thông thường thuộc Pod đó.
Cơ chế restart policy giúp Kubernetes duy trì trạng thái vận hành phù hợp với mục đích của workload, chẳng hạn giữ ứng dụng chạy liên tục hoặc cho phép tác vụ kết thúc sau khi hoàn thành. Khi container bị dừng, Kubernetes có thể khởi động lại container ngay trong Pod hiện tại thay vì tạo một Pod mới.
Cách thức hoạt động thực tế của Kubernetes Pod Restart Policy là gì?
Kubernetes Pod Restart Policy hoạt động dựa trên trạng thái kết thúc của tiến trình chính bên trong container. Khi tiến trình này dừng, kubelet trên node sẽ kiểm tra mã thoát của container và đối chiếu với giá trị restartPolicy được khai báo trong Pod để quyết định có khởi động lại container hay không.
- Nếu container cần được khởi động lại, Kubernetes sẽ tạo lại tiến trình container ngay trong Pod hiện tại thay vì tạo một Pod mới. Pod vẫn giữ nguyên tên, địa chỉ nhận diện và cấu hình ban đầu, trong khi số lần khởi động lại được ghi nhận tại cột RESTARTS khi chạy lệnh kubectl get pods.
- Trong trường hợp container liên tục gặp lỗi, Kubernetes không khởi động lại ngay lập tức vô thời hạn. Hệ thống áp dụng cơ chế exponential back-off, kéo dài khoảng chờ giữa các lần restart. Khi đó, Pod thường hiển thị trạng thái CrashLoopBackOff cho đến khi container chạy ổn định hoặc lỗi được khắc phục.
Các chính sách của Restart Policy Kubernetes
Kubernetes hỗ trợ ba giá trị cho trường restartPolicy gồm Always, OnFailure và Never. Mỗi chính sách khởi động lại xác định cách kubelet trên node xử lý khi tiến trình chính bên trong container kết thúc.
Always
Always yêu cầu kubelet khởi động lại container sau mỗi lần tiến trình kết thúc, bất kể container hoàn thành thành công với mã thoát 0 hay dừng do lỗi với mã khác 0. Đây cũng là chính sách khởi động lại mặc định nếu cấu hình Pod không khai báo trường restartPolicy.
Có thể kiểm tra cơ chế này bằng lệnh:
Sau khi nhập exit, tiến trình shell kết thúc và container tạm thời chuyển sang trạng thái Completed. Tuy nhiên, kubelet sẽ nhanh chóng khởi động lại container, khiến Pod trở về trạng thái Running và giá trị RESTARTS tăng thêm một đơn vị. Trong môi trường thực tế, Always thường được áp dụng cho các workload cần duy trì liên tục như web server, API, hệ thống backend hoặc dịch vụ chạy nền.
OnFailure
OnFailure chỉ khởi động lại container khi tiến trình chính kết thúc với mã thoát khác 0. Theo quy ước của Linux và Unix, mã thoát 0 biểu thị tiến trình hoàn thành thành công, trong khi giá trị khác 0 thường cho thấy lỗi đã xảy ra.
Mô phỏng một container gặp lỗi bằng lệnh:
Trong trường hợp này, container kết thúc với mã thoát 1, nên kubelet tiếp tục khởi động lại container. Nếu lỗi lặp lại, Pod có thể lần lượt hiển thị trạng thái Error và CrashLoopBackOff.
Kubernetes áp dụng cơ chế exponential back-off để tránh restart container liên tục trong thời gian ngắn. Khoảng chờ giữa các lần thử thường tăng dần từ khoảng 10 giây, 20 giây, 40 giây và tiếp tục tăng đến giới hạn xấp xỉ 5 phút.
Khoảng trì hoãn sẽ được đặt lại sau khi container chạy ổn định trong một khoảng thời gian đủ dài. OnFailure phù hợp với batch job, tác vụ xử lý dữ liệu hoặc chương trình cần được chạy lại khi thất bại nhưng không cần restart sau khi hoàn thành thành công.
Never
Pod restart policy Never quy định kubelet không khởi động lại container sau khi tiến trình kết thúc, bất kể container hoàn thành thành công hay gặp lỗi. Đây là lựa chọn phù hợp khi người quản trị muốn giữ nguyên trạng thái cuối cùng của Pod để kiểm tra hoặc chỉ cần chạy tác vụ một lần.
Tạo một Pod sử dụng chính sách này bằng lệnh:
Khi nhập exit, tiến trình shell kết thúc và Pod chuyển sang trạng thái Completed. Pod vẫn tồn tại trong cụm để người quản trị kiểm tra log, mã thoát hoặc trạng thái cuối cùng, nhưng container sẽ không được chạy lại.
Kiểm tra trạng thái Pod bằng lệnh:
Kết quả có thể hiển thị:
Sau khi hoàn tất kiểm tra, xóa Pod bằng lệnh:
Pod restart policy never always phù hợp với tác vụ chạy một lần, quy trình kiểm thử hoặc trường hợp cần giữ nguyên trạng thái kết thúc để phục vụ điều tra lỗi. Tuy nhiên, trong hệ thống production, các tác vụ dạng này thường được quản lý thông qua Job thay vì tạo Pod độc lập.
Hướng dẫn cách cấu hình restartPolicy trong Pod
Để cấu hình Kubernetes Pod Restart Policy, bạn cần khai báo trường restartPolicy trong phần spec của Pod. Trường này áp dụng cho toàn bộ container thông thường bên trong Pod và chỉ chấp nhận ba giá trị gồm Always, OnFailure hoặc Never.
Ví dụ cấu hình Pod sử dụng chính sách OnFailure:
Trong cấu hình trên, container kết thúc với mã thoát 1, nên kubelet sẽ nhận diện tiến trình gặp lỗi và khởi động lại container theo restartPolicy: OnFailure. Nếu tiến trình kết thúc thành công với mã thoát 0, container sẽ không được restart.
Có thể tạo Pod từ tệp YAML bằng lệnh:
Sau đó, kiểm tra trạng thái Pod và số lần khởi động lại bằng:
Muốn xem toàn bộ cấu hình và sự kiện liên quan đến Pod, hãy sử dụng:
Ngoài tệp YAML, bạn cũng có thể khai báo Pod Restart Policy K8s trực tiếp bằng lệnh kubectl run. Ví dụ:
Lệnh trên tạo một Pod sử dụng restartPolicy: Never, nghĩa là container sẽ không được khởi động lại sau khi tiến trình kết thúc.
Cần lưu ý rằng restartPolicy được đặt ở cấp Pod, không cấu hình riêng cho từng container thông thường trong cùng một Pod. Nếu không khai báo trường này, Kubernetes mặc định sử dụng giá trị Always. Ngoài ra, trường restartPolicy của một Pod đã tạo không thể chỉnh sửa trực tiếp; khi cần thay đổi chính sách, bạn phải cập nhật workload quản lý Pod hoặc tạo một Pod mới với cấu hình phù hợp.
Kết luận
Thông qua những chia sẻ trên, bạn đã hiểu Pod Restart Policy là gì, cách Kubernetes xử lý khi container kết thúc và sự khác biệt giữa ba chính sách Always, OnFailure và Never. Lựa chọn đúng chính sách khởi động lại giúp workload duy trì trạng thái phù hợp, hạn chế vòng lặp lỗi và hỗ trợ quá trình vận hành, giám sát Pod hiệu quả hơn.
Viettel Dedicated Kubernetes Service (vDKS) giúp doanh nghiệp triển khai nền tảng Kubernetes chuyên biệt mà không phải tự xây dựng và quản trị toàn bộ hệ thống từ đầu. Dịch vụ cung cấp môi trường đầy đủ để điều phối container, triển khai ứng dụng và quản lý workload tập trung, qua đó giảm áp lực cho đội ngũ kỹ thuật và rút ngắn thời gian đưa sản phẩm vào vận hành.
Tìm hiểu thêm tại: https://viettelidc.com.vn/viettel-kubernetes-service
Để được hỗ trợ tư vấn và tìm hiểu các dịch vụ của Viettel, bạn có thể liên hệ trực tiếp tới Viettel IDC qua các kênh:
- Hotline: 1800 8088 (miễn phí cước gọi)
- Fanpage: https://www.facebook.com/viettelidc
Tin nổi bật
Tin liên quan
Microsoft Publisher là gì? Tổng quan về phần mềm thiết kế dàn trang
Microsoft Publisher là gì? Đây là phần mềm dàn trang của Microsoft, hỗ trợ thiết kế ấn phẩm bằng các mẫu có sẵn và công cụ sắp xếp văn bản, hình ảnh linh hoạt.
Có nên sử dụng các công cụ Text to speech miễn phí? Ưu điểm và hạn chế
Có nên sử dụng các công cụ Text to Speech miễn phí? Cân nhắc chất lượng giọng đọc, hạn mức và quyền sử dụng để biết khi nào bản miễn phí đủ dùng hoặc cần nâng cấp.
Kiến trúc Client Server là gì? Cách mô hình máy chủ - máy khách hoạt động
Kiến trúc Client Server là gì? Đây là mô hình máy khách - máy chủ, tổ chức việc gửi yêu cầu, xử lý và trao đổi dữ liệu trong các ứng dụng và dịch vụ mạng.
Cấu trúc silo là gì trong SEO? Cách xây dựng cấu trúc silo cho website
Cấu trúc silo là gì? Nắm rõ cách phân nhóm nội dung, phân biệt silo vật lý và silo ảo để xây dựng website dễ điều hướng, thuận tiện quản lý và hỗ trợ SEO.
Top 15 các phần mềm quay lại màn hình miễn phí cho máy tính và điện thoại
Các phần mềm quay lại màn hình miễn phí giúp bạn ghi hình rõ nét, lưu lại thao tác và tạo video hướng dẫn trực quan cho nhu cầu học tập, làm việc hằng ngày.
Postfix là gì? Hướng dẫn cài đặt và cấu hình trên Ubuntu
Postfix là gì được giải đáp qua vai trò của phần mềm chuyển thư mã nguồn mở, giúp doanh nghiệp chủ động quản lý luồng email và cấu hình hệ thống trên Linux.
Cách quét mã độc cho website WordPress và lưu ý bảo mật cần biết
Cách quét mã độc cho website WordPress giúp phát hiện tệp đáng ngờ, xác định dấu vết xâm nhập và hỗ trợ xử lý sớm nguy cơ ảnh hưởng đến dữ liệu, người truy cập.
Top 20 các plugin hữu ích cho WordPress tốt nhất nên cài đặt
Các plugin hữu ích cho WordPress giúp mở rộng chức năng sẵn có của website, cải thiện trải nghiệm người dùng và đơn giản hóa công việc quản trị hằng ngày.
Hướng dẫn cài đặt các ứng dụng trên Ubuntu cho người mới
Hướng dẫn cài đặt các ứng dụng trên Ubuntu chi tiết từng bước, giúp người mới dễ dàng thao tác từ tải phần mềm, thiết lập gói cài đến khởi chạy ứng dụng.
Lỗi msvcr100.dll là gì? Hướng dẫn cách sửa lỗi msvcr100 dll nhanh chóng
Lỗi msvcr100.dll khiến phần mềm không khởi chạy trên Windows. Xem hướng dẫn khắc phục từng bước để bổ sung thư viện còn thiếu và sửa chữa chương trình bị lỗi.
Bình luận ()