Thiết kế được xác thực của Dell cho phân tích—Data Lakehouse (3)

Triển khai nền tảng container

Tổng quan về nền tảng container

Nền tảng container trong kiến ​​trúc này là Nền tảng Symcloud , dựa trên Kubernetes . Nền tảng container trừu tượng hóa các chi tiết ở cấp độ máy và các phần phụ thuộc của hệ điều hành máy chủ, hiển thị chúng dưới dạng một nhóm tài nguyên điện toán, lưu trữ và truyền thông. Nó cũng cung cấp khả năng hợp lý hóa việc triển khai, mở rộng quy mô và quản lý vòng đời của khối lượng công việc phân tích. Việc triển khai nền tảng container hỗ trợ tính linh hoạt, linh hoạt và khả năng mở rộng của kiến ​​trúc đồng thời hỗ trợ khối lượng công việc phân tích đa dạng.

Vai trò của Nền tảng Symcloud

Nền tảng Symcloud sử dụng mô hình triển khai dựa trên vai trò. Ba vai trò có thể được gán cho các nút:

  • Giám đốc
  • Tính toán
  • Kho

Các vai trò này có thể được chỉ định cho các nút tùy thuộc vào cấu hình và mục đích sử dụng của chúng. Các vai trò không loại trừ lẫn nhau. Dell Technologies đề xuất các phân công vai trò được hiển thị trong các phân công vai trò Nền tảng Symcloud được đề xuất .

Bảng 14. Phân công vai trò Nền tảng Symcloud được đề xuất
Vai trò nền tảng Symcloud Nút được đề xuất Sự miêu tả
Giám đốc Mặt phẳng điều khiển 1 Vai trò Người quản lý cung cấp các dịch vụ mặt phẳng điều khiển cốt lõi mà cụm yêu cầu. Vai trò Người quản lý có thể được chỉ định cho tối đa ba nút. Việc triển khai có tính sẵn sàng cao yêu cầu ba nút mặt phẳng điều khiển.
Mặt phẳng điều khiển 2
Mặt phẳng điều khiển 3
Tính toán Công nhân 1 Vai trò Điện toán chỉ ra một nút dùng để lưu trữ các nhóm và vùng chứa tương ứng của chúng. Việc triển khai ứng dụng sử dụng tài nguyên bộ nhớ và bộ xử lý từ các nút này.
Công nhân 2
Công nhân 3
Công nhân 4
Công nhân <n>
Kho Công nhân 1 Vai trò Lưu trữ cho biết nút nhằm cung cấp dịch vụ lưu trữ thông qua Bộ lưu trữ Symcloud . Các khối cần thiết cho các ứng dụng đã triển khai được tạo trên các thiết bị từ các nút này.
Công nhân 2
Công nhân 3
Công nhân 4
Công nhân <n>

Hòa âm

Nền tảng này cung cấp khả năng điều phối ứng dụng để hợp lý hóa việc triển khai và quản lý khối lượng công việc phân tích. Trình quản lý quy trình làm việc ứng dụng Symcloud hỗ trợ tự động hóa từ đầu đến cuối và có thể triển khai toàn bộ quy trình ứng dụng một cách liền mạch. Các ứng dụng trên nền tảng phải được đóng gói và chạy trong Kubernetes dưới dạng các thùng chứa bên trong nhóm.

Các ứng dụng được triển khai bằng khung gói ứng dụng Symcloud . Khi sử dụng khung triển khai này, gói ứng dụng sẽ chứa tất cả các tài nguyên cần thiết để triển khai một ứng dụng. Các ứng dụng được triển khai cùng với các gói ứng dụng đều được biết đến trên nền tảng và được tích hợp vào khả năng quản lý và điều phối ứng dụng nâng cao.

Khi một ứng dụng được khởi chạy, bộ lập lịch Symcloud sẽ cung cấp các tài nguyên mạng, lưu trữ và điện toán cần thiết, sau đó khởi động nhóm ứng dụng. Vì nền tảng nhận biết được toàn bộ ứng dụng nên người lập lịch có thể sử dụng các kỹ thuật bố trí nâng cao, bao gồm vị trí dữ liệu, mối quan hệ dữ liệu và nhận thức về cơ sở hạ tầng.

