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

28/09/2026

Trigger là gì trong DBMS? Cách hoạt động, các loại phổ biến và ứng dụng

Trigger là gì trong DBMS? Tìm hiểu cách trigger hoạt động, các loại phổ biến, ví dụ minh họa, ưu nhược điểm và khi nào nên sử dụng.

28/09/2026

Figma là gì? Nền tảng thiết kế và cộng tác trực tuyến

Figma là gì, có những tính năng nổi bật nào? Tìm hiểu Vector Network, Auto Layout, Dev Mode và vị thế hiện tại của Figma trong ngành thiết kế.

28/09/2026

Camera Cloud cần tốc độ mạng bao nhiêu? Cách tính băng thông cần thiết

Camera Cloud cần tốc độ mạng bao nhiêu? Tìm hiểu mức băng thông cần thiết, cách tính upload và các yếu tố ảnh hưởng đến tốc độ khi sử dụng Camera Cloud.

28/09/2026

Camera Cloud có bị hack không? Nguyên nhân và cách bảo mật

Camera Cloud có bị hack không? Tìm hiểu các rủi ro bảo mật, nguyên nhân bị xâm nhập và cách bảo vệ camera, tài khoản cùng dữ liệu hiệu quả.

28/09/2026

Viettel IDC: Nhà cung cấp VMware Sovereign Cloud duy nhất tại Đông Nam Á

Tại VMware Explore 2026 ở Las Vegas, Broadcom đã giới thiệu nhóm 57 nhà cung cấp dịch vụ đám mây chủ quyền trên nền tảng VMware Cloud Foundation. Viettel IDC là đơn vị duy nhất tại Đông Nam Á có tên trong danh sách này, đánh dấu bước tiến mới của doanh nghiệp Việt Nam trên thị trường hạ tầng cloud khu vực.

25/09/2026

Ghidra là gì? Chức năng và ứng dụng trong reverse engineering

Ghidra là gì? Tìm hiểu công cụ reverse engineering mã nguồn mở của NSA, các chức năng chính, ứng dụng thực tế và điểm khác biệt với IDA Pro.

25/09/2026

10 công cụ tối ưu hóa website theo từng mục tiêu

Tổng hợp 10 công cụ tối ưu hóa web cho tốc độ, SEO, trải nghiệm người dùng và chuyển đổi, kèm bảng so sánh và gợi ý lựa chọn theo nhu cầu.

25/09/2026

So sánh WHOIS và DNS Lookup: Điểm khác nhau và khi nào nên sử dụng

WHOIS và DNS Lookup khác nhau thế nào? Tìm hiểu định nghĩa, bảng so sánh, vai trò của RDAP thay thế WHOIS, và khi nào nên dùng công cụ nào.

25/09/2026

Cách test tải hệ thống: Quy trình và công cụ phổ biến

Cách test tải hệ thống hiệu quả gồm những bước nào? Tìm hiểu quy trình, chỉ số cần đo và công cụ phổ biến như JMeter, k6.

16/01/2025

Cloud Monitoring là gì? So sánh Hybrid Cloud và Multi Cloud Monitoring

Cloud Monitoring là quá trình theo dõi, quản lý và đánh giá hiệu suất của các tài nguyên và dịch vụ đám mây, bao gồm giám sát máy chủ, cơ sở dữ liệu, ứng dụng và hệ thống mạng