Tuyển dụng
Viettel IDC

Rolling update trong Kubernetes hoạt động ra sao? Cơ chế và ví dụ

05/06/2026

Làm thế nào để cập nhật ứng dụng mà không gây gián đoạn dịch vụ? Cơ chế Rolling update trong Kubernetes chính là câu trả lời giúp thay thế các Pod cũ bằng Pod mới một cách cuốn chiếu, đảm bảo hệ thống luôn sẵn sàng 24/7. Hãy cùng Viettel IDC tìm hiểu chi tiết Rolling update trong Kubernetes hoạt động ra sao và cách tối ưu hóa cơ chế này.

Tìm hiểu Rolling update trong Kubernetes là gì?

Rolling update trong Kubernetes là cơ chế cập nhật ứng dụng tự động, cho phép triển khai phiên bản mới một cách tuần tự (cuốn chiếu) mà không gây gián đoạn dịch vụ. Nó thay thế dần các Pod cũ bằng Pod mới theo từng đợt, đảm bảo hệ thống luôn sẵn sàng phục vụ người dùng.

Tìm hiểu Rolling update trong Kubernetes là gì?

Cơ chế Rolling update trong Kubernetes hoạt động ra sao?

Cơ chế hoạt động của Rolling update trong Kubernetes (quy trình cập nhật cuốn chiếu) được vận hành dựa trên nguyên tắc thay thế dần dần các thực thể cũ bằng các thực thể mới nhằm đảm bảo hệ thống không bị gián đoạn dịch vụ. Chúng ta hãy phân tích kỹ các giai đoạn cùng ví dụ cụ thể:

Giai đoạn 1: Tiếp nhận yêu cầu và tính toán tài nguyên

Khi bạn phát lệnh cập nhật một Deployment (ví dụ: nâng cấp phiên bản ứng dụng từ v1 lên v2), Kubernetes Deployment Controller sẽ không tắt đồng loạt các Pod cũ. Thay vào đó, nó sẽ dựa vào hai tham số cấu hình quan trọng trong file YAML là maxSurge (số lượng Pod tối đa có thể tạo vượt mức) và maxUnavailable (số lượng Pod tối đa có thể tạm thời không khả dụng) để tính toán số lượng Pod cần quản lý trong mỗi đợt cuốn chiếu. Theo mặc định, cả hai giá trị này đều là 25%.

Ví dụ thực tế: Giả sử hệ thống của bạn đang chạy một Deployment gồm 4 Pod phiên bản v1. Với cấu hình mặc định (25%), Kubernetes tính toán rằng tại một thời điểm, nó chỉ được phép tạo thêm tối đa 1 Pod mới ($4 \times 25\% = 1$) và chỉ được phép hạ tối đa 1 Pod cũ xuống.

Giai đoạn 2: Khởi tạo Pod mới và kiểm tra trạng thái (Readiness Probe)

Kubernetes sẽ tiến hành bước "cuốn chiếu" đầu tiên bằng cách ra lệnh cho ReplicaSet mới khởi tạo một số lượng Pod chạy phiên bản v2 trên các Node còn trống tài nguyên. Điểm mấu chốt ở đây là các Pod v2 mới này sẽ chưa nhận lưu lượng truy cập (traffic) ngay lập tức. Kubernetes sẽ giữ chúng ở trạng thái chờ và liên tục thực hiện các bài kiểm tra trạng thái hoạt động (Readiness Probes) để đảm bảo ứng dụng bên trong container đã khởi động hoàn toàn và không gặp lỗi khởi chạy.

Tiếp tục với cấu hình ở trên, Kubernetes sẽ tạo thêm 1 Pod v2 mới (lúc này tổng số Pod tạm thời tăng lên thành 5). Hệ thống sẽ đợi khoảng vài mươi giây để Pod v2 này chuyển sang trạng thái Running và vượt qua vòng kiểm tra Readiness Probe một cách an toàn.

Giai đoạn 3: Chuyển đổi lưu lượng truy cập và thu hồi Pod cũ

Ngay sau khi xác nhận Pod phiên bản v2 đầu tiên đã hoạt động ổn định, Kube-Proxy và Endpoints Controller của Kubernetes Service sẽ cập nhật lại danh sách định tuyến. Hệ thống bắt đầu chuyển một phần traffic của người dùng sang Pod v2 mới này. Đồng thời, nhận thấy số lượng Pod an toàn đã tăng lên, Kubernetes sẽ ra lệnh chấm dứt (terminate) và xóa bỏ 1 Pod chạy phiên bản v1 cũ để cân bằng lại số lượng bản sao mong muốn.

