Giới Thiệu
Trong bối cảnh các tổ chức đang tìm cách tối ưu hóa và mở rộng quy mô các tải công AI/ML, Kubernetes đã trở thành một lựa chọn hàng đầu nhờ vào tính linh hoạt và khả năng quản lý mạnh mẽ. Amazon EKS, với môi trường Kubernetes được quản lý, giúp đơn giản hóa nhiều phức tạp cơ sở hạ tầng. Mô hình "AI trên EKS" của AWS cung cấp kiến trúc tham khảo toàn diện và các mẫu hạ tầng dưới dạng mã (infrastructure-as-code) để giúp các nhóm triển khai và quản lý các tải công này một cách hiệu quả.
Tuy nhiên, khi các tổ chức phát triển và yêu cầu của họ thay đổi, nhu cầu về tự động hóa, quản lý và hỗ trợ nhiều nhóm làm việc trở nên rõ ràng hơn. Mục tiêu chính của chúng tôi là tận dụng nền tảng được xây dựng bởi các chuyên gia và biến nó thành một giải pháp dễ tiếp cận cho các nhóm nội bộ. Chúng tôi đã đạt được điều này bằng cách chuyển đổi ngăn xếp Terraform AI trên EKS thành các Mẫu Tài Nguyên và Mẫu Môi Trường của Rafay. Công việc này cho phép triển khai các ngăn xếp AI/ML phức tạp một cách có thể mở rộng, nhất quán và tái sử dụng, biến một kiến trúc mạnh mẽ thành khả năng tự phục vụ cho các nhà phát triển trong tổ chức.
AI trên EKS là gì?
AI trên EKS là một giải pháp được thiết kế bởi AWS nhằm đơn giản hóa việc chạy các tải công AI/ML có thể mở rộng trên Amazon EKS. Nó cung cấp các thành phần đã được cấu hình sẵn và các thực hành tốt nhất, giải quyết các thách thức thường gặp như:
- Cung Cấp Hạ Tầng: Tự động hóa việc thiết lập các tài nguyên cần thiết (tính toán, lưu trữ, mạng).
- Quản Lý Công Việc: Tổ chức và lập lịch các công việc đào tạo và suy diễn.
- Quản Lý Tài Nguyên: Phân bổ và sử dụng tài nguyên một cách hiệu quả.
- Giám Sát và Ghi Nhận: Theo dõi hiệu suất và tình trạng của các tải công.
Giải pháp AI trên EKS bao gồm mã Terraform cho phép người dùng định nghĩa và cung cấp hạ tầng cần thiết dưới dạng mã, đảm bảo tính nhất quán và khả năng tái sử dụng.
Mặc dù mô hình AI trên EKS cung cấp một nền tảng vững chắc để triển khai hạ tầng AI/ML có thể mở rộng trên AWS, việc quản lý các môi trường này qua nhiều nhóm và dự án vẫn có thể gặp phải thách thức về hoạt động. Đây là lúc nền tảng Rafay phát huy tác dụng. Bằng cách chuyển đổi mã Terraform AI trên EKS thành các Mẫu Tài Nguyên và Mẫu Môi Trường của Rafay, các tổ chức có thể đạt được mức độ tự động hóa, chuẩn hóa và khả năng tự phục vụ cao hơn. Các phần tiếp theo sẽ chi tiết cách Rafay mở rộng và phát triển khả năng của mô hình AI trên EKS, giúp quản lý các môi trường AI/ML phức tạp một cách dễ dàng hơn.
Phân Tích Kỹ Thuật về Hạ Tầng AI trên EKS
Hạ tầng AI trên EKS, được thực hiện bằng cách sử dụng các mẫu Rafay, được cấu trúc thành các giai đoạn khác nhau, mỗi giai đoạn xây dựng dựa trên giai đoạn trước:
-
Mạng: Lớp cơ bản này thiết lập môi trường mạng cho cụm EKS. Các khía cạnh chính bao gồm:
- VPC: Một Đám Mây Riêng Ảo (VPC) chuyên dụng để cách ly cụm EKS và các tài nguyên của nó.
- Subnet: Các subnet công cộng và riêng tư được cấu hình trên các Khu Vực Khả Dụng (AZs) có sẵn trong khu vực AWS đã chọn.
- Bảng Định Tuyến: Điều khiển luồng lưu lượng mạng trong VPC và đến các mạng bên ngoài.
- Nhóm Bảo Mật: Các quy tắc tường lửa kiểm soát lưu lượng đến và đi. Các quy tắc cụ thể được quản lý bởi mô-đun EKS, với các quy tắc bổ sung cho phép tất cả lưu lượng giữa các nút trên các cổng tạm thời và từ API cụm đến các nhóm nút.
-
Cụm EKS: Giai đoạn này cung cấp cụm EKS, sử dụng các thành phần mạng được định nghĩa trước đó. Các cấu hình quan trọng bao gồm:
- Phiên Bản Kubernetes: Biến eks_cluster_version xác định phiên bản Kubernetes cho cụm.
- Cấu Hình Plane Điều Khiển: Cài đặt cho plane điều khiển EKS, chẳng hạn như cấu hình ghi nhật ký và kiểm toán.
- Nhóm Nút: Định nghĩa các tài nguyên tính toán cho cụm, bao gồm:
- Nhóm Nút Cơ Bản: Một nhóm nút được quản lý có tên "core-node-group" được tạo để lưu trữ các addon hệ thống thiết yếu. Nó sử dụng loại AMI AL2023_x86_64_STANDARD, các loại phiên bản được xác định bởi biến core_node_instance_types, và có kích thước có thể cấu hình được kiểm soát bởi core_node_min_size, core_node_max_size và core_node_desired_size. Nó bao gồm một dấu hiệu để đảm bảo chỉ các addon quan trọng chạy trên các nút này.
- Nhóm Nút Mục Đích Chung: Một nhóm nút được quản lý có tên "general-purpose-group" cho các tải công chung và các tác nhân bên thứ ba. Nó sử dụng AMI AL2023_x86_64_STANDARD, các loại phiên bản t3.xlarge và có kích thước có thể cấu hình được kiểm soát bởi min_size = 1, max_size = 2, và desired_size = 1.
- Vai Trò IAM: Hai vai trò IAM được tạo cho CloudWatch Observability và EBS CSI Driver, cho phép cụm tương tác với các dịch vụ AWS này.
-
Addons: Lớp này cài đặt các công cụ và thành phần bổ sung để nâng cao chức năng của cụm EKS, đặc biệt cho các tải công AI/ML. Ví dụ bao gồm:
- Addons Cơ Bản (EKS Blueprints): Mô-đun này cài đặt các addon cơ bản bằng cách sử dụng mô-đun eks-blueprints-addons. Các addon này bao gồm:
- AWS Load Balancer Controller: Cho phép quản lý các bộ cân bằng tải AWS cho các dịch vụ Kubernetes.
- AWS EFS CSI Driver: Cho phép các pod Kubernetes truy cập và sử dụng các khối lượng AWS Elastic File System (EFS).
- Ingress NGINX: Một bộ điều khiển ingress quản lý quyền truy cập bên ngoài vào các dịch vụ trong cụm.
- Kube-Prometheus-Stack: Cung cấp giải pháp giám sát hoàn chỉnh với Prometheus cho việc thu thập số liệu, Grafana cho việc trực quan hóa và Alertmanager cho việc cảnh báo.
- Karpenter Controller: Cài đặt bộ điều khiển Karpenter cho việc cấp phát nút động.
- Addons Dữ Liệu & AI (EKS Data Addons): Mô-đun này, sử dụng mô-đun eks-data-addons, cài đặt các công cụ cụ thể cho AI/ML:
- KubeRay Operator: Triển khai bộ điều khiển KubeRay để quản lý các cụm Ray, được cấu hình để sử dụng Volcano cho việc lập lịch.
- Kubecost: Một công cụ để giám sát và quản lý chi phí Kubernetes, được cấu hình để tích hợp với phiên bản Prometheus được cài đặt bởi các addon cơ bản.
- Addons Cơ Bản (EKS Blueprints): Mô-đun này cài đặt các addon cơ bản bằng cách sử dụng mô-đun eks-blueprints-addons. Các addon này bao gồm:
-
Tài Nguyên Karpenter: Tạo ra các tài nguyên Karpenter NodePool và EC2NodeClass mặc định.
- x86-cpu-karpenter: Định nghĩa một NodePool cho các phiên bản x86-64 mục đích chung, cho phép Karpenter cấp phát các phiên bản từ các loại "c", "m", và "r" với thế hệ lớn hơn 4, sử dụng AMI Bottlerocket và một hỗn hợp của năng lực spot và theo yêu cầu.
- g5-gpu-karpenter: Định nghĩa một NodePool cho các phiên bản hỗ trợ GPU, đặc biệt nhắm vào các gia đình phiên bản g5 và g4dn, sử dụng AMI Bottlerocket và năng lực theo yêu cầu. Nó cũng cấu hình các dấu hiệu để đảm bảo chỉ các pod cần GPU được lập lịch trên các nút này.
-
Lưu Trữ: Cấu hình gp3 là lớp lưu trữ mặc định, vô hiệu hóa gp2.
Cách tiếp cận theo lớp này, được quản lý thông qua các mẫu Rafay, đảm bảo quy trình triển khai có thể mở rộng, nhất quán và có thể tái sử dụng cho các tải công AI/ML trên EKS.
Nền Tảng Rafay
Nền tảng Rafay đơn giản hóa việc quản lý ứng dụng và môi trường Kubernetes, cung cấp các tính năng như kiểm soát tập trung, định nghĩa môi trường nhất quán và quản lý vòng đời ứng dụng dễ dàng. Nó đạt được điều này thông qua các Mẫu Tài Nguyên có thể tái sử dụng (định nghĩa các tài nguyên Kubernetes) và các Mẫu Môi Trường (định nghĩa các môi trường hoàn chỉnh), đảm bảo tính nhất quán trong việc triển khai.
Biến Đổi AI trên EKS với Các Mẫu Rafay
Bằng cách chuyển đổi mã Terraform AI trên EKS thành các Mẫu Tài Nguyên và Mẫu Môi Trường Rafay, chúng tôi có thể đạt được những lợi ích sau:
- Triển Khai Đơn Giản: Các mẫu Rafay cho phép triển khai tự phục vụ của ngăn xếp AI trên EKS. Người dùng chọn một Mẫu Môi Trường, cấu hình các tham số và Rafay tự động hóa việc cung cấp hạ tầng và triển khai các thành phần AI/ML.
- Khả Năng Mở Rộng Cải Thiện: Quản lý tập trung của Rafay tạo điều kiện cho việc mở rộng các tải công AI/ML qua các cụm và khu vực.
- Quản Lý Tốt Hơn: Các mẫu cho phép thực thi chính sách cho sự tuân thủ và bảo mật.
- Tận Dụng Kiến Trúc Đã Được Thiết Lập: Cách tiếp cận này cho phép chúng tôi tích hợp các kiến trúc và thực hành tốt nhất chính thức và nguồn mở vào quy trình làm việc của chúng tôi, tránh việc tái tạo không cần thiết.
Điều này giúp các nhóm:
- Cung Cấp Tự Phục Vụ: Các nhà phát triển có thể tự mình cung cấp và quản lý các môi trường AI/ML mà không cần thiết lập hạ tầng thủ công.
- Thời Gian Onboarding Nhanh Hơn: Các nhóm mới có thể nhanh chóng tham gia và triển khai các tải công AI/ML bằng cách sử dụng các mẫu đã được định nghĩa và nhất quán.
- Giảm Tải Quản Lý: Nền tảng Rafay xử lý phần lớn việc quản lý hạ tầng, giúp các nhà phát triển tập trung vào việc xây dựng và cải thiện các mô hình AI/ML.
Kết Luận
Việc chuyển đổi ngăn xếp Terraform AI trên EKS thành các Mẫu Tài Nguyên và Mẫu Môi Trường của Rafay đã đơn giản hóa việc triển khai và quản lý các tải công AI/ML, cho phép các tổ chức mở rộng các sáng kiến AI của họ một cách hiệu quả hơn và trao quyền cho các nhóm phát triển thông qua các khả năng tự phục vụ trong nội bộ hoặc hợp tác với các nhóm bên ngoài.