Tuyển dụng
Viettel IDC

Pod restart policy là gì? Cách hoạt động và cấu hình trong Kubernetes

02/07/2026

Khi 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.

Pod restart policy là gì?

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ách thức hoạt động thực tế của Kubernetes Pod Restart Policy là gì?

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:

kubectl run -i --tty busybox --image=busybox --restart=Always -- sh

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:

kubectl run -i --tty busybox --image=busybox --restart=OnFailure -- sh -c "exit 1"

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:

kubectl run -i --tty busybox --image=busybox --restart=Never -- sh

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:

kubectl get pods

Kết quả có thể hiển thị:

NAME      READY   STATUS      RESTARTS   AGE

busybox   0/1     Completed   0          8s

Sau khi hoàn tất kiểm tra, xóa Pod bằng lệnh:

kubectl delete pod busybox

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.

Các chính sách của Restart Policy Kubernetes

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:

apiVersion: v1

kind: Pod

metadata:

  name: demo-pod

spec:

  restartPolicy: OnFailure

  containers:

    - name: demo-container

      image: busybox

      command: ["sh", "-c", "echo Hello Kubernetes && exit 1"]

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:

kubectl apply -f pod.yaml

Sau đó, kiểm tra trạng thái Pod và số lần khởi động lại bằng:

kubectl get pods

Muốn xem toàn bộ cấu hình và sự kiện liên quan đến Pod, hãy sử dụng:

kubectl describe pod demo-pod

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ụ:

kubectl run busybox \

  --image=busybox \

  --restart=Never \

  -- sh -c "echo Hello Kubernetes"

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  

Bình luận ()

Đăng nhập | Đăng ký
để gửi bình luận
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Ý kiến của bạn sẽ được xét duyệt trước khi đăng.
Xem thêm bình luận

Tin liên quan

20/10/2026

Mua chứng chỉ SSL cho website ở đâu uy tín? 5 kênh mua và triển khai

Có 5 kênh mua và triển khai chứng chỉ SSL cho website: CA, đại lý trong nước, nhà cung cấp hosting, nhà đăng ký tên miền và CA miễn phí. Xem ưu nhược điểm và cách kiểm tra nơi bán uy tín.

20/10/2026

Lưu trữ ngoài có an toàn không? Rủi ro và cách bảo vệ dữ liệu doanh nghiệp

Lưu trữ dữ liệu bên ngoài có an toàn không? Phân tích rủi ro, các lớp bảo vệ cần có và tiêu chí chọn nhà cung cấp cho doanh nghiệp.

19/10/2026

VDS là gì? VDS khác VPS và Dedicated Server như thế nào?

VDS là gì, khác VPS và Dedicated Server ở điểm nào, ưu nhược điểm và trường hợp nên sử dụng.

19/10/2026

Cách triển khai observability cho ứng dụng đám mây và microservices như thế nào

Hướng dẫn triển khai observability cho ứng dụng đám mây và microservices qua 7 bước, từ xác định SLI/SLO đến tối ưu chi phí telemetry.

19/10/2026

Top nhà cung cấp dịch vụ Dedicated Server giá tốt, tốc độ ổn định tại Việt Nam

Tổng hợp các nhà cung cấp Dedicated Server tại Việt Nam, so sánh mô hình dịch vụ, cấu hình, Data Center, uptime, băng thông và giá công bố.

19/10/2026

Top nhà cung cấp dịch vụ Hosting và VPS uy tín tại Việt Nam

Top nhà cung cấp Hosting và VPS uy tín tại Việt Nam. So sánh hạ tầng, uptime, loại dịch vụ và các tiêu chí cần kiểm tra trước khi lựa chọn.

19/10/2026

Thuê Cloud GPU có đắt không?

Thuê Cloud GPU có đắt không phụ thuộc vào yếu tố nào? Phân tích các mô hình tính phí, chi phí ẩn và cách tối ưu ngân sách khi dùng GPU đám mây.

19/10/2026

Top nhà cung cấp dịch vụ Cloud GPU tại Việt Nam

Tổng hợp các nhà cung cấp Cloud GPU tại Việt Nam. So sánh GPU hỗ trợ, mô hình dịch vụ, hạ tầng và các tiêu chí doanh nghiệp cần cân nhắc.

19/10/2026

Syslog là gì? Cách hoạt động, thành phần và cách triển khai

Syslog là gì? Tìm hiểu cách giao thức này giúp doanh nghiệp quản lý log tập trung, giám sát hệ thống và hỗ trợ phát hiện, xử lý sự cố kịp thời.

19/10/2026

Observability là gì? Vai trò, thành phần và cách triển khai hiệu quả

Observability là gì? Tìm hiểu cách doanh nghiệp theo dõi hệ thống, phát hiện nguyên nhân sự cố và cải thiện hiệu suất ứng dụng hiệu quả.