Hiện nay, đối với Big Data và Machine Learning (AI/ML), Kubernetes đã và đang nổi lên như một nền tảng phổ biến để chạy Data Workload. Đây là một nền tảng nguồn mở, khả chuyển, có thể mở rộng để quản lý các ứng dụng được đóng gói và các dịch vụ, giúp cấu hình dễ và tự động hóa việc triển khai ứng dụng dễ dàng hơn.
Chính vì vậy, Kubernetes cung cấp tính linh hoạt trong việc truyền và lưu trữ dữ liệu giữa các môi trường khác nhau, chẳng hạn như trung tâm dữ liệu tại chỗ, đám mây công cộng hay vị trí biên. Đồng thời, nền tảng này cung cấp một môi trường thống nhất để quản lý cả ứng dụng giúp dễ dàng chạy nhiều loại Data Workload. Đặc biệt, Kubernetes hỗ trợ đa dạng Framework như Spark, Flink, PyTorch, TensorFlow,...và cho phép xử lý các công việc về dữ liệu cũng như sắp xếp các quy trình ML trên nền tảng đám mây hoặc tại chỗ dễ dàng hơn.
Nội dung bài viết:
1- DoEKS là gì?
2- Một số trường hợp cụ thể người dùng có thể dùng DoEKS
Với nhiều người dùng sử dụng Amazon Elastic Container Service cho Kubernetes (Amazon EKS) cho nền tảng dữ liệu. Mục đích của các nền tảng dữ liệu này là đơn giản hóa việc xử lý và phân tích dữ liệu để trích xuất những thông tin có giá trị mang lại lợi thế cạnh tranh và nâng cao trải nghiệm của người dùng.
Tuy nhiên, việc triển khai và mở rộng Data Workload trên Kubernetes vẫn là một thách thức đối với nhiều người dùng bởi khả năng tích hợp và tương thích khác nhau trên các nền tảng hiện tại có thể gây khó dễ cho người dùng trong việc lựa chọn và triển khai các giải pháp cho nền tảng Kubernetes của mình.
Để giải quyết bài toán này, công cụ Data on EKS (DoEKS) ra đời để đơn giản hóa và đẩy nhanh quá trình xây dựng, triển khai và thay đổi quy mô Data Workload trên Amazon EKS. Chính vì thế, bài viết chuyên sâu mà CMC Telecom cung cấp dưới đây sẽ giúp bạn hiểu hơn về DoEKS và cách giải quyết được bài toàn lưu trữ - quản lý dữ liệu của mình.
DoEKS là gì?
Data on EKS (DoEKS) là một dự án mã nguồn mở được phát triển nhằm giải quyết bài toán hợp lý hóa và đẩy nhanh quá trình xây dựng, triển khai và thay đổi quy mô Data Workload trên Amazon Elastic Kubernetes Service (Amazon EKS). Có thể nói DoEKS là sự kế thừa của dự án Amazon EKS Blueprints, bao gồm các hướng dẫn và công cụ hỗ trợ và các công việc liên quan đến dữ liệu trên Kubernetes.
Khi triển khai DoEKS, bạn có quyền truy cập vào các tài nguyên bao gồm các mẫu cơ sở hạ tầng dưới dạng mã (Infrastructure as Code - IaC), báo cáo điểm chuẩn hiệu năng, ví dụ triển khai và kiến trúc được tối ưu hóa cho khối lượng công việc tập trung vào dữ liệu phù hợp với các biện pháp thực hành tốt nhất của AWS và chuyên môn trong ngành. Điều này có nghĩa là bạn có thể nhanh chóng và dễ dàng cung cấp các khung dữ liệu nguồn mở phổ biến (ví dụ: Apache Spark, Ray, Apache Airflow, Argo Workflows và Kubeflow) để chạy trên Amazon EKS. Ngoài ra, các lĩnh vực trọng tâm của DoEKS bao gồm các nền tảng phát trực tuyến phân tán, công cụ truy vấn và cơ sở dữ liệu để đáp ứng nhu cầu xử lý dữ liệu ngày càng tăng.
Với thế mạnh là một dịch vụ được tạo bằng các dịch vụ AWS được quản lý và các công cụ mã nguồn mở phổ biến, DoEKS Bluesprint cung cấp cho người sử dụng sự linh hoạt trong việc lựa chọn giữa các thành phần được quản lý và tự quản lý sao cho phù hợp với nhu cầu của bạn.
Bên cạnh đó, người dùng cũng có thể lựa chọn tích hợp với các dịch vụ sẵn có của AWS như Amazon Managed Streaming cho Apache Kafka (Amazon MSK) để nhập dữ liệu hoặc Amazon EMR để xử lý hàng loạt, nhằm giảm tải một số công việc nặng trong quy trình làm việc của mình.
Tuy vậy, DoEKS vẫn tập trung vào một nhiệm vụ chính đó là hỗ trợ người dùng chạy Spark trên Amazon EKS. Do đó, người dùng sẽ không cần phải bận tâm các vấn đề về hạ tầng như loại lưu trữ là gì, sử dụng máy ảo nào phù hợp, kết nối làm sao... Tất cả sẽ không còn là nỗi lo bởi DoEKS hỗ trợ được tất cả vì nó sẽ cung cấp cho người dùng các bản thiết kế có sẳn các cấu hình dựa trên các Best practice của AWS.
Kiến trúc DoEKS
Một số trường hợp cụ thể người dùng có thể dùng DoEKS:
· Amazon Manged Workflows for Apache Airflow (MWAA)
Trong bài viết này để hiểu rõ hơn cách thức DoEKS hoạt động, chúng ta cùng xem qua một ví dụ đơn giản về việc triển khai EMR trên EKS với Karrpernter AutoScaler và bộ thiết lập lịch hàng loạt Apache YuniKorn cũng như giám sát các chỉ số công việc bằng Amazon Managed Prometheus và Amazon Managed Grafana.
Để bắt đầu, bạn cần chuẩn phần tài nguyên, bao gồm:
Tạo một EKS Cluster Control plane với public endpoint
Một managed node group
Core Node group với 3 instances cấu hình multi-AZs để chạy các pod quan trọng (Ví dụ: Cluster Autoscaler, CoreDNS, Observability, Logging etc.)
Enables EMR on EKS
Khởi tạo 2 namespaces (emr-data-team-a, emr-data-team-b) cho nhóm dữ liệu
Tạo Kubernetes role and role binding(emr-containers user) cho cả 2 namespaces
Tạo IAM roles cho cả 2 teams
Cập nhật AWS_AUTH config map với người dùng emr-containers and AWSServiceRoleForAmazonEMRContainers role
Tạo một trust relationship giữ execution role và the identity of the EMR managed service account
Tạo EMR Virtual Cluster cho cả 2 namespaces
Get tài nguyên
git clone https://github.com/awslabs/data-on-eks.git |
Điều hướng đến thư mục demo
cd data-on-eks/analytics/terraform/emr-eks-karpenter terraform init |
Cấu hình Region
export AWS_REGION="us-west-2" # set AWS region terraform plan terraform apply –auto-approve |
Thực hiện xác thực tài nguyên
aws eks describe-cluster —name emr-eks-karpenter aws amp list-workspaces —alias amp-ws-emr-eks-karpenter |
Xác minh EMR trên không gian tên EKS và trạng thái Pod cho , và .emr-data-team-aemr-data-team-bPrometheusVertical Pod AutoscalerMetrics ServerCluster Autoscaler
aws eks --region us-west-2 update-kubeconfig --name emr-eks-karpenter # Creates k8s config file to authenticate with EKS Cluster
kubectl get nodes # Output shows the EKS Managed Node group nodes
kubectl get ns | grep emr-data-team # Output shows emr-data-team-a and emr-data-team-b namespaces for data teams
kubectl get pods --namespace=prometheus # Output shows Prometheus server and Node exporter pods
kubectl get pods --namespace=vpa # Output shows Vertical Pod Autoscaler pods
kubectl get pods --namespace=kube-system | grep metrics-server # Output shows Metric Server pod
kubectl get pods --namespace=kube-system | grep cluster-autoscaler # Output shows Cluster Autoscaler pod |
Tiến hành tạo vùng lưu trữ S3
cd data-on-eks/analytics/terraform/emr-eks-karpenter/examples/nvme-ssd/karpenter-compute-provisioner/
Enter the EMR Virtual Cluster ID: "<EMR_VIRTUAL_CLUSTER_NAME>" Enter the EMR Execution Role ARN: "<EMR_JOB_EXECUTION_ROLE_ARN>" Enter the CloudWatch Log Group name: /emr-on-eks-logs/emr-eks-karpenter/emr-data-team-a Enter the S3 Bucket for storing PySpark Scripts, Pod Templates and Input data. For e.g., s3:// <bucket-name>: s3://example-bucket |
Mặc định, Apache Yunikorn Secheduler add-on sẽ bị tắt. Vì thế để sử dụng bạn cần bât tính năng này bằng cách chỉnh trong file analytics/terraform/emr-eks-karpenter/variables.tf
variable "enable_yunikorn" { default = true description = "Enable Apache YuniKorn Scheduler" type = bool } |
Tiến hành Execute lại terraform
terraform apply -auto-approve |
Khởi chạy Apache YuniKorn Gang Scheduling với Karpenter Autoscaler
cd analytics/terraform/emr-eks-karpenter/examples/nvme-ssd/karpenter-yunikorn-gangscheduling |
Kiểm tra lại
kubectl get pods --namespace=emr-data-team-a -w |
Sau khi hoàn tất, bạn cần xóa tài nguyên để không phát sinh chi phí.
CMC Telecom hy vọng bài viết này sẽ giúp bạn khám phá được thêm nhiều tiện ích trong quá trình triển khai dự án. Chúc bạn có những trải nghiệm tuyệt vời và sáng tạo với DoEKS.
Tài liệu tham khảo:
https://kubernetes.io/vi/docs/concepts/overview/what-is-kubernetes/
EMR trên EKS với [Karpenter](https://karpenter.sh/) | Dữ liệu trên EKS (awslabs.github.io)
Category : Storage
Ngân hàng SHB lựa chọn CMC Telecom là đối tác dịch chuyển ứng dụng quản lý quan hệ khách hàng (SAP CRM) lên nền tảng đám mây AWS (AWS Cloud). Việc dịch chuyển này nhằm giúp SHB có thể phục vụ khách hàng tốt hơn, tăng cường bảo vệ thông tin khách hàng và tối ưu chi phí của mình.
Khám phá ngayCMC Telecom, đối tác cấp cao của AWS, vừa công bố ra mắt giải pháp CMC SecureZone trong sự kiện AWS Cloud Day tổ chức đầu tháng 4 tại Hà Nội. CMC SecureZone giúp khởi tạo môi trường AWS Landing Zone an toàn, tuân thủ cho doanh nghiệp khi di chuyển lên đám mây AWS.
Khám phá ngayNgày 6/4, trong sự kiện lớn nhất năm của AWS tại Việt Nam, CMC Telecom đã công bố 2 giải pháp Cloud “made by CMC” giúp doanh nghiệp dịch chuyển lên Cloud an toàn và quản lý chi phí Cloud hiệu quả.
Khám phá ngay