Quay trở lại với ví dụ, khi Pod v2 đầu tiên sẵn sàng, Service sẽ chia sẻ một phần traffic sang cho nó. Ngay lập tức, 1 Pod v1 cũ sẽ bị xóa đi. Lúc này hệ thống quay về trạng thái có tổng cộng 4 Pod, nhưng cơ cấu đã thay đổi: gồm 3 Pod v1 và 1 Pod v2.

Giai đoạn 4: Lặp lại vòng lặp cuốn chiếu cho đến khi hoàn tất

Quy trình tạo Pod mới, kiểm tra độ sẵn sàng, chuyển traffic và xóa Pod cũ sẽ được Kubernetes lặp đi lặp lại một cách tuần tự theo từng đợt (từng cụm nhỏ) giống như một làn sóng cuốn chiếu. Quá trình này diễn ra liên tục cho đến khi không còn Pod v1 nào tồn tại và toàn bộ hệ thống được thay thế hoàn toàn bằng phiên bản v2. Do luôn có các Pod hoạt động song song xuyên suốt quá trình nên người dùng cuối sẽ không gặp bất kỳ gián đoạn nào (Zero Downtime).

Trong tình huống giả định đã đề cập lúc trước, tiếp tục vòng lặp, Kubernetes lại tạo thêm Pod v2 thứ hai và xóa đi Pod v1 thứ hai (hệ thống có 2 Pod v1, 2 Pod v2). Quá trình lặp lại cho đến đợt cuối cùng, toàn bộ 4 Pod đều chạy phiên bản v2 ổn định. Lúc này, quy trình cập nhật cuốn chiếu chính thức kết thúc thành công.

Hướng dẫn các bước thực hiện Rolling update trong Kubernetes

Trước khi bắt đầu, hãy đảm bảo bạn đang sử dụng một Terminal hỗ trợ cú pháp POSIX (như Bash trên Linux/macOS hoặc WSL/Git Bash trên Windows).

Bước 1: Kiểm tra trạng thái hiện tại của Deployment và Pod 

Trước khi tiến hành nâng cấp, bạn cần kiểm tra xem hệ thống hiện tại đang chạy phiên bản nào và có bao nhiêu Pod đang hoạt động bình thường.

Để liệt kê các Deployment hiện có, bạn chạy lệnh:

kubectl get deployments

Lệnh này giúp bạn xác định chính xác tên của Deployment cần cập nhật. Tiếp theo, bạn kiểm tra danh sách các Pod đang chạy bằng lệnh:

kubectl get pods

Cuối cùng, để xem chi tiết thông tin và phiên bản Image hiện tại, bạn hãy sử dụng lệnh:

kubectl describe pods

Hãy cuộn chuột tìm trường Image: trong kết quả trả về để biết phiên bản hiện tại của container (ví dụ: v1).

Bước 2: Tiến hành cập nhật cuốn chiếu (Rolling Update) 

Để thực hiện Rolling Update trong Kubernetes, bạn sẽ sử dụng lệnh kubectl set image để chỉ định một Image (hoặc thẻ tag) mới cho container bên trong Deployment. Cú pháp lệnh cập nhật Image cụ thể như sau:

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=docker.io/jocatalin/kubernetes-bootcamp:v2

Lệnh này yêu cầu Deployment có tên là kubernetes-bootcamp thay đổi Image của container (cũng tên là kubernetes-bootcamp) sang phiên bản mới là :v2. Ngay sau khi bạn nhấn Enter, Kubernetes sẽ âm thầm kích hoạt quy trình rolling update. Hệ thống tự động tạo ra Pod mới chạy bản v2, chờ nó sẵn sàng rồi mới tiến hành xóa (terminate) Pod chạy bản v1.

Bước 3: Xác thực quá trình nâng cấp ứng dụng 

Trong quá trình hệ thống đang chuyển giao, bạn có thể chủ động theo dõi tiến độ cập nhật xem có suôn sẻ hay không.

Bạn có thể kiểm tra trạng thái cập nhật theo thời gian thực bằng lệnh:

