Production Deployment Guide
This comprehensive guide provides detailed instructions for deploying Ilum in production environments with enhanced security, namespace separation, and multiple configuration options to meet diverse operational requirements.
جدول المحتويات
- نظره عامه
- المتطلبات الأساسية ل Kubernetes
- معمار
- High Availability Configuration
- Failure Domains & Resilience
- Dynamic Resource Scaling
- Namespace Separation Strategy
- Security Configuration
- Dependency Deployment
- Pre-configured Stack Options
- Helm Values Configuration
- Installation Instructions
- Post-Installation Configuration
- استكشاف الاخطاء
نظره عامه
For production environments, it's strongly recommended to deploy critical dependencies in separate namespaces to achieve:
- Enhanced Security: Namespace-level isolation and RBAC policies
- إدارة الموارد : Independent resource quotas and limits
- Operational Excellence: Simplified maintenance and upgrades
- Compliance: Meeting organizational separation requirements
- قابلية التوسع : Independent scaling of components
Critical Components for Namespace Separation
The following components should be deployed in separate namespaces for production:
- PostgreSQL : Primary metadata store for
إيلوم كورand shared dependency for Marquez, Hive Metastore, Airflow, Superset, MLflow, and others - MongoDB : Legacy metadata store, still supported for existing deployments
- أباتشي كافكا : Message broker and communication layer (required for
إيلوم كورHA) - ميني آيو : Object storage for Spark applications and data
المتطلبات الأساسية ل Kubernetes
Ilum has been extensively tested across all leading Kubernetes environments, ensuring compatibility with a variety of deployment scenarios:
Supported Platforms
- Lightweight Distributions: k3s, Rancher, MicroK8s
- Bare-metal Clusters: Self-managed Kubernetes installations
- Managed Services:
- محرك جوجل Kubernetes (GKE)
- خدمة Amazon Elastic Kubernetes (EKS)
- خدمة Azure Kubernetes (AKS)
- DigitalOcean Kubernetes
- Red Hat OpenShift
Minimum Suggested Requirements
| Component | Requirement |
|---|---|
| Kubernetes Version | 1.20+ |
| CPU | 8 cores minimum, 16+ recommended |
| ذاكرة | 16GB minimum, 32GB+ recommended |
Air-gapped (Offline) Environments
For air-gapped installations, refer to our comprehensive Air-gapped Installation Guide.
Testing vs Production
مينيكوبي is used throughout our documentation for demonstration purposes but is not suitable for production due to limitations in scalability, resource management, and high availability.
معمار
Components and modules
The Ilum platform consists of three core services and a curated set of optional modules:
إيلوم كور: Main backend service. Hosts the public REST API, job and cluster orchestration, multi-engine SQL execution, security, and lineage capture.ILUM-UI: React-based web frontend. Hosts the SQL Editor, Table Explorer, Lineage view, Workloads management, and the Modules registry.ilum-api: Module-management microservice. Drives Helm-based install, upgrade, and disable of optional Ilum modules at runtime via cluster-scoped RBAC. Future releases will extendilum-apiمع Model Context Protocol (MCP) capabilities and open APIs for third-party extension.
Optional modules include execution engines (Trino, Apache Flink), additional catalogs (Project Nessie, Unity Catalog, DuckLake), notebooks (JupyterHub, Zeppelin), orchestration (Airflow, Kestra, Mage, n8n, NiFi), BI tools (Superset, Streamlit), AI and ML stacks (MLflow, LangFuse), and observability components (Kube Prometheus stack, Loki, Promtail).
PostgreSQL
PostgreSQL is the primary metadata storeمن أجل إيلوم كور (accessed via R2DBC with jOOQ-generated SQL DSL). It is also used by shared dependencies including Marquez, Hive Metastore, Airflow, Superset, MLflow, Hydra, Gitea, n8n, and Kestra to store their respective metadata.
PostgreSQL is تمكين في Ilum افتراضيا.
If you want to control whether PostgreSQL is enabled or not, you can use the helm value postgresql.enabled . For example, to disable it, you can add --set postgresql.enabled=false إلى أمر التثبيت الخاص بك.
MongoDB
MongoDB is supported as a legacy metadata storeمن أجل إيلوم كور . New deployments should use PostgreSQL; existing MongoDB-backed deployments remain fully supported. Ilum ships migration tooling (M001 through M009 scripts) for moving from MongoDB to PostgreSQL.
Ilum automatically creates all necessary databases and collections during the startup process when MongoDB is in use.
أباتشي كافكا
يعمل Apache Kafka كطبقة اتصال ل Ilum ، مما يسهل التفاعل بين وظائف Ilum-Core و Spark ، بالإضافة إلى بين مثيلات Ilum-Core المختلفة عند التحجيم. من الأهمية بمكان التأكد من وصول وسطاء Apache Kafka إلى كليهما وظائف Ilum-Core و Spark ، خاصة عند إطلاق وظائف Spark على مجموعة Kubernetes مختلفة.
تستخدم Ilum كافكا لإجراء الاتصالات باستخدام العديد من الموضوعات ، وكلها تم إنشاؤها أثناء بدء تشغيل Ilum. لذلك ، المستخدمون لا تحتاج إلى إدارة هذه الموضوعات يدويا.
ميني آيو
يستخدم Ilum MinIO كطبقة تخزين لمكونات تطبيق Spark. جميع الملفات (بما في ذلك الجرار، والتكوينات، والبيانات الملفات) اللازمة لتشغيل مكونات Spark (برنامج التشغيل والمنفذين) وإتاحتها للتنزيل عبر MinIO.
يقوم MinIO بتنفيذ واجهة S3 ، والتي تمكنه أيضا من تخزين بيانات الإدخال / الإخراج.
وكيل Ilum-Livy
وكيل Ilum-Livy هو تطبيقنا ل Livy API ، الذي يدمج كود spark مع Ilum Groups في خدمات مثل Jupyter و Zeppelin و Airflow
إيلوم ليفي وكيل ممكن في Ilum افتراضيا.
في حالة رغبتك في إضافة أو إزالة Ilum-Livy-proxy ، يمكنك استخدام ilum-livy-proxy.enabled قيمة الدفة لإدارتها.
على سبيل المثال: --set ilum-livy-proxy.enabled=false لتعطيله.
اقرأ المزيد عن وكيل Ilum-Livy هنا
جوبيتر
Jupyter عبارة عن دفتر ملاحظات - بيئة تطوير متطورة تتيح لك الحصول على تعليمات برمجية ومخططات وتفسيرات والمزيد في مستند واحد قابل للتنفيذ.
جوبيتر ممكن في Ilum افتراضيا.
ومع ذلك ، إذا كنت تريد التحكم في تمكينه أم لا ، يمكنك استخدام قيمة helm ilum-jupyter.enabled . على سبيل المثال، يمكنك إضافة --set ilum-jupyter.enabled=false إلى أمر التثبيت الخاص بك لتعطيله.
كن على علم بأن Jupyter يستخدم وكيل Ilum-Livy للاندماج مع مجموعات Ilum. لذلك ، يجب عليك تمكينه أيضا: --set ilum-livy-proxy.enabled=true
إذا كنت ترغب في الوصول إلى واجهة مستخدم Jupyter، فيمكنك القيام بذلك عن طريق:
- باستخدام واجهة مستخدم Ilum: انتقل إلى الوحدات النمطية > Jupyter
- تكوين مدخل
- استخدام الأمر port-forward
المنفذ إلى الأمام SVC / ILUM-Jupyter 8888: 8888
اقرأ المزيد عن Jupyter هنا
أباتشي زيبلين
Zeppelin عبارة عن دفتر ملاحظات - بيئة تطوير متطورة تتيح لك الحصول على تعليمات برمجية ومخططات وتفسيرات والمزيد في مستند واحد قابل للتنفيذ.
يرجى العلم أن دفتر ملاحظات Zeppelin غير مرفق في حزمة ilum افتراضيا. إذا كنت ترغب في تشغيل هذه الخدمة، أضف --set ilum-zeppelin.enabled=true إلى أمر التثبيت الخاص بك.
كن على علم بأن Zeppelin يستخدم وكيل Ilum-Livy للاندماج مع مجموعات Ilum. لذلك ، يجب عليك تمكينه أيضا: --set ilum-livy-proxy.enabled=true
إذا كنت ترغب في الوصول إلى واجهة مستخدم Zeppelin ، فإن أفضل طريقة للقيام بذلك هي تكوين مدخل أو استخدام الأمر port-forward المنفذ إلى الأمام SVC / ILUM-Zeppelin 8080: 8080
اقرأ المزيد عن Zeppelin هنا
Hive Metastore
Hive Metastore is a metadata storage used to store your Spark catalogs (Spark tables, databases, views, and more) in a database instead of runtime memory. You can view these schemas later on the مستكشف الجدول صفحة.
لا يتم تمكين Hive Metastore في Ilum افتراضيا.
To enable the Hive Metastore bundled instance, set the following values in your Helm installation command:
إيلوم كور :
ميتا ستور :
تمكين : صحيح
نوع : خلية
ilum-hive-metastore:
تمكين : صحيح
Hive Metastore uses قاعدة بيانات PostgreSQL to store metadata. You can read about Postgres in Ilum ادناه .
مشروع نيسي
Nessie is a transactional catalog for your data. It was inspired by Git and is designed to support a wide range of data-lake tooling. It works best with أباتشي آيسبرغ tables.
To learn more about Nessie, visit the Nessie documentation page.
Project Nessie is not enabled in Ilum by default. To enable it, set the following values in your Helm installation command:
إيلوم كور :
ميتا ستور :
تمكين : صحيح
نوع : نيسي
نيسي :
تمكين : صحيح
Ilum SQL (Kyuubi Gateway)
لا يتم تمكين Ilum SQL في Ilum افتراضيا.
Ilum SQL is the multi-engine SQL gateway built on Apache Kyuubi. It exposes a single JDBC and REST entry point for queries that route to أباتشي سبارك , الثلاثي , بطة دي بي أو Apache Flink based on the engine selected for each query, or chosen by the automatic engine router.
To enable Ilum SQL, add --set ilum-sql.enabled=true لتمكين مضيف تنفيذ SQL و --set ilum-core.sql.enabled=true to enable the SQL features inside Ilum itself.
Read more about the SQL Editor on the SQL Editor page.
الثلاثي
ملاحظه: Trino is not enabled in Ilum by default. To enable it, add --set trino.enabled=true to deploy a built-in Trino distribution.
Trino is a distributed SQL query engine well suited to interactive analytics on medium-to-large datasets and for federated queries across multiple data sources. It complements Spark for workloads that benefit from low-latency response times.
Once enabled, Trino is reachable through the Ilum SQL gateway and selectable from the Engine Selector in the SQL Editor. Read more on the SQL Editor page.
DuckDB and DuckLake
بطة دي بي is enabled by default and provides single-node SQL execution for small-to-medium data, ad-hoc exploration, and DuckLake-managed tables. It runs in-process with إيلوم كور and is selectable from the Engine Selector in the SQL Editor.
DuckLake is the DuckDB-native catalog, enabled by default, with table data stored in MinIO (or any configured S3-compatible backend). No additional Helm values are required to use DuckDB or DuckLake.
Apache Flink
Apache Flink support is available for مؤسسة deployments as a Beta feature. Flink is exposed through the Kyuubi SQL gateway for low-latency stream processing. Contact Ilum for enablement details.
ن8ن
ملاحظه: لا يتم تمكين n8n في Ilum بشكل افتراضي. لتمكينه، أضف --set ilum-n8n.enabled=true لتمكين توزيع N8N المدمج.
n8n عبارة عن نظام أساسي لأتمتة سير العمل بالتعليمات العادلة مع إمكانات الذكاء الاصطناعي الأصلية.
اقرأ المزيد عنها على صفحة N8N .
تدفق هواء أباتشي
Apache Airflow is a powerful platform for orchestrating and managing data workflows. To read more about Airflow in Ilum, visit the Airflow documentation page.
Airflow is not enabled in the Ilum package by default.
To deploy Airflow, add --set airflow.enabled=true إلى أمر التثبيت الخاص بك.
Once enabled, Airflow will appear in the Ilum UI under the وحدات section.
Airflow can leverage Ilum’s Livy proxy to easily create jobs within Ilum. For more details, see the Livy proxy section above.
ماركيز
Marquez هي أداة إدارة البيانات الوصفية مفتوحة المصدر تركز على الالتقاط والتجميع ، وتصور نسب أصول البيانات داخل النظام البيئي للبيانات في المؤسسة. يتتبع كيفية إنتاج مجموعات البيانات واستهلاكها من قبل وظائف مختلفة ويوفر عرضا مركزيا لهذه التبعيات.
يرجى العلم أن ماركيز غير مجمعة في باقة Ilum افتراضيا.
إذا كنت ترغب في تشغيل هذه الخدمة،
جمع --set global.lineage.enabled=true إلى أمر التثبيت الخاص بك.
ضع في اعتبارك أن ماركيز يستخدم قاعدة بيانات PostgreSQL لتخزين البيانات الوصفية. يمكنك أن تقرأ عنها ادناه .
بالإضافة إلى ذلك ، إذا كنت ترغب في استخدام عميل الويب الخاص ب Marquez بدلا من واجهة مستخدم Ilum ، فقم بتمكين عميل الويب الافتراضي باستخدام --set ilum-marquez.web.enabled=true وقم بإعداد إحدى طرق الوصول:
- استخدم الأمر port-forward
kubectl ميناء إلى الأمام SVC / ILUM-Marquez-WEB 9444: 9444 - تكوين مدخل
اقرأ المزيد عن نسب ماركيز وإيلوم هنا
كيسترا
كيسترا هو مفتوح المصدر منصة تنسيق البيانات مصممة لتنسيق البيانات وأتمتتها خطوط الأنابيب ومهام سير عمل الأعمال. يمكنك أن تقرأ عنها هنا .
لا يتم تمكين Kestra في Ilum افتراضيا. لتمكينه، أضف --set kestra.enabled=true إلى أمر التثبيت الخاص بك.
يستخدم Kestra قاعدة بيانات PostgreSQL لتخزين البيانات حول الوظائف والمهام و مينيو لتخزين الملفات العامة
ساحر
ساحر is an open-source data engineering platform that simplifies the process of building, deploying, and maintaining data pipelines. It provides a user-friendly interface for creating data workflows, integrating with various data sources, and managing data transformations.
To read about Mage next to Ilum, visit the صفحة التوثيق .
Mage is not enabled in Ilum by default. To enable it, add --set mageai.enabled=trueإلى أمر التثبيت الخاص بك.
Ilum deploys Mage OSS, which is the open-source version of Mage, and does not include the commercial features available in Mage Pro (Cloud).
NiFi
أباتشي نيفي is a software project for building data processing pipelines. It provides a user interface for creating, managing, and deploying data processing pipelines.
To read about NiFi next to Ilum, visit the صفحة التوثيق .
NiFi is not enabled in Ilum by default. To enable it, add --set nifi.enabled=trueإلى أمر التثبيت الخاص بك.
Streamlit
Streamlit is a library for creating beautiful, performant, and scalable data apps in Python. It is used to build custom data apps accessible from the Ilum UI.
To read about Streamlit next to Ilum, visit the صفحة التوثيق .
Streamlit is not enabled in Ilum by default.
To enable it, add --set streamlit.enabled=trueإلى أمر التثبيت الخاص بك.
Additionally, can provide a docker image with your streamlit application running in it. To see how to do it, visit our صفحة التوثيق .
كوبي بروميثيوس المكدس
يتضمن Kube Prometheus Stack Prometheus و Grafana وأدوات أخرى لمراقبة البنية التحتية للبيانات الخاصة بك
يرجى العلم أن Kube Prometheus Stack غير مجمعة في حزمة ilum افتراضيا. إذا كنت ترغب في تشغيل هذه الخدمة، أضف --set kube-prometheus-stack.enabled=true إلى أمر التثبيت الخاص بك.
إذا كنت تقوم بترقية مخطط Ilum Helm موجود الذي تم القيام به سابقا لا إذا تم تمكين Kube Prometheus Stack، يجب عليك أولا تثبيت تعريفات موارد Prometheus المخصصة (CRDs) المطلوبة قبل متابعة الترقية. للقيام بذلك، قم بتشغيل الأوامر التالية:
kubectl تطبيق --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml
kubectl تطبيق --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
kubectl تطبيق --جانب الخادم -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
kubectl تطبيق --جانب الخادم -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
kubectl تطبيق --جانب الخادم -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml
kubectl تطبيق --جانب الخادم -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
kubectl تطبيق --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
kubectl تطبيق --جانب الخادم -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml
kubectl تطبيق --جانب الخادم -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
kubectl تطبيق --جانب الخادم -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml
إذا كنت ترغب في الوصول إلى واجهة مستخدم Prometheus ، فإن أفضل طريقة للقيام بذلك هي تكوين مدخل أو استخدام الأمر port-forward المنفذ الأمامي SVC / بروميثيوس الذي يعمل بنظام 9090: 9090
إذا كنت ترغب في الوصول إلى واجهة مستخدم Grafana ، فإن أفضل طريقة للقيام بذلك هي تكوين مدخل أو استخدام الأمر port-forward المنفذ إلى الأمام SVC / ILUM-Grafana 8080: 80
لوكي وبرومتيل
يستخدم Loki لجمع وإدارة سجلات البنية التحتية للبيانات الخاصة بك. يستخدم Promtail كعامل يدفع السجلات إلى Loki
يرجى أن تعلم أن لوكي غير ممكن في Ilum افتراضيا. إذا كنت ترغب في تشغيل هذه الخدمة، أضف --set global.logAggregation.loki.enabled=true إلى أمر التثبيت الخاص بك.
Promtail أيضا غير ممكن في Ilum افتراضيا. لتمكينه، أضف --set global.logAggreagtion.promtail.enabled=true إلى أمر التثبيت الخاص بك
إذا كنت ترغب في الوصول إلى Loki وتشغيل استعلامات Loki ، فيمكنك تكوين مدخل أو استخدام الأمر port-forward kubectl منفذ إلى الأمام SVC / ILUM-loki - قراءة 3100: 3100 للاستعلامات المقروءة و الكتابة 3100:3100 لكتابة الاستعلامات. يمكنك أيضا استخدام
خدمة ilum-loki-gateway لربط Grafana ب Loki
Production Architecture Overview
Recommendations on which optionally deployed components to place in which namespace, whether in the one belonging to the Ilum release or in separate, dedicated ones.
┌─────────────────────────┐ ┌────────────────────────────┐
│ ILUM │ │ Dependencies │
│ components │ │ separated │
│ namespace │ │ namespaces │
├─────────────────────────┤ ├────────────────────────────┤
│ • Ilum Core ** │ │ • PostgreSQL ** │
│ • Ilum UI ** │ │ • MongoDB (legacy) │