Khi ứng dụng khởi động, nó có thể được quản lý bằng các khả năng quản lý vòng đời của nền tảng, bao gồm: mở rộng quy mô tài nguyên, sao lưu và ảnh chụp nhanh.

Biểu đồ Helm cũng có thể được sử dụng để triển khai các ứng dụng. Sau khi bản phát hành Helm được đăng ký với nền tảng, khả năng quản lý vòng đời sẽ có sẵn cho các ứng dụng sử dụng Symcloud Storage .

Để biết thêm chi tiết về các gói ứng dụng, hãy xem Thiết kế khối lượng công việc.

Người thuê nhà và quản lý tài nguyên

Nền tảng này sử dụng khái niệm người thuê để tổ chức người dùng thành các nhóm. Người thuê nhà có thể được tổ chức theo yêu cầu chức năng hoặc kinh doanh. Tài nguyên hệ thống được chỉ định cho từng đối tượng thuê và các ứng dụng được cài đặt và chạy trong giới hạn tài nguyên của đối tượng thuê. Nhóm tài nguyên được sử dụng để xác định tài nguyên điện toán và lưu trữ có sẵn cho đối tượng thuê. Nhóm IP được sử dụng để xác định các tài nguyên mạng có sẵn.

Ảo hóa

Nền tảng này hỗ trợ Máy ảo dựa trên hạt nhân Linux (KVM) cùng với các ứng dụng được đóng gói. Khả năng này hỗ trợ chạy các khối lượng công việc chưa được đưa vào bộ chứa.

Các gói ứng dụng có thể được tạo để chỉ định các tham số KVM và hình ảnh qcow2 tương ứng mà máy ảo sử dụng. Khi các máy ảo khởi chạy, chúng sẽ được xử lý giống như bất kỳ ứng dụng nào khác trên nền tảng, với đầy đủ các hoạt động quản lý vòng đời có sẵn.

Tính toán

Khi một ứng dụng được khởi chạy, bộ lập lịch Symcloud sẽ cung cấp các nhóm ứng dụng trên các nút có vai trò Điện toán có bộ xử lý và tài nguyên bộ nhớ phù hợp. Nhóm tài nguyên của đối tượng thuê và việc sử dụng hiện tại xác định các tài nguyên có sẵn. Tài nguyên điện toán được phân bổ ở cấp vùng chứa. Gói ứng dụng chỉ định dung lượng bộ nhớ cần thiết và số lượng lõi bộ xử lý cần thiết.

Bộ tăng tốc GPU

Một ứng dụng cũng có thể yêu cầu tài nguyên GPU. Trong trường hợp này, loại GPU nằm trong gói ứng dụng. Tại thời điểm khởi chạy ứng dụng, các yêu cầu về tài nguyên GPU nằm trong quyết định lập lịch. Có thể yêu cầu toàn bộ GPU và tài nguyên GPU đa phiên bản. Nhiều GPU được hỗ trợ và các nút trong cụm có thể có số lượng và kiểu GPU khác nhau. Tài nguyên GPU được phân bổ và dành riêng cho vùng chứa trong suốt thời gian tồn tại của vùng chứa.

Nền tảng này hỗ trợ GPU NVIDIA thông qua trình điều khiển GPU NVIDIA được cài đặt ở cấp hệ điều hành và toán tử GPU NVIDIA cho Kubernetes . Để sử dụng khả năng tăng tốc GPU, hình ảnh ứng dụng cũng phải bao gồm các thư viện hỗ trợ triển khai hỗ trợ GPU ở cấp độ người dùng. Ví dụ: NVIDIA CUDA và Bộ tăng tốc NVIDIA RAPIDS cho Apache Spark .

Kho

Nền tảng này hỗ trợ một số loại lưu trữ khác nhau để lưu trữ tạm thời và liên tục cũng như lưu trữ kho dữ liệu .

Lưu trữ Symcloud

