Tải bản đầy đủ (.pdf) (3 trang)

Giải pháp autoscaling hỗn hợp cho nền tảng cloud kubernetes

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (256.13 KB, 3 trang )

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:

1. GIỚI THIỆU CHUNG

Container là một nền tảng ảo hóa đang thu
hút nhiều sự quan tâm của giới học thuật và
cơng nghiệp. Thay vì ảo hóa phần cứng và hệ
điều hành như máy ảo, container chỉ đóng gói
những thành phần cần thiết để chạy ứng dụng
như các thư viện, file bin, và hệ thống file.
Container mang đến nhiều lợi ích so với máy
ảo : như rất nhẹ có thể được khởi động và
dừng rất nhanh chóng thay vì q 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
quá giới hạn.
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
autoscaling trên K8s đó là autoscaling theo
chiều dọc và autoscaling theo chiều ngang.
Autoscaling theo chiều ngang [3] tức là tăng
hoặc giảm số lượng PoD (point of
deployment) nhằm mục đích giảm tải trên
các container trong PoD. Autoscaling theo
chiều dọc [4] là tăng hoặc giảm tài nguyên
của các PoD. Mỗi giải pháp này đều được
thực hiện dựa trên việc theo dõi các thông số

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
hiện chỉ dựa vào một trong các thông số về
tài nguyên và một phương pháp autoscaling.
Trong nghiên cứu này, một phương pháp
autoscaling dựa trên nhiều thông số tài
nguyên và sự linh hoạt chọn lựa phương
pháp autoscaling được trình bày nhằm tối ưu
hóa tài ngun sử dụng nhưng vẫn có thể
đảm bảo yêu cầu giảm tải trên các container.

Hình 1. Kiến trúc K8s
2. PHƯƠNG PHÁP NGHIÊN CỨU

Kiến trúc của một cụm K8s được trình bày

trong Hình 1. Một cụm K8s bao gồm một nốt
master và nhiều nốt worker. Nốt worker bao
gồm Docker dùng để khởi tạo các container.
Một app trên K8s được triển khai thành các
PoD và mỗi một PoD bao gồm nhiều các
container. Nốt master chứa các bộ controller
và scheduler để thực hiện việc triển khai app
trên cụm k8s và thực hiện các thuật toán
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

Đối với autoscaling ngang, khối controller
sẽ lấy thông tin theo dõi tài nguyên từ Metric
server so sánh với mức ngưỡng cho phép của
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
theo dõi là mức độ sử dụng CPU. Số lượng
PoD được tính tốn theo cơng thức sau. Số
lượng PoD = (Tổng số tài nguyên CPU đã sử
dụng trên tất cả PoD) / (Mức ngưỡng sử dụng
tài nguyên CPU trên một PoD).
Đố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
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
đề xuất về CPU và RAM theo yêu cầu thực tế

sử dụng của PoD. Những đề xuất này sẽ
được controller thực hiện bằng cách viết lại
các đặc tả của PoD.
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
ngang và autoscaling dọc. Giải pháp
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
thơng tin liên quan đến đường link kết nối
giữa các PoD bao gồm chi phí mạng cho kết
nối giữa các PoD. Thuật toán lựa chọn
autoscaling sẽ tiến hành kiểm tra tài nguyên
CPU và RAM cịn lại trên mỗi nốt, khi đó
nếu PoD sử dụng quá ngưỡng CPU và RAM
cho phép mà tài nguyên node phần cứng vẫn
có thể cho phép. VPA sẽ được chọn để thực
hiện việc mở rộng tài nguyên cho PoD trên
nốt phần cứng vẫn còn dư tài nguyên. Còn
khi tài ngun trên nốt phần cứng hiện tại
khơng cịn đủ thì phương án HPA sẽ được
lựa chọn. Network controller sẽ cung cấp
thông tin về tài nguyên mạng cần khi triển
khai PoD ở trên một nốt phần cứng khác.
Dựa trên thông số này PoD mới được sinh ra
sẽ được triển khai gần với các PoD cũ nhằm
mục đích giảm thiểu chi phí mạng. Thuật
tốn được trình bày ở Hình 2.


