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
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.
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ế.
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.
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ả.
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.
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.
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.
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.
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.
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
Bình luận ()