Symcloud Storage là hệ thống lưu trữ được xác định bằng phần mềm hiệu suất cao, có khả năng mở rộng, tương thích với Kubernetes Container Storage Interface (CSI). Nó cung cấp khả năng phục hồi dữ liệu thông qua sao chép và hỗ trợ mã hóa, nén và cung cấp dung lượng mỏng. Symcloud Storage nhận biết ứng dụng và cơ sở hạ tầng, cho phép nó hỗ trợ vị trí dữ liệu, ảnh chụp nhanh và sao lưu cho các ứng dụng chạy trên nền tảng. Bộ nhớ Symcloud được lưu trữ trên các nút có vai trò lưu trữ. Vào thời điểm cài đặt, nó sẽ phát hiện các đĩa có sẵn và gộp chúng lại để cung cấp dung lượng lưu trữ cho các ứng dụng.

Symcloud Storage sử dụng khối lượng làm đơn vị phân bổ. Các khối này tương tự như các đối tượng Kubernetes PersistentVolume . Các thuộc tính hệ số sao chép, mã hóa và nén được chỉ định khi tạo một ổ đĩa. Lớp lưu trữ cũng có thể chỉ định loại phương tiện ưu tiên là HDD, SSD hoặc NVMe.

Symcloud Storage được tiếp xúc với các ứng dụng thông qua Kubernetes CSI bằng cách sử dụng đối tượng Kubernetes StorageClass . Bộ lưu trữ Symcloud có ba StorageClass được xác định trước :

  • robin—StorageClass mặc định không có tính năng nâng cao và có thể được sử dụng cho các ổ đĩa ReadWriteOnly (RWO) và ReadWriteMany (RWX) tiêu chuẩn.
  • robin-repl-3—A StorageClass sử dụng ba bản sao để đảm bảo độ tin cậy của dữ liệu.
  • robin-immediate—Một StorageClass tạo ra một ổ đĩa khi Yêu cầu khối lượng liên tục (PVC) được tạo ra. Nó không chờ đợi người tiêu dùng đầu tiên của khối lượng đó.

Bộ sưu tập tập tin

Nền tảng sử dụng bộ sưu tập tệp để lưu trữ các gói ứng dụng, hình ảnh và nhật ký được thu thập. Bộ sưu tập tệp được hiển thị thông qua máy chủ tệp Symcloud , chạy trên các nút mặt phẳng điều khiển. Dung lượng lưu trữ cho mỗi bộ sưu tập tệp được phân bổ từ bộ lưu trữ được quản lý bởi Symcloud dưới dạng ổ đĩa.

Bộ lưu trữ Kubernetes CSI

Nền tảng có thể sử dụng bất kỳ hệ thống lưu trữ nào có trình điều khiển tương thích CSI. Bộ lưu trữ này có thể được sử dụng để lưu trữ tạm thời và liên tục giống như Symcloud Storage . Tuy nhiên, khả năng sao lưu, chụp nhanh và di chuyển của nền tảng chỉ khả dụng cho các ứng dụng sử dụng Symcloud Storage .

Kho chứa hồ

Nền tảng này có sẵn hai loại kho lưu trữ hồ, sử dụng:

  • PowerScale với giao thức HDFS
  • ECS với giao thức S3

Các hệ thống lưu trữ này được quản lý và điều chỉnh quy mô độc lập với nền tảng cốt lõi, cung cấp kiến ​​trúc điện toán và lưu trữ tách rời.

Các ứng dụng có thể kết nối trực tiếp với một hoặc cả hai tùy chọn lưu trữ hồ nước qua mạng từ mã cấp ứng dụng:

  • Thư viện máy khách Apache Hadoop ( hadoop-hdfs-client) cung cấp giao thức hdfs:// .
  • Thư viện AWS của Apache Hadoop ( hadoop-aws) cung cấp giao thức s3a:// .

Tùy thuộc vào ứng dụng và cách triển khai ứng dụng, hình ảnh và gói ứng dụng có thể yêu cầu đưa vào các thư viện cần thiết. Ứng dụng phải xử lý xác thực đối với bất kỳ bộ nhớ ngoài nào.

