Tuyển dụng
Viettel IDC

Scale Deployment là gì? Cách tăng giảm Pod trong Kubernetes

31/07/2026

Khi lưu lượng thay đổi, số lượng Pod cũng cần được điều chỉnh để ứng dụng không rơi vào tình trạng quá tải hoặc lãng phí tài nguyên. Cùng Viettel IDC tìm hiểu Scale Deployment là gì và Kubernetes thực hiện quá trình mở rộng, thu hẹp Deployment như thế nào?

Scale Deployment là gì?

Scale Deployment là quá trình tăng hoặc giảm số lượng replica của một Deployment trong Kubernetes để phù hợp với nhu cầu xử lý thực tế. Khi lưu lượng tăng, hệ thống có thể bổ sung thêm Pod để nâng cao khả năng đáp ứng và duy trì tính sẵn sàng; ngược lại, khi nhu cầu giảm, số lượng Pod có thể được thu hẹp nhằm tiết kiệm tài nguyên.

Scale Deployment là gì?

Cơ chế hoạt động của Scale Deployment là gì?

Khi số lượng replica của Deployment thay đổi, Kubernetes sẽ so sánh trạng thái thực tế với trạng thái mong muốn đã được cấu hình. Deployment Controller sau đó cập nhật ReplicaSet tương ứng để tạo thêm Pod khi scale up hoặc loại bỏ bớt Pod khi scale down.

Với trường hợp scale up, các Pod mới sẽ được Scheduler phân bổ lên những node còn đủ CPU, RAM và đáp ứng điều kiện triển khai. Sau khi Pod khởi động thành công và vượt qua readiness probe, Service mới đưa chúng vào danh sách endpoint để tiếp nhận lưu lượng. 

Ngược lại, khi scale down, Kubernetes sẽ giảm số Pod dư thừa nhưng vẫn duy trì số lượng replica đúng theo cấu hình. Quá trình này được theo dõi liên tục nhằm bảo đảm trạng thái thực tế của hệ thống luôn khớp với trạng thái mong muốn.

Cơ chế hoạt động của Scale Deployment là gì?

Khi nào nên Scale Deployment?

Scale Deployment phù hợp khi số lượng Pod hiện tại không còn đáp ứng đúng nhu cầu vận hành của ứng dụng. Tùy vào lưu lượng, mức sử dụng tài nguyên và mục tiêu kiểm thử, bạn có thể tăng hoặc giảm replica trong các trường hợp sau:

- Lưu lượng truy cập tăng cao: Bổ sung Pod để phân tán yêu cầu, hạn chế quá tải và duy trì tốc độ phản hồi.

- Cần cải thiện tính sẵn sàng: Tăng số replica giúp ứng dụng vẫn hoạt động nếu một Pod hoặc node gặp sự cố.

- Nhu cầu sử dụng giảm: Thu hẹp số lượng Pod để tránh lãng phí CPU, RAM và chi phí hạ tầng.

- Thực hiện kiểm thử tải: Điều chỉnh replica để đánh giá khả năng chịu tải và phát hiện điểm nghẽn của hệ thống.

- Chuẩn bị bảo trì hoặc sự kiện lớn: Chủ động scale trước khi nâng cấp, chạy chiến dịch hoặc bước vào giai đoạn có lượng truy cập dự kiến tăng.

- Workload thay đổi liên tục: Áp dụng HPA, KEDA hoặc cơ chế autoscaling phù hợp để hệ thống tự điều chỉnh theo metric hay sự kiện.

Các hình thức Scale Deployment trong Kubernetes

Scale Deployment trong Kubernetes được chia thành hai nhóm chính là scale thủ công và tự động mở rộng. Scale thủ công phù hợp với nhu cầu điều chỉnh đã được dự báo trước, trong khi autoscaling giúp hệ thống phản ứng linh hoạt theo tải, tài nguyên hoặc sự kiện phát sinh.

Scale Thủ công (Manual Scaling)

Scale thủ công cho phép người quản trị chủ động tăng hoặc giảm số lượng Pod theo nhu cầu vận hành tại từng thời điểm. Có hai cách thực hiện phổ biến:

- Sử dụng lệnh kubectl scale: Chạy lệnh kubectl scale deployment <name> --replicas=<number> để thay đổi trực tiếp số lượng replica của Deployment.

- Cập nhật file YAML: Chỉnh giá trị spec.replicas trong file cấu hình rồi áp dụng lại bằng lệnh kubectl apply.

Đây là hình thức Scale Deployment dễ triển khai, phù hợp khi bảo trì hệ thống hoặc đã dự báo được lưu lượng truy cập. Tuy nhiên, người quản trị phải theo dõi và thao tác thủ công nên hệ thống có thể phản ứng chậm nếu tải tăng đột ngột.

Tự động mở rộng (Autoscaling)

Autoscaling tự động điều chỉnh tài nguyên theo trạng thái thực tế của ứng dụng và cluster. Tùy vào đối tượng cần mở rộng, Kubernetes có thể áp dụng các cơ chế sau:

- Horizontal Pod Autoscaler: Tự động tăng hoặc giảm số lượng Pod dựa trên CPU, bộ nhớ hoặc custom metrics. HPA thường phù hợp với web server, API và các ứng dụng stateless có lưu lượng biến động liên tục.

- Vertical Pod Autoscaler: Điều chỉnh lượng CPU và RAM cấp cho từng Pod thay vì tạo thêm replica. VPA phù hợp với workload cần nhiều tài nguyên trên từng tiến trình hoặc khó mở rộng theo chiều ngang.

- Cluster Autoscaler: Tăng hoặc giảm số lượng node trong cluster khi Pod thiếu tài nguyên để được lập lịch hoặc khi node không còn được sử dụng hiệu quả.

- KEDA: Mở rộng Deployment dựa trên các sự kiện từ Kafka, RabbitMQ, Redis, Cron hoặc nguồn dữ liệu bên ngoài. KEDA có thể đưa số replica từ 0 lên khi xuất hiện sự kiện cần xử lý.

Các hình thức Scale Deployment trong Kubernetes

Cách Scale Deployment an toàn và hiệu quả

Để Scale Deployment hiệu quả, người quản trị cần cân đối giữa nhu cầu xử lý, tài nguyên sẵn có và khả năng mở rộng của toàn bộ cluster. Những lưu ý sau giúp hạn chế tình trạng scale quá mức, thiếu tài nguyên hoặc chỉ xử lý tạm thời các vấn đề hiệu suất.

 

Lưu ý

Cụ thể

Hiểu rõ yêu cầu của workload

Xác định lượng tài nguyên mà workload có thể cần để lựa chọn số lượng replica phù hợp.

Scale theo từng bước

Tránh tăng hoặc giảm quá nhiều replica cùng lúc vì có thể gây biến động tài nguyên và ảnh hưởng đến hệ thống.

Cân nhắc horizontal scaling

Tự động điều chỉnh số lượng Pod dựa trên các chỉ số sử dụng tài nguyên như CPU hoặc bộ nhớ.

Cân nhắc vertical scaling

Tự động bổ sung CPU và bộ nhớ cho Pod theo nhu cầu sử dụng tài nguyên, tuy nhiên tính năng này không có sẵn trên mọi bản phân phối Kubernetes.

Sử dụng Cluster Autoscaler

Tự động bổ sung node khi cluster thiếu tài nguyên, giúp giảm nguy cơ Pod không thể được lập lịch.

Theo dõi và xử lý sự cố

Giám sát workload để tìm nguyên nhân gốc rễ của vấn đề hiệu suất, thay vì chỉ scale như một giải pháp tạm thời.

Hướng dẫn Scale Deployment trong Kubernetes bằng lệnh kubectl

Bạn có thể điều chỉnh số lượng Pod trong Deployment chỉ với một vài câu lệnh kubectl cơ bản. Dưới đây là hướng dẫn từng bước để điều chỉnh số lượng Pod trong một Deployment.

Bước 1: Tạo file YAML cho Deployment

Đầu tiên, bạn cần tạo một Kubernetes Deployment. Cấu hình Deployment thường được khai báo trong file YAML như sau:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: nginx
          image: nginx:latest

Trong file YAML này, một Deployment có tên my-deployment được tạo để chạy image Docker nginx:latest. Giá trị replicas: 1 cho biết Deployment ban đầu chỉ duy trì một Pod và Pod đó chạy một container sử dụng cùng image Docker.

Bước 2: Triển khai Deployment

Để áp dụng cấu hình Deployment, bạn sử dụng lệnh kubectl apply tạo Deployment dựa trên nội dung đã khai báo trong file YAML. Tham số -f được dùng để chỉ định file chứa cấu hình Deployment.

kubectl apply -f my-deployment.yaml

Bước 3: Kiểm tra Deployment

Bạn có thể sử dụng lệnh kubectl get pods để kiểm tra trạng thái của các Pod và xác nhận Deployment đã được tạo thành công hay chưa.

kubectl get pods

Bước 4: Tăng số lượng replica của Deployment

Để tăng số lượng Pod trong Deployment, sử dụng lệnh kubectl scale kết hợp với tham số --replicas, sau đó nhập số lượng replica mong muốn.

Phần deployment.apps/my-deployment ở cuối câu lệnh dùng để xác định Deployment cần mở rộng.

kubectl scale --replicas=6 deployment.apps/my-deployment

Sau khi chạy lệnh, Kubernetes sẽ điều chỉnh Deployment để duy trì sáu replica.

Bước 5: Kiểm tra lại Deployment

Tiếp tục kiểm tra trạng thái của các Pod để xác nhận Deployment đã được mở rộng thành công.

kubectl get pods

Sau khi quá trình mở rộng hoàn tất, danh sách kết quả sẽ hiển thị sáu Pod đang được Deployment quản lý.

