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
- معمار
- 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:
- MongoDB : Primary data storage
- أباتشي كافكا : Message broker and communication layer
- ميني آيو : Object storage for Spark applications and data
- PostgreSQL : Metadata storage for various services
المتطلبات الأساسية ل 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
MongoDB
يستخدم Ilum MongoDB كطبقة تخزين خاصة به ، مع الحفاظ على جميع البيانات المطلوبة بين عمليات إعادة التشغيل داخل قاعدة بيانات MongoDB. يقوم Ilum تلقائيا بإنشاء جميع قواعد البيانات والمجموعات اللازمة أثناء عملية بدء التشغيل.
أباتشي كافكا
يعمل Apache Kafka كطبقة اتصال ل Ilum ، مما يسهل التفاعل بين وظائف Ilum-Core و Spark ، بالإضافة إلى بين مثيلات Ilum-Core المختلفة عند التحجيم. من الأهمية بمكان التأكد من وصول وسطاء Apache Kafka إلى كليهما وظائف Ilum-Core و Spark ، خاصة عند إطلاق وظائف Spark على مجموعة Kubernetes مختلفة.
تستخدم Ilum كافكا لإجراء الاتصالات باستخدام العديد من الموضوعات ، وكلها تم إنشاؤها أثناء بدء تشغيل Ilum. لذلك ، المستخدمون لا تحتاج إلى إدارة هذه الموضوعات يدويا.
ميني آيو
يستخدم Ilum MinIO كطبقة تخزين لمكونات تطبيق Spark. جميع الملفات (بما في ذلك الجرار، والتكوينات، والبيانات الملفات) اللازمة لتشغيل مكونات Spark (برنامج التشغيل والمنفذين) وإتاحتها للتنزيل عبر MinIO.
يقوم MinIO بتنفيذ واجهة S3 ، والتي تمكنه أيضا من تخزين بيانات الإدخال / الإخراج.
PostgreSQL
يتم استخدام قاعدة بيانات PostgreSQL بواسطة خدمات مثل Marquez و Hive Metastore و Airflow من أجل تخزين البيانات الوصفية.
قواعد بيانات PostgreSQL هي تمكين في Ilum افتراضيا.
إذا كنت تريد التحكم في تمكين PostgreSQL أم لا، فيمكنك استخدام قيمة helm postgresql.enabled . على سبيل المثال ، لتعطيله ، يمكنك
جمع --set postgresql.enabled=false إلى أمر التثبيت الخاص بك.
وكيل 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:
إيلوم كور :
ميتا ستور :
تمكين : صحيح
نوع : نيسي
نيسي :
تمكين : صحيح
إيلوم SQL
ملاحظه: لا يتم تمكين Ilum SQL في Ilum افتراضيا.
لتمكينه، أضف --set ilum-sql.enabled=true لتمكين مضيف تنفيذ SQL و --set ilum-core.sql.enabled=true لتمكين عارض SQL داخل Ilum نفسه.
يمكن ل Ilum SQL تنفيذ استعلامات SQL على بياناتك في واجهة المستخدم. اقرأ المزيد عنها على صفحة عارض SQL .
الثلاثي
ملاحظه: لا يتم تمكين Ilum SQL في Ilum افتراضيا. لتمكينه، أضف --set trino.enabled=true لتمكين توزيع Trino المضمن.
Trino هو محرك استعلام SQL موزع يسمح لك بتشغيل الاستعلامات بسرعة. إنه أكثر فائدة بكثير من Spark عندما يتعلق الأمر بالاستعلامات التفاعلية.
يستخدم Ilum Trino لتشغيل استعلامات SQL على بياناتك في واجهة المستخدم. اقرأ المزيد عنها على صفحة عارض SQL .
ن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 ilum release or in separate, dedicated ones
┌─────────────────────────┐ ┌────────────────────────────┐
│ ILUM │ │ Dependencies │
│ components │ │ separated │
│ namespace │ │ namespaces │
├─────────────────────────┤ ├────────────────────────────┤
│ • Ilum Core ** │ │ • MongoDB ** │
│ • Ilum UI ** │ │ • Kafka ** │
│ • Ilum Livy-Proxy * │ │ • MinIO * │
│ • Ilum Jupyter * │ │ • PostgreSQL * │
│ • Ilum Zeppelin │ │ • Kube-Prometheus-Stack * │
│ • Ilum Hive Metastore * │ │ • Loki & Promtail * │
│ • Ilum Kyuubi * │ └────────────────────────────┘
│ • Airflow │
│ • MlFlow │
│ • Marquez * │
│ • Superset │
│ • Gitea * │
│ • Trino │
│ • N8N │
│ • Kestra │
│ • OpenLdap │
└─────────────────────────┘
** Mandatory components for production release
* Recommended components for production release
Network Communication
- Inter-namespace Communication: Configured via Kubernetes Services and NetworkPolicies
- Service Discovery: DNS-based service resolution
- أمن : TLS encryption for all inter-service communication
Namespace Separation Strategy
Recommended Namespace Structure
# Core Ilum Components placed in ilum namespace
إيلوم : # Main application services
# Critical Dependencies (Separate Namespaces)
ilum-mongodb: # MongoDB cluster
ilum-kafka: # Kafka brokers and Zookeeper
ilum-minio: # Object storage cluster
ilum-postgresql: # PostgreSQL databases
ilum-kps: # Kube-prometheus-stack - monitoring resources
ilum-logs: # Loki & Promtail - log aggregation resources
Namespace Creation
Create all required namespaces before deployment:
⚠️ Warning: Create namespaces only for components you plan to deploy
# Ilum namespace
kubectl إنشاء مساحة اسم ilum
# Dependency namespaces
kubectl create namespace ilum-mongodb
kubectl create namespace ilum-kafka
kubectl create namespace ilum-minio
kubectl create namespace ilum-postgresql
kubectl create namespace ilum-kps
kubectl create namespace ilum-logs
مفاتيح الأمان
يستخدم هذا التطبيق رموز ويب JSON (JWT) لأغراض المصادقة. بشكل افتراضي، يستخدم التطبيق مفتاح RSA زوج ، والذي يتم إنشاؤه عشوائيا في وقت التشغيل ، لتوقيع هذه الرموز المميزة.
في تكوينه القياسي، يقوم التطبيق بإنشاء زوج مفاتيح RSA جديد في كل مرة يبدأ فيها. هذا النهج يبسط التطوير المحلي والاختبار من خلال التعامل التلقائي مع عملية إنشاء المفاتيح. ومع ذلك ، يجب أن يكون وأكد أن هذا النهج غير مناسب لبيئة الإنتاج.
المشكلة الأساسية في استخدام المفاتيح التي تم إنشاؤها عشوائيا في بيئة الإنتاج هي عدم الثبات. في كل مرة تتم إعادة تشغيل التطبيق, يقوم بإنشاء زوج مفاتيح RSA جديد, إبطال جميع الرموز المميزة التي تم إصدارها مسبقا. هذا يمكن أن يؤدي إلى تسجيل الخروج المفاجئ وغير المتوقع لجميع المستخدمين ، مما يعطل تجربة المستخدم ويحتمل أن يؤدي إلى فقدان البيانات.
إنشاء مفتاح خاص
بالنسبة لبيئة الإنتاج، يجب إنشاء زوج مفاتيح مستقر وآمن يدويا واستخدامه باستمرار. هذا يضمن بقاء الرموز المميزة صالحة عبر عمليات إعادة تشغيل التطبيقات المتعددة، وبالتالي توفير تجربة مستخدم متسقة.
يمكنك إنشاء زوج مفاتيح RSA يدويا باستخدام أدوات مثل OpenSSL. فيما يلي الأمر الشائع لإنشاء مفتاح RSA خاص 2048 بت:
openssl genpkey -algorithm RSA \
-pkeyopt rsa_keygen_bits:2048 \
-pkeyopt rsa_keygen_pubexp: 65537 | \
OpenSSL PKCS8 -TOK8 -NOCRYPT -outform PEM > المفتاح الخاص.p8
يجب أن تبدو محتويات المفتاح الخاص كما يلي:
-----ابدأ المفتاح الخاص-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCsRnE83rm6BJya
nTyzVqX0SG+D4zBjkyWsOmGG+CoDdgQ6Z8AaocmnjP1SbRykQsQSMf6SeW+fdpH+
ccmzuHe7pZIa2o2Mg8xbk/UszJDaPztwoQbUt/2gHi/rZP8cIVkquzhnN/yxrMls
...
----- المفتاح الخاص النهائي-----
من أجل استخدام المفتاح الخاص كإعداد ilum-core.security.jwt.privateKey، وإزالة الرأس والتذييل من المفتاح.
إنشاء مفتاح عام
لإنشاء المفتاح العام المقابل، استخدم:
openssl pkey -pubout -إعلام PEM -outform pem -in private-key.p8 -out public-key.spki
يجب أن تبدو محتويات المفتاح العام كما يلي:
-----ابدأ المفتاح العام-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArEZxPN65ugScmp08s1al
9Ehvg+MwY5MlrDphhvgqA3YEOmfAGqHJp4z9Um0cpELEEjH+knlvn3aR/nHJs7h3
u6WSGtqNjIPMW5P1LMyQ2j87cKEG1Lf9oB4v62T / HCFZKrs4Zzf8sazJbMN3E / mJ
...
-----المفتاح العام النهائي-----
من أجل استخدام المفتاح العام كإعداد ilum-core.security.jwt.publicKey، وإزالة الرأس والتذييل من المفتاح.
Authentication Methods
Ilum كمزود هوية
يمكن نشر Ilum كموفر هوية. باستخدام هذه الميزة ، يمكنك إدارة المستخدمين حصريا داخل Ilum والمصادقة عليهم عبر الخدمات المصغرة الأخرى مثل Airflow و Superset و Grafana و Gitea و Minio.
لتمكين موفر الهوية الخاص ب Ilum، أضف العلامات التالية: --set global.security.hydra.enabled=true و --set global.security.hydra.uiUrl=<your-ilum-ui-domain> .
لمعرفة المزيد حول تكوين موفر الهوية، تفضل بزيارة هذه الصفحة
OpenLDAP
OpenLDAP is the open-source LDAP server. It is not enabled in Ilum by default. To enable it add --set openldap.enabled=true to your
installation command.
If you want to access OpenLDAP you can use port-forward command kubectl port-forward svc/ilum-openldap 1389:389.
Ilum-Core is preconfigured to connect to OpenLDAP server deployed by Ilum. However you must switch security type to LDAP by adding
--set ilum-core.security.type=ldapإلى أمر التثبيت الخاص بك.
To learn more about OpenLDAP and LDAP in Ilum, visit the LDAP documentation page هنا .
Dependency Deployment
ملاحظه : The components described below are required or recommended dependencies for Ilum. You can choose to deploy them using the provided instructions or integrate with your own existing managed services.
MongoDB
Deploy MongoDB in a dedicated namespace with high availability
1. Add Bitnami Repository
helm repo add bitnami https://charts.bitnami.com/bitnami
تحديث Helm Repo
2. Create MongoDB Values File
# mongodb-values.yaml
صورة :
registry: docker.io
مستودع : ilum/mongodb
العلامه : 6.0.5
fullnameOverride : "ilum-mongodb"
architecture: "replicaset"
المصادقه :
تمكين : خطأ
volumePermissions:
تمكين : صحيح
3. Deploy MongoDB, Ilum by default uses chart in ^13.x version but should also work with newer versions
helm install mongodb bitnami/mongodb \
--namespace ilum-mongodb \
--version 13.18.5 \
--values mongodb-values.yaml
For more information about mongo deployment refer to mongodb chart details
4. Ilum AIO chart configuration values that need to be changed
# Disable bundled mongo
mongodb:
تمكين : خطأ
إيلوم كور :
mongo:
أوري : "mongodb://ilum-mongodb-0.ilum-mongodb-headless.ilum-mongodb:27017,ilum-mongodb-1.ilum-mongodb-headless.ilum-mongodb:27017/ilum?replicaSet=rs0"
# or use your mongo instance uri
أباتشي كافكا
Deploy Kafka cluster in a dedicated namespace
1. Add Bitnami Repository
helm repo add bitnami https://charts.bitnami.com/bitnami
تحديث Helm Repo
2. Create Kafka Values File
# kafka-values.yaml
extraConfig: |
auto.create.topics.enable=false
message.max.bytes=20000000
fullnameOverride : "ilum-kafka"
listeners:
عميل :
بروتوكول : PLAINTEXT
3. Deploy Kafka, Ilum by default uses chart in ^25.x version but should also work with newer versions
helm install kafka bitnami/kafka \
--namespace ilum-kafka \
--version 25.3.5 \
--values kafka-values.yaml
For more information about kafka deployment refer to kafka chart details
4. Ilum AIO chart configuration values that need to be changed
إيلوم كور :
communication:
نوع : كافكا
كافكا :
address: "ilum-kafka-controller-0.ilum-kafka-controller-headless.ilum-kafka:9092,ilum-kafka-controller-1.ilum-kafka-controller-headless.ilum-kafka:9092,ilum-kafka-controller-2.ilum-kafka-controller-headless.ilum-kafka:9092"
# or use your kafka instance address
MinIO Deployment
Deploy MinIO cluster for object storage:
1. Add Bitnami Repository
helm repo add bitnami https://charts.bitnami.com/bitnami
تحديث Helm Repo
2. Create MinIO Values File
# minio-values.yaml
extraEnvVars : |
- name: MINIO_BROWSER_REDIRECT_URL
value: "http://ilum-minio.ilum-minio:9001/external/minio/"
# Environment variables for hydra
- اسم : MINIO_IDENTITY_OPENID_CONFIG_URL
قيمة : "ILUM_UI_PROTOCOL://ILUM_UI_DOMAIN/external/hydra/.well-known/openid-configuration"
- اسم : MINIO_IDENTITY_OPENID_CLIENT_ID
قيمة : "HYDRA_CLIENT_ID"
- اسم : MINIO_IDENTITY_OPENID_CLIENT_SECRET
قيمة : "HYDRA_CLIENT_SECRET"
- اسم : MINIO_IDENTITY_OPENID_REDIRECT_URI
قيمة : "ILUM_UI_PROTOCOL://ILUM_UI_DOMAIN/external/minio/oauth_callback"
- اسم : MINIO_IDENTITY_OPENID_SCOPES
قيمة : "openid,profile,email"
- اسم : MINIO_IDENTITY_OPENID_CLAIM_NAME
قيمة : "minio_policies"
# end of hydra related environment variables
fullnameOverride : "ilum-minio"
defaultBuckets: "ilum-files, ilum-data, ilum-tables, ilum-mlflow, ilum-kestra"
المصادقه :
rootUser: "minioadmin"
rootPassword: "minioadmin"
persistence:
حجم : 16Gi
3. Deploy MinIO, Ilum by default uses chart in ^15.x version but should also work with newer versions
helm install minio bitnami/minio \
--namespace ilum-minio \
--version 15.0.7 \
--values minio-values.yaml
For more information about minio deployment refer to minio chart details
4. Ilum AIO chart configuration values that need to be changed
# Disable bundled minio
مينيو :
تمكين : خطأ
إيلوم كور :
مينيو :
statusProbe:
baseUrl: "http://ilum-minio.ilum-minio:9000"
kubernetes:
storage:
نوع : ق3
ق3 :
مضيف : "ilum-minio.ilum-minio"
ميناء : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"
# If hive metastore is deployed with minio as the storage
ilum-hive-metastore:
storage:
ميتا ستور :
warehouse: "s3a://ilum-data/"
نوع : "S3"
ق3 :
مضيف : "ilum-minio.ilum-minio"
ميناء : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"
# If trino is deployed with minio as the storage
ترينو :
كتالوجات :
إيلوم دلتا : |
connector.name=delta_lake
delta.metastore.store-table-metadata=true
delta.register-table-procedure.enabled=true
hive.metastore.uri=thrift://ilum-hive-metastore:9083
fs.native-s3.enabled=true
s3.endpoint=http://ilum-minio.ilum-minio:9000
s3.region=us-east-1
s3.path-style-access=true
s3.aws-access-key=minioadmin
s3.aws-secret-key=minioadmin
# If Loki is deployed with s3 as the storage
loki:
loki:
auth_enabled: خطأ
storage:
bucketNames:
chunks: إيلوم - الملفات
ruler: إيلوم - الملفات
المشرف : إيلوم - الملفات
نوع : ق3
ق3 :
نقطه النهايه : HTTP : إيلوم - minio.ilum- مينيو : 9000
region: us- شرق - 1
secretAccessKey: minioadmin
accessKeyId: minioadmin
s3ForcePathStyle: صحيح
insecure: صحيح
# If minio is deployed
minioExtensions:
مضيف : HTTP : إيلوم - minio.ilum- مينيو : 9000
# If airflow is deployed with minio as the logs storage
airflow:
extraEnv: |
- name: AIRFLOW__API__AUTH_BACKENDS
value: "airflow.api.auth.backend.default"
- name: MINIO_USERNAME
value: "minioadmin"
- name: MINIO_PASSWORD
value: "minioadmin"
- name: MINIO_ENDPOINT
value: "http://ilum-minio.ilum-minio:9000"
# If mlflow is deployed
ملفلو :
externalS3:
مضيف : "ilum-minio.ilum-minio"
# If kestra is deployed with minio as the storage
kestra:
configuration:
kestra:
storage:
نوع : مينيو
مينيو :
نقطه النهايه : إيلوم - minio.ilum- مينيو
ميناء : 9000
secure: خطأ
accessKey: minioadmin
secretKey: minioadmin
region: "افتراضي"
bucket: إيلوم - kestra
PostgreSQL Deployment
Deploy PostgreSQL for metadata storage:
1. Add Bitnami Repository
helm repo add bitnami https://charts.bitnami.com/bitnami
تحديث Helm Repo
2. Create PostgreSQL Values File
# postgresql-values.yaml
fullnameOverride : إيلوم - postgresql
المصادقه :
postgresPassword: "CHANGEMEPLEASE"
اسم المستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
3. Deploy PostgreSQL, Ilum by default uses chart in ^13.x version but should also work with newer versions
helm install postgresql bitnami/postgresql \
--namespace ilum-postgresql \
--version 13.4.4 \
--values postgresql-values.yaml
For more information about postgresql deployment refer to postgresql chart details
4. Ilum AIO chart configuration values that need to be changed
# Disable bundled PostgreSQL
postgresql:
تمكين : خطأ
#Postgres extensions for databases auto-creation
postgresExtensions:
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
databasesToCreate: marquez, airflow, ميتا ستور , ملفلو , mlflow_auth, superset, جيتا , ن8ن , هيدرا , kestra
المصادقه :
اسم المستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
# Configure hydra database if hydra is enabled in ilum-core deployment
إيلوم كور :
هيدرا :
dns: Postgres : إيلوم : CHANGEMEPLEASE@ilum- postgresql.ilum- postgresql: 5432/hydra?sslmode=disable
# If ilum-hive-metastore is deployed
ilum-hive-metastore:
postgresql:
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
database: ميتا ستور
المصادقه :
اسم المستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
# If lineage is enabled
ilum-marquez:
marquez:
db:
صورة : "Bitnami / Postgresql: 16"
مضيف : "ilum-postgresql-0.ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
اسم : marquez
مستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
# If gitea is deployed
جيتا :
initPreScript: "while ! nc -z ilum-postgresql-hl.ilum-postgresql 5432 2>/dev/null; do echo 'Waiting for Postgres...'; sleep 5; done; echo 'Postgres is ready!'"
جيتا :
التكوين :
ملقم :
ROOT_URL : HTTP : //gitea.example.com/external/gitea
database:
DB_TYPE: Postgres
HOST: "ilum-postgresql-hl.ilum-postgresql:5432"
NAME: جيتا
مستخدم : إيلوم
PASSWD: "CHANGEMEPLEASE"
# If airflow is deployed with postgres as metadata connection
airflow:
بيانات :
metadataConnection:
مستخدم : Postgres
دبر : "CHANGEMEPLEASE"
بروتوكول : postgresql
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
db: airflow
sslmode: disable
# If superset is deployed with postgres as the storage
superset:
supersetNode:
connections:
db_host: "ilum-postgresql-hl.ilum-postgresql"
db_port: "5432"
db_user: إيلوم
db_pass: "CHANGEMEPLEASE"
db_name: superset
# If mlflow is deployed with postgres as the external database
ملفلو :
externalDatabase:
dialectDriver: "postgresql"
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
مستخدم : إيلوم
database: ملفلو
authDatabase: mlflow_auth
existingSecret: "ilum-postgresql"
existingSecretPasswordKey: "postgres-password"
# If n8n is deployed
ن8ن :
db:
نوع : postgresdb
externalPostgresql:
مضيف : "ilum-postgresql-hl.ilum-postgresql"
اسم المستخدم : "ilum"
شعار : "CHANGEMEPLEASE"
database: "n8n"
# If kestra is deployed
kestra:
configuration:
datasources:
Postgres :
عنوان URL : "jdbc:postgresql://ilum-postgresql-hl.ilum-postgresql:5432/kestra"
driverClassName: "org.postgresql.Driver"
اسم المستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
initContainers:
- اسم : wait- من أجل - Postgres
صورة : "Bitnami / Postgresql: 16"
command:
- /bin/bash
أرجس :
- - ec
- |
until pg_isready -h ilum-postgresql-hl.ilum-postgresql -p 5432 -U ilum -d kestra; do
echo "Waiting for PostgreSQL server to be ready..."
sleep 2
منجز
echo "Database is ready!"
Kube-Prometheus-Stack Deployment (If you plan to use it)
Deploy Kube-Prometheus-Stack for monitoring purposes:
1. Add Prometheus Community Repository
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
تحديث Helm Repo
2. Create Kube-Prometheus-Stack Values File
# kps-values.yaml
الاسم تجاوز : "ilum-kps"
kubeStateMetrics:
تمكين : خطأ
nodeExporter:
تمكين : خطأ
alertmanager:
تمكين : خطأ
جرافانا :
الاسم تجاوز : "ilum-grafana"
grafana.ini :
ملقم :
root_url : "%(protocol)s://%(domain)s:%(http_port)s/external/grafana"
serve_from_sub_path: "صحيح"
auth.generic_oauth :
تمكين : خطأ
اسم : إيلوم
allow_sign_up: صحيح
login_attribute_path: userId
email_attribute_name: البريد الإلكتروني
role_attribute_path : يحتوي على (grafana_roles , "المسؤول") && "المشرف" | | يحتوي على (grafana_roles , "محرر") && "محرر" | | يحتوي على (grafana_roles , 'Viewer') && "المشاهد"
role_attribute_strict: صحيح
adminPassword: المشرف
sidecar:
dashboards:
folderAnnotation: "grafana_folder"
كاسب :
foldersFromFilesStructure: "صحيح"
3. Deploy kube-prometheus-stack, Ilum by default uses chart in ^54.x version but should also work with newer versions
helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack \
--namespace ilum-kps \
--version 54.2.2 \
--values kps-values.yaml
For more information about kube-prometheus-stack deployment refer to kps chart details
4. Define prometheus PodMonitors and ServiceMonitors
You can define your own Pod and ServiceMonitors for prometheus. Example PodMonitors defined in Ilum AIO chart you can use
Ilum Pods Monitor
apiVersion : monitoring.coreos.com/v1
نوع : PodMonitor
البيانات الوصفية :
اسم : إيلوم - pods- monitor
Namespace : إيلوم - kps
تسميات :
ilum.prometheus: "صحيح"
المواصفات :
محدد :
matchLabels :
ilum.prometheus: "صحيح"
podMetricsEndpoints:
- interval: 5s
ميناء : HTTP
مسار : /actuator/prometheus
namespaceSelector:
matchNames:
- إيلوم
Spark Driver Pods Monitor
apiVersion : monitoring.coreos.com/v1
نوع : PodMonitor
البيانات الوصفية :
اسم : إيلوم - سائق - pods- monitor
Namespace : إيلوم - kps
تسميات :
ilum.resourceType: سائق
المواصفات :
محدد :
matchLabels :
ilum.resourceType: سائق
podMetricsEndpoints:
- interval: 5s
ميناء : شراره - واجهة المستخدم
مسار : /metrics/executors/prometheus/
- interval: 5s
ميناء : شراره - واجهة المستخدم
مسار : /metrics/prometheus/
namespaceSelector:
any: صحيح
Loki & Promtail Deployment (If you plan to use it)
Deploy Loki & Promtail for logs aggregation:
1. Add Grafana Repository
helm repo add grafana https://grafana.github.io/helm-charts
تحديث Helm Repo
2. Create Loki and Promtail Values File
# loki-values.yaml
الاسم تجاوز : إيلوم - loki
رصد :
selfMonitoring:
تمكين : خطأ
grafanaAgent:
installOperator: خطأ
lokiCanary:
تمكين : خطأ
test:
تمكين : خطأ
loki:
auth_enabled: خطأ
storage:
bucketNames:
chunks: إيلوم - الملفات
ruler: إيلوم - الملفات
المشرف : إيلوم - الملفات
نوع : ق3
ق3 :
نقطه النهايه : HTTP : إيلوم - minio.ilum- مينيو : 9000
region: us- شرق - 1
secretAccessKey: minioadmin
accessKeyId: minioadmin
s3ForcePathStyle: صحيح
insecure: صحيح
compactor:
retention_enabled: صحيح
deletion_mode: راووق - و - حذف
shared_store: ق3
limits_config:
allow_deletes: صحيح
# promtail-values.yaml
التكوين :
clients:
- عنوان URL : HTTP : إيلوم - loki- يكتب : 3100/loki/api/v1/push
snippets:
pipelineStages:
- match:
محدد : '{ilum_logAggregation!="true"}'
action: قطرة
drop_counter_reason: non_ilum_log
extraRelabelConfigs:
- action: خريطة التسمية
regex: "__meta_kubernetes_pod_label_ilum(.*)"
replacement: "ilum${1}"
- action: خريطة التسمية
regex: "__meta_kubernetes_pod_label_spark(.*)"
replacement: "spark${1}"
scrapeConfigs: |
- job_name: kubernetes-pods
pipeline_stages:
{{- toYaml .Values.config.snippets.pipelineStages | nindent 4 }}
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- ilum
relabel_configs:
- source_labels:
- __meta_kubernetes_pod_controller_name
regex: ([0-9a-z-.]+?)(-[0-9a-f]{8,10})?
action: replace
target_label: __tmp_controller_name
- source_labels:
- __meta_kubernetes_pod_label_app_kubernetes_io_name
- __meta_kubernetes_pod_label_app
- __tmp_controller_name
- __meta_kubernetes_pod_name
regex: ^;*([^;]+)(;.*)?$
action: replace
target_label: app
- source_labels:
- __meta_kubernetes_pod_label_app_kubernetes_io_instance
- __meta_kubernetes_pod_label_instance
regex: ^;*([^;]+)(;.*)?$
action: replace
target_label: instance
- source_labels:
- __meta_kubernetes_pod_label_app_kubernetes_io_component
- __meta_kubernetes_pod_label_component
regex: ^;*([^;]+)(;.*)?$
action: replace
target_label: component
{{- if .Values.config.snippets.addScrapeJobLabel }}
- replacement: kubernetes-pods
target_label: scrape_job
{{- end }}
{{- toYaml .Values.config.snippets.common | nindent 4 }}
{{- with .Values.config.snippets.extraRelabelConfigs }}
{{- toYaml . | nindent 4 }}
{{- end }}
3. Deploy Loki, Ilum by default uses chart in 3.5.0 version but should also work with newer versions
helm install loki grafana/loki \
--namespace ilum-logs \
--version 3.5.0 \
--values loki-values.yaml
For more information about loki deployment refer to loki chart details
4. Deploy Promtail, Ilum by default uses chart in ^6.15.x version but should also work with newer versions
helm install promtail grafana/promtail \
--namespace ilum-logs \
--version 6.15.5 \
--values promtail-values.yaml
For more information about promtail deployment refer to promtail chart details
5. Ilum AIO chart configuration values that need to be changed
عالمي :
logAggregation:
تمكين : صحيح
loki:
تمكين : خطأ
عنوان URL : HTTP : إيلوم - loki- gateway.ilum- logs
promtail:
تمكين : خطأ
Pre-configured Stack Examples
ملاحظه : In those examples security configuration has been ignored, so those deployments stick to Ilum internal security mechanism, if you want to know how to use other security methods refer to LDAP أو OAUTH2
Option 1: Minimal Production Stack
Suitable for deployments with basic requirements. Extra enabled modules:
- ILUM-SQL
- ilum-hive-metastore
- ilum-marquez (lineage)
Minimal needed values file taking into account the components deployment described above. For more detailed configuration you can examine dedicated charts, for example إيلوم كور
# minimal-production-values.yaml
عالمي :
lineage:
تمكين : صحيح
إيلوم كور :
أمن :
jwt:
privateKey: Key generated as described in Security- keys section
publicKey: Key generated as described in Security- keys section
SQL :
تمكين : صحيح
ميتا ستور :
تمكين : صحيح
نوع : خلية
mongo:
أوري : "mongodb://ilum-mongodb-0.ilum-mongodb-headless.ilum-mongodb:27017,ilum-mongodb-1.ilum-mongodb-headless.ilum-mongodb:27017/ilum?replicaSet=rs0"
communication:
نوع : كافكا
كافكا :
address: "ilum-kafka-controller-0.ilum-kafka-controller-headless.ilum-kafka:9092,ilum-kafka-controller-1.ilum-kafka-controller-headless.ilum-kafka:9092,ilum-kafka-controller-2.ilum-kafka-controller-headless.ilum-kafka:9092"
مينيو :
statusProbe:
baseUrl: "http://ilum-minio.ilum-minio:9000"
kubernetes:
storage:
نوع : ق3
ق3 :
مضيف : "ilum-minio.ilum-minio"
ميناء : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"
جيتا :
initPreScript: "while ! nc -z ilum-postgresql-hl.ilum-postgresql 5432 2>/dev/null; do echo 'Waiting for Postgres...'; sleep 5; done; echo 'Postgres is ready!'"
جيتا :
التكوين :
ملقم :
ROOT_URL : HTTP : //gitea.example.com/external/gitea
database:
DB_TYPE: Postgres
HOST: "ilum-postgresql-hl.ilum-postgresql:5432"
NAME: جيتا
مستخدم : إيلوم
PASSWD: "CHANGEMEPLEASE"
ilum-marquez:
marquez:
db:
مضيف : "ilum-postgresql-0.ilum-postgresql-hl.ilum-postgresql"
# Disable bundled dependencies
mongodb:
تمكين : خطأ
كافكا :
تمكين : خطأ
مينيو :
تمكين : خطأ
postgresql:
تمكين : خطأ
# Above-default modules
ILUM-SQL :
تمكين : صحيح
ilum-hive-metastore:
تمكين : صحيح
storage:
ميتا ستور :
warehouse: "s3a://ilum-data/"
نوع : "S3"
ق3 :
مضيف : "ilum-minio.ilum-minio"
ميناء : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"
postgresql:
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
database: ميتا ستور
المصادقه :
اسم المستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
# Ilum add-ons
postgresExtensions:
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
databasesToCreate: marquez, airflow, ميتا ستور , ملفلو , mlflow_auth, superset, جيتا , ن8ن , هيدرا , kestra
المصادقه :
اسم المستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
minioExtensions:
مضيف : HTTP : إيلوم - minio.ilum- مينيو : 9000
Option 2: Enterprise Production Stack
Comprehensive setup with monitoring, logging aggregation, and more optional modules. Extra enabled modules:
- ILUM-SQL
- ilum-hive-metastore
- ilum-marquez (lineage)
- superset
- ملفلو
- كوبي بروميثيوس مكدس
- Loki & Promtail (log aggregation)
Minimal needed values file taking into account the components deployment described above. For more detailed configuration you can examine dedicated charts, for example إيلوم كور
# enterprise-production-values.yaml
عالمي :
lineage:
تمكين : صحيح
logAggregation:
تمكين : صحيح
loki:
تمكين : خطأ
عنوان URL : HTTP : إيلوم - loki- gateway.ilum- logs
promtail:
تمكين : خطأ
إيلوم كور :
أمن :
jwt:
privateKey: Key generated as described in Security- keys section
publicKey: Key generated as described in Security- keys section
SQL :
تمكين : صحيح
ميتا ستور :
تمكين : صحيح
نوع : خلية
mongo:
أوري : "mongodb://ilum-mongodb-0.ilum-mongodb-headless.ilum-mongodb:27017,ilum-mongodb-1.ilum-mongodb-headless.ilum-mongodb:27017/ilum?replicaSet=rs0"
communication:
نوع : كافكا
كافكا :
address: "ilum-kafka-controller-0.ilum-kafka-controller-headless.ilum-kafka:9092,ilum-kafka-controller-1.ilum-kafka-controller-headless.ilum-kafka:9092,ilum-kafka-controller-2.ilum-kafka-controller-headless.ilum-kafka:9092"
مينيو :
statusProbe:
baseUrl: "http://ilum-minio.ilum-minio:9000"
kubernetes:
storage:
نوع : ق3
ق3 :
مضيف : "ilum-minio.ilum-minio"
ميناء : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"
جيتا :
initPreScript: "while ! nc -z ilum-postgresql-hl.ilum-postgresql 5432 2>/dev/null; do echo 'Waiting for Postgres...'; sleep 5; done; echo 'Postgres is ready!'"
جيتا :
التكوين :
ملقم :
ROOT_URL : HTTP : //gitea.example.com/external/gitea
database:
DB_TYPE: Postgres
HOST: "ilum-postgresql-hl.ilum-postgresql:5432"
NAME: جيتا
مستخدم : إيلوم
PASSWD: "CHANGEMEPLEASE"
ilum-marquez:
marquez:
db:
مضيف : "ilum-postgresql-0.ilum-postgresql-hl.ilum-postgresql"
# Disable bundled dependencies
mongodb:
تمكين : خطأ
كافكا :
تمكين : خطأ
مينيو :
تمكين : خطأ
postgresql:
تمكين : خطأ
# Above-default modules
ILUM-SQL :
تمكين : صحيح
ilum-hive-metastore:
تمكين : صحيح
storage:
ميتا ستور :
warehouse: "s3a://ilum-data/"
نوع : "S3"
ق3 :
مضيف : "ilum-minio.ilum-minio"
ميناء : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"
postgresql:
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
database: ميتا ستور
المصادقه :
اسم المستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
# Ilum add-ons
postgresExtensions:
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
databasesToCreate: marquez, ميتا ستور , ملفلو , mlflow_auth, superset, جيتا
المصادقه :
اسم المستخدم : إيلوم
شعار : "CHANGEMEPLEASE"
minioExtensions:
مضيف : HTTP : إيلوم - minio.ilum- مينيو : 9000
superset:
تمكين : صحيح
supersetNode:
connections:
db_host: "ilum-postgresql-hl.ilum-postgresql"
db_port: "5432"
db_user: إيلوم
db_pass: "CHANGEMEPLEASE"
db_name: superset
ملفلو :
تمكين : صحيح
externalS3:
مضيف : "ilum-minio.ilum-minio"
externalDatabase:
dialectDriver: "postgresql"
مضيف : "ilum-postgresql-hl.ilum-postgresql"
ميناء : 5432
مستخدم : إيلوم
database: ملفلو
authDatabase: mlflow_auth
existingSecret: "ilum-postgresql"
existingSecretPasswordKey: "postgres-password"
Helm Values Configuration
Complete Production Values Template
Reference the official Helm chart values at: https://artifacthub.io/packages/helm/ilum/ilum?modal=values
Ilum AIO Installation
Step 1: Verify Dependencies
# Check MongoDB
kubectl get pods -n ilum-mongodb
kubectl logs -f mongodb-0 -n ilum-mongodb
# Check Kafka
kubectl get pods -n ilum-kafka
kubectl logs -f kafka-0 -n ilum-kafka
# Check MinIO
kubectl get pods -n ilum-minio
kubectl logs -f minio-0 -n ilum-minio
# Check PostgreSQL
kubectl get pods -n ilum-postgresql
kubectl logs -f postgresql-primary-0 -n ilum-postgresql
Step 2: Deploy Ilum
Ilum in defragmented deployment needs
ilum-minioسر
kubectl -n ilum create secret generic ilum-minio \
--from-literal=root-user=minioadmin \
--from-literal=root-password=minioadmin
ilum-postgresqlسر
kubectl -n ilum create secret generic ilum-postgresql \
--from-literal=password=CHANGEMEPLEASE \
--from-literal=postgres-password=CHANGEMEPLEASE
تثبيت Ilum
Helm تثبيت ilum ilum / ilum \
--namespace ilum \
--values production-values.yaml
# Monitor deployment
kubectl get pods -n ilum -w
Post-Installation Configuration
1. Verify Installation
# Check all pods
kubectl get pods --all-namespaces | grep ilum
# Check services
kubectl get services --all-namespaces | grep ilum
# Check ingress (if enabled)
kubectl get ingress --all-namespaces
2. Access Ilum UI
# Port forward (for testing)
kubectl port-forward svc/ilum-ui 9777:9777 -n ilum
# Or access via ingress
http://ilum.company.com
# Or access via NodePort
kubectl get svc
http://K8S_NODE_ADDRESS:ILUM_UI_NODEPORT
استكشاف الاخطاء
أخطاء سحب الصور
أثناء تثبيت Ilum على نظام المجموعة الخاص بك ، سيقوم Helm بسحب صور Docker ، والتي قد يصل حجمها إلى 10 جيجابايت ، اعتمادا على الوحدات النمطية الإضافية التي تقوم بتمكينها. وبالتالي ، مع بطء اتصال الإنترنت ، قد تواجه أخطاء مهلة سحب الصورة إذا تجاوز وقت تنزيل الصورة المهلة التي تم تكوينها. لحل هذه المشكلة، يمكنك:
- اسحب صورة Docker يدويا عن طريق تشغيل:
Minikube SSH Docker Pull الصورة
# على سبيل المثال
ميني كوبي SSH عامل الإرساء سحب ILUM / CORE-6.1.3
- قم بتغيير مهلة سحب الصورة في تكوينات kubernetes الخاصة بك على النحو التالي:
minikube start --extra-config=kubelet.runtime-request-time=5m
أو مثل هذا:
minikube start --extra-config=kubelet.image-pull-progress-deadline=5m
كلمات المرور / بيانات الاعتماد الافتراضية
يأتي Ilum مزودا ببيانات اعتماد محددة مسبقا لوحدات مختلفة لتبسيط الإعداد والاختبار الأولي. ومع ذلك ، من أجل عمليات نشر الإنتاج إنه من دواعي سروري أمر بالغ الأهمية لتغيير بيانات الاعتماد الافتراضية هذه لضمان الأمان ومنع الوصول غير المصرح به.
بيانات الاعتماد الافتراضية
| تطبيق | اسم المستخدم الافتراضي | كلمة المرور الافتراضية |
|---|---|---|
| واجهة مستخدم Ilum | المشرف | المشرف |
| وحدة تحكم MinIO | minioadmin | minioadmin |
| واجهة مستخدم ويب Airflow | المشرف | المشرف |
| واجهة مستخدم فائقة المجموعة | المشرف | المشرف |
| واجهة مستخدم Gitea | إيلوم | إيلوم |
| جرافانا | المشرف | المشرف |
بيانات اعتماد قاعدة البيانات (للاستخدام الداخلي)
| قاعدة بيانات | اسم المستخدم الافتراضي | كلمة المرور الافتراضية |
|---|---|---|
| PostgreSQL | Postgres | CHANGEMEPLEASE |
| ماركيز | Postgres | CHANGEMEPLEASE |
| Hive Metastore | Postgres | CHANGEMEPLEASE |