Quản lý và điều hành

Tất cả việc quản trị và quản lý hệ thống đều được xử lý thông qua một giao diện web duy nhất. Các hoạt động cũng có thể được thực hiện và tự động hóa thông qua dòng lệnh.

Nền tảng Symcloud cung cấp khả năng đa đối tượng thuê tích hợp để cho phép trải nghiệm đám mây được chia sẻ, với sự tách biệt về mặt vật lý và logic giữa các đối tượng thuê. Nó bao gồm hỗ trợ tích hợp cho kiểm soát truy cập dựa trên vai trò để quản lý thông tin xác thực của người dùng cuối trên mỗi đối tượng thuê. Nó cũng bao gồm hỗ trợ các tính năng bồi hoàn để hỗ trợ nhiều bộ phận và trường hợp sử dụng.

Nền tảng này cũng bao gồm việc giám sát và thu thập số liệu hiệu quả cao của các thành phần phần cứng, nhóm và ứng dụng. Những tính năng này cung cấp khả năng quan sát toàn diện tất cả hoạt động của nền tảng ở một vị trí duy nhất.

Mạng

Nền tảng sử dụng mạng được xác định bằng phần mềm (SDN) để xử lý thông tin liên lạc cho cụm. SDN bao gồm các kết nối giữa các container, các kết nối giữa các nhóm, kết nối xâm nhập vào các nhóm và nhóm với các dịch vụ bên ngoài như PowerScale và ECS . Các dịch vụ mạng này được cung cấp thông qua Giao diện mạng vùng chứa Kubernetes (CNI) và được hỗ trợ bởi các plugin mạng tương thích với CNI.

Mỗi nút vật lý trong cụm được gán một địa chỉ IP để kết nối với mạng dữ liệu Cụm. Mỗi kết nối sử dụng một cặp cổng mạng vật lý được liên kết với tập hợp liên kết động IEEE 802.3ad. Cấu hình này cung cấp cả khả năng cân bằng tải trên các liên kết vật lý và khả năng chịu lỗi nếu liên kết bị lỗi. Tất cả các mạng phía trên lớp này đều được xác định bằng phần mềm và sử dụng các địa chỉ IP riêng tư cho cụm.

Khi các ứng dụng chạy trên cụm yêu cầu địa chỉ IP, các địa chỉ này sẽ được phân bổ từ nhóm IP của đối tượng thuê. Nhóm IP chỉ định cả dải địa chỉ khả dụng và trình điều khiển CNI sẽ sử dụng. Nền tảng này hỗ trợ ba tùy chọn trình điều khiển CNI – Calico, Open vSwitch (OVS) và SR-IOV. Dell Technologies khuyên bạn nên sử dụng trình điều khiển OVS cho hầu hết các trường hợp sử dụng vì nó cung cấp sự hỗ trợ tốt nhất cho việc truy cập vào các ứng dụng từ bên ngoài cụm.

Quyền truy cập mạng vào các ứng dụng được xử lý thông qua dịch vụ Kubernetes NodePort . Cấu hình NodePort được chỉ định trong gói ứng dụng và bao gồm ánh xạ số cổng bên ngoài và bên trong. Truy cập mạng đi từ các ứng dụng được xử lý thông qua định tuyến IP dựa trên đích.

 

Thiết kế khối lượng công việc

Tổng quan

Khả năng điều phối nền tảng sử dụng Trình quản lý quy trình làm việc ứng dụng Symcloud . Các ứng dụng được triển khai bằng khung gói ứng dụng Symcloud . Khi sử dụng khung triển khai này, gói ứng dụng sẽ chỉ định tất cả các tài nguyên cần thiết để triển khai một ứng dụng. Khi một gói ứng dụng được cài đặt, nó sẽ xuất hiện trong danh mục ứng dụng và người dùng nền tảng có thể triển khai nó. Hình dưới đây hiển thị màn hình danh mục ứng dụng Symcloud chính .