kubectl rollout status deployments/kubernetes-bootcamp

Màn hình sẽ hiển thị thông báo tiến trình cho đến khi tất cả các Pod mới được triển khai thành công. Sau đó, bạn kiểm tra lại danh sách Pod để đảm bảo các Pod cũ đã bị xóa thông qua lệnh:

kubectl get pods

Bạn sẽ thấy các Pod cũ chuyển sang trạng thái Terminating và biến mất, thay vào đó là các Pod mới với trạng thái Running. Nếu ứng dụng được mở ra bên ngoài thông qua một Service (ví dụ NodePort), bạn có thể gửi yêu cầu liên tục bằng lệnh curl để kiểm tra lưu lượng truy cập (Traffic):

curl http://$(minikube ip):$NODE_PORT

Kết quả trả về từ các Pod sẽ đồng loạt hiển thị nội dung của phiên bản v2, chứng minh hệ thống đã chuyển đổi traffic mượt mà.

Bước 4: Hoàn tác dữ liệu (Rollback) khi xảy ra lỗi 

Một trong những điểm ưu việt nhất của Rolling update Kubernetes là khả năng quay xe (Rollback) cực kỳ nhanh chóng nếu phiên bản mới bị lỗi hoặc không tồn tại.

Giả sử bạn vô tình cập nhật nhầm lên một phiên bản lỗi (ví dụ tag không tồn tại là :v10):

kubectl set image deployments/kubernetes-bootcamp kubernetes-bootcamp=gcr.io/google-samples/kubernetes-bootcamp:v10

Khi kiểm tra lại bằng lệnh kubectl get pods, bạn sẽ thấy các Pod mới bị kẹt ở trạng thái ImagePullBackOff (không thể tải được image). Để khắc phục ngay lập tức và đưa hệ thống về trạng thái ổn định trước đó, bạn chỉ cần chạy lệnh:

 

kubectl rollout undo deployments/kubernetes-bootcamp

Kết quả: Kubernetes sẽ ngay lập tức hủy bỏ bản cập nhật lỗi và khôi phục (rollback) toàn bộ hệ thống về phiên bản hoạt động ổn định gần nhất (v2). Bạn có thể dùng lại lệnh kubectl get pods và kubectl describe pods để xác nhận ứng dụng đã an toàn.

Kết luận

Hiểu rõ Rolling update trong Kubernetes hoạt động ra sao giúp bạn làm chủ quy trình triển khai ứng dụng mà không gây gián đoạn dịch vụ. Để tối ưu hóa và đơn giản hóa việc vận hành các cụm Kubernetes trên hạ tầng chuẩn quốc tế, doanh nghiệp có thể tham khảo dịch vụ Viettel Dedicated Kubernetes Service (vDKS). Đây là giải pháp tự động hóa toàn diện giúp đơn giản hóa việc quản lý cụm K8s trên hạ tầng đạt chuẩn quốc tế, tiết kiệm tối đa chi phí vận hành và thời gian triển khai cho đội ngũ DevOps.

Tham khảo chi tiết 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

Viettel IDC dẫn đầu bảng xếp hạng Enterprise of Choice 2026 tại nhiều hạng mục quan trọng

Viettel IDC đạt 6 thứ hạng nổi bật tại Enterprise of Choice 2026, trong đó có 5 vị trí Top 1 ở các hạng mục về công nghệ thông tin, phát triển bền vững, doanh nghiệp được yêu thích bởi người lao động, lãnh đạo và thế hệ trẻ. Kết quả ghi nhận những nỗ lực của doanh nghiệp trong xây dựng môi trường làm việc tích cực, lấy con người làm trung tâm.

20/10/2026

So sánh các dịch vụ cloud backup phổ biến tại Việt Nam

So sánh các dịch vụ cloud backup phổ biến tại Việt Nam về phạm vi sao lưu, bảo mật, khôi phục, chi phí và mô hình triển khai để doanh nghiệp dễ lựa chọn.

20/10/2026

Dịch vụ lưu trữ đám mây nào tốt nhất cho doanh nghiệp nhỏ 2026? 9 lựa chọn nên tham khảo

So sánh 9 dịch vụ lưu trữ đám mây cho doanh nghiệp nhỏ năm 2026: công cụ chia sẻ file, Object Storage trong nước và quốc tế, kèm tiêu chí chọn nhà cung cấp.

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.