Metric server

CPU
and RAM Nếu node vẫn thỏa
của nodes mãn điều kiện tài
nguyên

Y

Sử dụng VPA cho
PoD trên node đó

N

Network
controller

Chọn node có
Network
đường đi ngắn
topo,
topo,
nhất tới node chứ
băng thơng
thơng
băng
PoD hiện tại
N
Kiểm tra tài

ngun của node
có thỏa mãn u
cầu

Y
Dùng HPA triển
khai PoD

Hình 2. Thuật tốn autoscaling hỗn hợp
3. KẾT QUẢ NGHIÊN CỨU
Yêu cầu gửi tới
các dịch vụ trên
các PoD

BW

Số tầng mạng N
BW_syn

Hình 3. Mơ hình mạng dùng
để triển khai cụm K8s
Ở đây ta sẽ sử dụng tham số băng thông
tiêu thụ để so sánh từng giải pháp
autoscaling. Ta sẽ tính tốn băng thơng tiêu
thụ của từng giải pháp: giải pháp hỗn hợp,
autoscaling dọc và autoscaling ngang hiện tại
sử dụng mơ hình tính tốn. Topo mạng hình
cây như Hình 3 là mơ hình mạng điển hình
khi triển khai cụm K8s. Ta giả sử N là số
tầng của mạng hình cây, M c , M d là số lượng

PoD hiện tại đang được triển khai trên các
nốt và số lượng PoD sẽ được triển khai khi
thực hiện chức năng autoscaling. R là số
lượng yêu cầu tới từng PoD. BWsyn , BWreq là
băng thông tiêu thụ do việc đồng bộ trạng
thái giữa các PoD đang được triển khai và
PoD sắp được triển khai và băng thông chiếm
dụng do gửi yêu cầu tới các PoD trên từng
đườ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
tốn tìm đường ngắn nhất đến các PoD cũ
nên trên mơ hình cây, server được chọn để
đặt PoD mới ln có xu hướng kết nối với
switch có kết nối trực tiếp với server chứa
PoD cũ. Băng thơng tiêu thụ từng giải pháp
có thể tính một cách gần đúng như sau:
BWHPA  ( M c  M d ) * N * R * BWreq  2* N * R * BWsyn
BWVPA  ( M c  M d ) * N * R * BWreq
BWPr oposed  ( M c  M d ) * N * R * BWreq  2* R * BWsyn

Ta sẽ thay đổi số lượng yêu cầu tới các
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.


Giải pháp hỗn hợp kết hợp sử dụng
phương pháp autoscaling ngang nên sẽ tối ưu
hơn về thời gian tiến hành do chỉ việc triển
khai PoD mới đồng thời sử dụng thuật tốn
tìm đường ngắn nhất để tìm những server có
đường kết nối ngắn nhất tới các PoD hiện tại
nên sẽ tối ưu hơn về mặt băng thông tiêu thụ
so với phương pháp autoscaling ngang hiện
tại như kết quả thu được trên hình 4 và 5 khi
ta thay đổi số lượng yêu cầu và số tầng mạng.
4. KẾT LUẬN

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]

Hình 4. Băng thơng sử dụng vs số tầng
của topo mạng
Từ Hình 4 và 5, băng thông tiêu thụ của
giải pháp autoscaling dọc luôn nhỏ hơn so
với giải pháp đề xuất và autoscaling ngang.
Tuy nhiên giải pháp autoscaling dọc có
nhược điểm lớn là thời gian tiến hành lâu do
quá trình tắt bật lại các PoD khi thực hiện.

Kubernetes, kiến trúc của K8s,

/>[2] Brandon T., Ruth G., Cloud computing with
K8s cluster elastic scaling, Proceedings of
the 3rd International Conference on Future
Networks and Distributed Systems, July
2019.
[3] Horizontal PoD Autoscaler
/>[4] Vertical PoD Autoscaler,
/>
Hình 5. Băng thơng sử dụng vs
số lượng yêu cầu

130



×