NHỮNG TIỆN ÍCH BẤT NGỜ KHI LƯU TRỮ VÀ QUẢN LÝ DATA TRÊN EKS VỚI DoEKS

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:

·        EMR on EKS with Karpenter

·        Spark Operator on EKS

·        Ray on EKS

·        Amazon Manged Workflows for Apache Airflow (MWAA)

·        Self-managed Airflow on EKS

·        Argo Workflows on EKS

·        Kafka on EKS

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/
./execute_emr_eks_job.sh

 

 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
./execute_emr_eks_job.sh

  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:

  1. https://kubernetes.io/vi/docs/concepts/overview/what-is-kubernetes/

  2. EMR trên EKS với [Karpenter](https://karpenter.sh/) | Dữ liệu trên EKS (awslabs.github.io)

  3. GitHub - awslabs/data-on-eks: DoEKS is a tool to build, deploy and scale Data Platforms on Amazon EKS

Category : Storage
Các tin khác
CMC TELECOM & AWS
CMC Telecom ra mắt CMC SecureZone, giải pháp dịch chuyển lên đám mây an toàn và tuân thủ
CMC Telecom ra mắt CMC SecureZone, giải pháp dịch chuyển lên đám mây an toàn và tuân thủ

CMC 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á ngay
CMC Telecom ra mắt 2 giải pháp đám mây hiện đại tại AWS Cloud Day Vietnam 2023
CMC Telecom ra mắt 2 giải pháp đám mây hiện đại tại AWS Cloud Day Vietnam 2023

Ngà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
AWS Cloud Day 2023 – ngày hội cập nhật công nghệ đám mây mới
AWS Cloud Day 2023 – ngày hội cập nhật công nghệ đám mây mới

Vào 8h30 ngày 6/4 tới đây, hãng công nghệ hàng đầu thế giới AWS sẽ tổ chức AWS Cloud Day Vietnam 2023. Đây là sự kiện lớn nhất năm của AWS tại Việt Nam nhằm giới thiệu các dịch vụ, giải pháp Cloud mới nhất của hãng và của các đối tác AWS.

Khám phá ngay