Lưu ý: Các gói ứng dụng được hiển thị là ví dụ về các ứng dụng mà Nền tảng Symcloud có thể triển khai. Chúng không phải là các gói tiêu chuẩn có sẵn từ  Symcloud .

Hình 5.  Danh mục gói ứng dụng
Ảnh chụp màn hình danh mục gói ứng dụng Robin CNP

Khi một gói được triển khai, bộ lập lịch Symcloud sẽ cung cấp các tài nguyên mạng, bộ lưu trữ, bộ tăng tốc và tính toán cần thiết, sau đó khởi động các nhóm ứng dụng. Vì nền tảng nhận biết được toàn bộ ứng dụng nên người lập lịch có thể sử dụng các kỹ thuật bố trí nâng cao, bao gồm vị trí dữ liệu, mối quan hệ dữ liệu và nhận thức về cơ sở hạ tầng. Trong quá trình triển khai, người dùng có thể chỉ định các tùy chọn triển khai và thời gian chạy trong màn hình khởi chạy.

Thành phần chính của gói ứng dụng là tệp kê khai hoạt động như bản thiết kế chi tiết cho ứng dụng. Nó mô tả các thành phần ứng dụng, mọi sự phụ thuộc giữa các dịch vụ, yêu cầu về tài nguyên, các quy tắc về mối quan hệ và chống mối quan hệ cũng như các hành động tùy chỉnh cần thiết để quản lý ứng dụng. Gói này cũng chứa các biểu tượng, mọi tập lệnh hỗ trợ và chỉ định các hình ảnh vùng chứa cần thiết cho ứng dụng. Các gói được đóng gói dưới dạng kho lưu trữ tar nén .

Thông tin chi tiết về việc tạo và quản lý các gói ứng dụng có sẵn trong Hướng dẫn xây dựng gói Kubernetes Robin Hyperconverged .

Dell Technologies đã triển khai và triển khai các gói khối lượng công việc như một phần của quy trình xác minh giải pháp. Các phần sau đây mô tả việc triển khai hai trong số các gói này.

Gói tia lửa

Gói ứng dụng Spark triển khai cụm độc lập Apache Spark 3.3.2 . Hình bên dưới hiển thị màn hình tạo ứng dụng cho gói Spark .

Hình 6.  Màn hình tạo ứng dụng Spark 3.3.2
Màn hình tạo gói ứng dụng Robin CNP Spark 3.3

Gói này bao gồm:

  • Apache Spark 3.3.2
  • Thư viện máy khách Hadoop (để truy cập HDFS)
  • Thư viện AWS của Hadoop (để truy cập S3)
  • Thư viện Delta Lake 2.3.0
  • NVIDIA CUDA 11.4 (để hỗ trợ GPU)
  • Bộ tăng tốc NVIDIA RAPIDS cho Apache Spark (để hỗ trợ GPU Spark )

Tại thời điểm tạo ứng dụng, có thể chỉ định số lượng nhân viên Spark và nhân viên GPU Spark . Gói này cũng cho phép chỉ định tài nguyên, bao gồm số lượng lõi và bộ nhớ cho mỗi nhân.

Gói Kafka

Gói ứng dụng Kafka triển khai cụm Confluent Kafka 7.3 . Hình bên dưới hiển thị màn hình tạo ứng dụng cho gói Kafka .

Hình 7.  Màn hình tạo ứng dụng Kafka 7.3
Ảnh chụp màn hình tạo ứng dụng Robin CNP Kafka 7.1

Gói này bao gồm các thành phần Kafka tiêu chuẩn , bao gồm:

  • Nhà môi giới Kafka
  • Đăng ký lược đồ Kafka
  • Proxy Kafka REST
  • Trung tâm điều khiển hợp lưu
  • ZooKeeper (để hỗ trợ thời gian chạy)

Tại thời điểm tạo ứng dụng, số lượng nhà môi giới có thể được chỉ định. Gói này cũng cho phép chỉ định tài nguyên, bao gồm số lõi và bộ nhớ cho mỗi nhà môi giới. Là một phần của cấu hình môi giới, vị trí và dung lượng lưu trữ cho hàng đợi Kafka cũng có thể được chỉ định.