Bước 6: Giảm số lượng replica của Deployment

Cách giảm số lượng replica tương tự như khi tăng. Bạn vẫn sử dụng lệnh kubectl scale cùng tham số --replicas, nhưng nhập số lượng replica mới thấp hơn.

kubectl scale --replicas=4 deployment.apps/my-deployment

Sau khi câu lệnh được thực thi, Kubernetes sẽ điều chỉnh Deployment để chỉ còn bốn replica. Như vậy, bạn có thể sử dụng lệnh kubectl scale deployment để chủ động tăng hoặc giảm số lượng Pod trong Deployment tùy theo nhu cầu xử lý lưu lượng và mức tài nguyên của hệ thống.

Kết luận

Qua nội dung trên, bạn đã có thể hiểu rõ Scale Deployment là gì, cách cơ chế này điều chỉnh số lượng Pod và những trường hợp nên áp dụng trong Kubernetes. Khi được sử dụng đúng cách, Scale Deployment không chỉ giúp ứng dụng đáp ứng tốt hơn trước biến động lưu lượng mà còn góp phần duy trì tính sẵn sàng và kiểm soát tài nguyên hiệu quả.

Với doanh nghiệp muốn vận hành Kubernetes mà không phải dành quá nhiều thời gian cho khâu khởi tạo và quản trị hạ tầng, Viettel Dedicated Kubernetes Service (vDKS) là lựa chọn đáng cân nhắc. Dịch vụ được triển khai trên nền tảng Public Cloud của Viettel IDC, hỗ trợ khởi tạo cụm tự động, quản lý tập trung và mở rộng tài nguyên linh hoạt, giúp đội ngũ kỹ thuật tập trung hơn vào phát triển và tối ưu ứng dụng.

Tìm hiểu 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

05/11/2026

Lỗi msvcr100.dll là gì? Hướng dẫn cách sửa lỗi msvcr100 dll nhanh chóng

Lỗi msvcr100.dll khiến phần mềm không khởi chạy trên Windows. Xem hướng dẫn khắc phục từng bước để bổ sung thư viện còn thiếu và sửa chữa chương trình bị lỗi.

05/11/2026

Top 20 các extension visual studio code hữu ích cho lập trình viên

Các extension Visual Studio Code hữu ích mở rộng khả năng của trình soạn thảo, giúp lập trình viên tối ưu môi trường làm việc và nâng cao hiệu quả viết mã.

05/11/2026

Bridge là gì? Cách hoạt động và ứng dụng trong mạng LAN

Bridge là gì? Cầu nối mạng hoạt động dựa trên địa chỉ MAC để kết nối các phân đoạn LAN, kiểm soát luồng dữ liệu và hỗ trợ triển khai mạng vật lý lẫn mạng ảo.

05/11/2026

Lỗi Blocked due to other 4xx issue là gì? Nguyên nhân và cách fix lỗi

Lỗi Blocked due to other 4xx issue khiến Google không lập chỉ mục URL, cần xác định đúng mã HTTP và nguyên nhân để khắc phục hiệu quả trong Search Console.

05/11/2026

Test case là gì? Cách viết test case và mẫu minh họa cho người mới

Test case là gì và làm sao để viết rõ ràng, đúng yêu cầu? Nắm vững cách xây dựng trường hợp kiểm thử qua ví dụ cụ thể để phát hiện sai lệch trong hoạt động phần mềm.

05/11/2026

AI Inference là gì? Cơ chế và vai trò trong vận hành AI

AI inference là gì? Cách mô hình AI tạo kết quả sau huấn luyện, phân biệt với AI training, các hình thức triển khai và ứng dụng thực tế trong doanh nghiệp.

05/11/2026

DBeaver là gì? Hướng dẫn cài đặt và kết nối cơ sở dữ liệu với DBeaver

DBeaver là gì? Khám phá tính năng quản lý cơ sở dữ liệu, các phiên bản miễn phí và trả phí cùng hướng dẫn cài đặt, kết nối, chạy truy vấn SQL cho người mới.

05/11/2026

Cách thay đổi mật khẩu máy tính trên Windows 10, 11 đơn giản

Cách thay đổi mật khẩu máy tính trên Windows 10, 11 qua Settings, Control Panel, CMD và các công cụ quản trị được hướng dẫn chi tiết theo từng bước dễ thực hiện.

05/11/2026

Microsoft Management Console là gì? Cách sử dụng MMC cho người mới

Microsoft Management Console là gì? Đây là nền tảng tập hợp các công cụ quản trị Windows, hỗ trợ quản lý hệ thống, thêm snap-in và lưu console theo nhu cầu sử dụng.

05/11/2026

Rủi ro khi sử dụng giả lập online và cách phòng tránh

Rủi ro khi sử dụng giả lập online có thể gây lộ dữ liệu, mất quyền kiểm soát tài khoản, lừa đảo trực tuyến, vi phạm chính sách game, gián đoạn thao tác và phát sinh chi phí.