تخطي إلى المحتوى الرئيسي

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.

جدول المحتويات

نظره عامه

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

ComponentRequirement
Kubernetes Version1.20+
CPU8 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

# 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 جيجابايت ، اعتمادا على الوحدات النمطية الإضافية التي تقوم بتمكينها. وبالتالي ، مع بطء اتصال الإنترنت ، قد تواجه أخطاء مهلة سحب الصورة إذا تجاوز وقت تنزيل الصورة المهلة التي تم تكوينها. لحل هذه المشكلة، يمكنك:

  1. اسحب صورة Docker يدويا عن طريق تشغيل:
Minikube SSH Docker Pull الصورة 
# على سبيل المثال
ميني كوبي SSH عامل الإرساء سحب ILUM / CORE-6.1.3

  1. قم بتغيير مهلة سحب الصورة في تكوينات 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