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
Có nên sử dụng Cloud miễn phí không? Ưu điểm và rủi ro cần lưu ý
Có nên sử dụng Cloud miễn phí không? Lợi ích, giới hạn tài nguyên, rủi ro dữ liệu và chi phí phát sinh trước khi lựa chọn cho nhu cầu của doanh nghiệp.
Đánh giá các nhà cung cấp Cloud ở Việt Nam 2026: Top 10 uy tín nhất
Đánh giá các nhà cung cấp Cloud ở Việt Nam 2026, so sánh 10 đơn vị về hiệu năng, bảo mật, chi phí và hỗ trợ giúp doanh nghiệp lựa chọn dịch vụ Cloud phù hợp.
Top 5 các nền tảng IoT cloud hàng đầu tại Việt Nam
Các nền tảng IoT cloud hàng đầu tại Việt Nam gồm Viettel IDC, VNPT, FPT, CMC và VNG, đáp ứng nhu cầu lưu trữ, xử lý dữ liệu và mở rộng hệ thống cho doanh nghiệp.
Rủi ro khi doanh nghiệp sử dụng lậu các phần mềm: Cái giá của tiết kiệm
Rủi ro khi doanh nghiệp sử dụng lậu các phần mềm đe dọa tài chính, dữ liệu và uy tín thương hiệu, khiến khoản tiết kiệm ban đầu trở thành gánh nặng lâu dài.
Mua phần mềm bản quyền ở đâu uy tín tại Việt Nam? Top 5 nhà cung cấp chất lượng
Mua phần mềm bản quyền ở đâu uy tín tại Việt Nam? Top 5 nhà cung cấp đáng tin cậy, giúp bạn chọn đúng địa chỉ và gói bản quyền phù hợp với nhu cầu.
Các nền tảng làm việc số có bảo mật không? Rủi ro và cách phòng tránh
Các nền tảng làm việc số có bảo mật không? Cách dữ liệu được bảo vệ, những rủi ro cần lưu ý và giải pháp tăng cường an toàn cho doanh nghiệp.
Làm sao kiểm tra chi phí gia hạn và độ tin cậy của nhà đăng ký tên miền?
Làm sao kiểm tra chi phí gia hạn và độ tin cậy của nhà đăng ký tên miền? Hướng dẫn xem bảng giá, xác minh uy tín để chọn dịch vụ phù hợp cho doanh nghiệp.
Rủi ro khi mua lại tên miền: Những điều cần lưu ý khi mua tên miền cũ
Rủi ro khi mua lại tên miền có thể khiến doanh nghiệp mất quyền sử dụng, tốn chi phí xử lý tranh chấp và gặp khó khăn khi xây dựng website.
10 tiêu chí lựa chọn nền tảng làm việc số cho doanh nghiệp
Tiêu chí lựa chọn nền tảng làm việc số cho doanh nghiệp gồm những gì? 10 yếu tố quan trọng nhất để đánh giá giải pháp phù hợp với nhu cầu và ngân sách.
BitLocker là gì? Cách hoạt động, cách bật và những lưu ý quan trọng
BitLocker là gì và hoạt động như thế nào? Tìm hiểu vai trò của TPM, Recovery Password, các tùy chọn mã hóa và cách bật BitLocker trên Windows.
Bình luận ()