Xem mẫu
- Tuyển tập Hội nghị Khoa học thường niên năm 2021. ISBN: 978-604-82-5957-0
GIẢI PHÁP AUTOSCALING HỖN HỢP CHO NỀN TẢNG
CLOUD KUBERNETES
Đỗ Trường Xuân1, Phạm Thanh Bình1
1
Trường Đại học Thủy lợi, email: xuandt@tlu.edu.vn
1. GIỚI THIỆU CHUNG về tài nguyên phần cứng và mạng. Tuy
nhiên các phương pháp trên đều được thực
Container là một nền tảng ảo hóa đang thu
hiện chỉ dựa vào một trong các thông số về
hút nhiều sự quan tâm của giới học thuật và tài nguyên và một phương pháp autoscaling.
công nghiệp. Thay vì ảo hóa phần cứng và hệ Trong nghiên cứu này, một phương pháp
điều hành như máy ảo, container chỉ đóng gói autoscaling dựa trên nhiều thông số tài
những thành phần cần thiết để chạy ứng dụng nguyên và sự linh hoạt chọn lựa phương
như các thư viện, file bin, và hệ thống file. pháp autoscaling được trình bày nhằm tối ưu
Container mang đến nhiều lợi ích so với máy hóa tài nguyên sử dụng nhưng vẫn có thể
ảo : như rất nhẹ có thể được khởi động và đảm bảo yêu cầu giảm tải trên các container.
dừng rất nhanh chóng thay vì quá trình khởi
động và tắt của máy ảo thông thường.
Cùng với sự ra đời của container thì có rất
nhiều các nền tảng quản lý và triển khai
container, nổi bật là Kubernetes (K8s) [1].
K8s cung cấp các chức năng như cân bằng tải
(load balancing) trên các container, tối ưu
hóa việc triển khai các container trên các cụm
nốt phần cứng. K8s còn cung cấp các chức
năng autoscaling [2] nhằm mục đích thêm
vào bớt các tài nguyên cho các container hay
thêm vào nhiều các container với chức năng
tương tự nhằm mục giảm tải trên các
container khi những tham số giám sát tài
nguyên phần cứng (RAM, CPU) bị sử dụng Hình 1. Kiến trúc K8s
quá giới hạn.
2. PHƯƠNG PHÁP NGHIÊN CỨU
Hiện tại có hai phương pháp chính được
sử dụng nhằm thực hiện tính năng Kiến trúc của một cụm K8s được trình bày
autoscaling trên K8s đó là autoscaling theo trong Hình 1. Một cụm K8s bao gồm một nốt
chiều dọc và autoscaling theo chiều ngang. master và nhiều nốt worker. Nốt worker bao
Autoscaling theo chiều ngang [3] tức là tăng gồm Docker dùng để khởi tạo các container.
hoặc giảm số lượng PoD (point of Một app trên K8s được triển khai thành các
deployment) nhằm mục đích giảm tải trên PoD và mỗi một PoD bao gồm nhiều các
các container trong PoD. Autoscaling theo container. Nốt master chứa các bộ controller
chiều dọc [4] là tăng hoặc giảm tài nguyên và scheduler để thực hiện việc triển khai app
của các PoD. Mỗi giải pháp này đều được trên cụm k8s và thực hiện các thuật toán
thực hiện dựa trên việc theo dõi các thông số autoscaling khi quá tải.
128
- Tuyển tập Hội nghị Khoa học thường niên năm 2021. ISBN: 978-604-82-5957-0
CPU
Đối với autoscaling ngang, khối controller and RAM Nếu node vẫn thỏa Y
Sử dụng VPA cho
sẽ lấy thông tin theo dõi tài nguyên từ Metric Metric server của nodes mãn điều kiện tài
PoD trên node đó
nguyên
server so sánh với mức ngưỡng cho phép của
N
những thông số này và ra quyết định thay đổi
số lượng PoD tương ứng. Ví dụ tài nguyên Network
Chọn node có
Network đường đi ngắn
theo dõi là mức độ sử dụng CPU. Số lượng controller
topo,
topo, nhất tới node chứ
băng thông
băng thông
PoD được tính toán theo công thức sau. Số PoD hiện tại
lượng PoD = (Tổng số tài nguyên CPU đã sử N
dụng trên tất cả PoD) / (Mức ngưỡng sử dụng Kiểm tra tài Y
nguyên của node Dùng HPA triển
tài nguyên CPU trên một PoD). có thỏa mãn yêu khai PoD
cầu
Đối với autoscaling dọc, khối controller
dựa vào thông tin đặc tả của PoD và theo dõi Hình 2. Thuật toán autoscaling hỗn hợp
quá trình sử dụng tài nguyên của PoD thông
qua metric server. Khối này sẽ đưa ra những 3. KẾT QUẢ NGHIÊN CỨU
đề xuất về CPU và RAM theo yêu cầu thực tế Yêu cầu gửi tới
các dịch vụ trên
sử dụng của PoD. Những đề xuất này sẽ các PoD
được controller thực hiện bằng cách viết lại
các đặc tả của PoD. BW
Giải pháp autoscaling hỗn hợp được đề
xuất kết hợp các ưu điểm của cả autoscaling Số tầng mạng N
ngang và autoscaling dọc. Giải pháp BW_syn
autoscaling hỗn hợp cần thu thập dữ liệu bao
gồm việc sử dụng tài nguyên của các PoD và
tài nguyên còn lại của các nốt phần cứng.
Một thành phần được thêm vào đó là network
controller. Network controller sẽ thu thập các Hình 3. Mô hình mạng dùng
thông tin liên quan đến đường link kết nối để triển khai cụm K8s
giữa các PoD bao gồm chi phí mạng cho kết Ở đây ta sẽ sử dụng tham số băng thông
nối giữa các PoD. Thuật toán lựa chọn tiêu thụ để so sánh từng giải pháp
autoscaling sẽ tiến hành kiểm tra tài nguyên autoscaling. Ta sẽ tính toán băng thông tiêu
CPU và RAM còn lại trên mỗi nốt, khi đó thụ của từng giải pháp: giải pháp hỗn hợp,
nếu PoD sử dụng quá ngưỡng CPU và RAM autoscaling dọc và autoscaling ngang hiện tại
cho phép mà tài nguyên node phần cứng vẫn sử dụng mô hình tính toán. Topo mạng hình
có thể cho phép. VPA sẽ được chọn để thực cây như Hình 3 là mô hình mạng điển hình
hiện việc mở rộng tài nguyên cho PoD trên khi triển khai cụm K8s. Ta giả sử N là số
nốt phần cứng vẫn còn dư tài nguyên. Còn tầng của mạng hình cây, M c , M d là số lượng
khi tài nguyên trên nốt phần cứng hiện tại PoD hiện tại đang được triển khai trên các
không còn đủ thì phương án HPA sẽ được nốt và số lượng PoD sẽ được triển khai khi
lựa chọn. Network controller sẽ cung cấp thực hiện chức năng autoscaling. R là số
thông tin về tài nguyên mạng cần khi triển lượng yêu cầu tới từng PoD. BWsyn , BWreq là
khai PoD ở trên một nốt phần cứng khác. băng thông tiêu thụ do việc đồng bộ trạng
Dựa trên thông số này PoD mới được sinh ra thái giữa các PoD đang được triển khai và
sẽ được triển khai gần với các PoD cũ nhằm PoD sắp được triển khai và băng thông chiếm
mục đích giảm thiểu chi phí mạng. Thuật dụng do gửi yêu cầu tới các PoD trên từng
toán được trình bày ở Hình 2. đường link kết nối các switch.
129
- Tuyển tập Hội nghị Khoa học thường niên năm 2021. ISBN: 978-604-82-5957-0
Do phương pháp đề xuất sử dụng thuật Giải pháp hỗn hợp kết hợp sử dụng
toán tìm đường ngắn nhất đến các PoD cũ phương pháp autoscaling ngang nên sẽ tối ưu
nên trên mô hình cây, server được chọn để hơn về thời gian tiến hành do chỉ việc triển
đặt PoD mới luôn có xu hướng kết nối với khai PoD mới đồng thời sử dụng thuật toán
switch có kết nối trực tiếp với server chứa tìm đường ngắn nhất để tìm những server có
PoD cũ. Băng thông tiêu thụ từng giải pháp đường kết nối ngắn nhất tới các PoD hiện tại
có thể tính một cách gần đúng như sau: nên sẽ tối ưu hơn về mặt băng thông tiêu thụ
BWHPA ( M c M d ) * N * R * BWreq 2* N * R * BWsyn so với phương pháp autoscaling ngang hiện
BWVPA ( M c M d ) * N * R * BWreq tại như kết quả thu được trên hình 4 và 5 khi
BWPr oposed ( M c M d ) * N * R * BWreq 2* R * BWsyn ta thay đổi số lượng yêu cầu và số tầng mạng.
Ta sẽ thay đổi số lượng yêu cầu tới các 4. KẾT LUẬN
PoD và số tầng của mạng để đánh giá băng
thông tiêu thụ của từng giải pháp autoscaling. Bằng kết quả phân tích thu được ta thấy, giải
pháp hỗn hợp sẽ tối ưu hơn về mặt băng
thông sử dụng so với các giải pháp HPA
thông thường đồng thời có thời gian
autoscaling tốt hơn các giải pháp VPA.
5. TÀI LIỆU THAM KHẢO
[1] Kubernetes, kiến trúc của K8s,
https://kubernetes.io/.
[2] Brandon T., Ruth G., Cloud computing with
K8s cluster elastic scaling, Proceedings of
Hình 4. Băng thông sử dụng vs số tầng the 3rd International Conference on Future
của topo mạng Networks and Distributed Systems, July
Từ Hình 4 và 5, băng thông tiêu thụ của 2019.
[3] Horizontal PoD Autoscaler
giải pháp autoscaling dọc luôn nhỏ hơn so
https://kubernetes.io/docs/tasks/run-
với giải pháp đề xuất và autoscaling ngang. application/horizontal-pod-autoscale/.
Tuy nhiên giải pháp autoscaling dọc có [4] Vertical PoD Autoscaler,
nhược điểm lớn là thời gian tiến hành lâu do https://cloud.google.com/kubernetes-
quá trình tắt bật lại các PoD khi thực hiện. engine/docs/concepts/verticalpodautoscaler.
Hình 5. Băng thông sử dụng vs
số lượng yêu cầu
130
nguon tai.lieu . vn