Xem mẫu

  1. 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
  2. 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
  3. 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