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

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