মূল বিষয়বস্তুতে যান

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
  • Resource Management: 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:

  • মঙ্গোডিবি : 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:
    • গুগল কুবারনেটস ইঞ্জিন (জিকেই)
    • অ্যামাজন ইলাস্টিক কুবারনেটস সার্ভিস (ইকেএস)
    • Azure Kubernetes Service (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

মঙ্গোডিবি

ইলাম মঙ্গোডিবিকে তার স্টোরেজ স্তর হিসাবে নিয়োগ করে, মঙ্গোডিবি ডাটাবেসের মধ্যে পুনঃসূচনার মধ্যে প্রয়োজনীয় সমস্ত ডেটা সংরক্ষণ করে। ইলাম স্টার্টআপ প্রক্রিয়া চলাকালীন স্বয়ংক্রিয়ভাবে সমস্ত প্রয়োজনীয় ডাটাবেস এবং সংগ্রহ তৈরি করে।

অ্যাপাচি কাফকা

অ্যাপাচি কাফকা ইলুমের যোগাযোগের স্তর হিসাবে কাজ করে, ইলুম-কোর এবং স্পার্ক কাজের পাশাপাশি যোগাযোগের সুবিধার্থে স্কেল করা হলে বিভিন্ন ইলুম-কোর দৃষ্টান্তগুলির মধ্যে। অ্যাপাচি কাফকা ব্রোকারগুলি উভয়ের দ্বারা অ্যাক্সেসযোগ্য তা নিশ্চিত করা গুরুত্বপূর্ণ ইলাম-কোর এবং স্পার্ক কাজ, বিশেষত যখন স্পার্ক কাজগুলি একটি ভিন্ন কুবারনেটস ক্লাস্টারে চালু করা হয়।

ইলাম কাফকাকে বেশ কয়েকটি বিষয় ব্যবহার করে যোগাযোগ চালানোর জন্য ব্যবহার করে, সবই ইলুমের স্টার্টআপের সময় তৈরি হয়েছিল। অতএব, ব্যবহারকারীরা এই বিষয়গুলি ম্যানুয়ালি পরিচালনা করার দরকার নেই।

মিনিও

ইলাম স্পার্ক অ্যাপ্লিকেশন উপাদানগুলির জন্য স্টোরেজ স্তর হিসাবে মিনিও ব্যবহার করে। সমস্ত ফাইল (জার, কনফিগারেশন, ডেটা সহ) স্পার্ক উপাদানগুলির অপারেশনের জন্য প্রয়োজনীয় ফাইলগুলি (ড্রাইভার, এক্সিকিউটর) সংরক্ষণ করা হয় এবং ডাউনলোডের জন্য উপলব্ধ করা হয় মিনিও।

মিনিও এস 3 ইন্টারফেস প্রয়োগ করে, যা এটি ইনপুট / আউটপুট ডেটা সঞ্চয় করতে সক্ষম করে।

PostgreSQL

পোস্টগ্রেএসকিউএল ডাটাবেস মেটাডেটা সংরক্ষণের জন্য মার্কেজ, হাইভ মেটাস্টোর, এয়ারফ্লো হিসাবে পরিষেবাগুলি দ্বারা ব্যবহৃত হয়।

PostgreSQL ডাটাবেস হয় সক্ষম ডিফল্টরূপে ইলুমে।

আপনি যদি পোস্টগ্রেএসকিউএল সক্ষম কিনা তা নিয়ন্ত্রণ করতে চান তবে আপনি হেলম মান ব্যবহার করতে পারেন Postgresql.enabled . উদাহরণস্বরূপ, এটি অক্ষম করতে, আপনি করতে পারেন যুক্ত --সেট করুন postgresql.enabled=false আপনার ইনস্টলেশন কমান্ডে।

ইলুম-লিভি-প্রক্সি

ইলুম-লিভি প্রক্সি হ'ল লিভি এপিআইয়ের আমাদের বাস্তবায়ন, যা জুপিটার, জেপেলিন, এয়ারফ্লোর মতো পরিষেবাগুলিতে ইলাম গ্রুপগুলির সাথে স্পার্ক কোডকে সংহত করে

ইলাম লিভি-প্রক্সি সক্ষম করা হয়েছে ডিফল্টরূপে ইলুমে।

আপনি যদি ইলুম-লিভি-প্রক্সি যুক্ত করতে বা সরাতে চান তবে আপনি ব্যবহার করতে পারেন ilum-livy-proxy.enabled এটি পরিচালনা করার জন্য হেলম মান। উদাহরণস্বরূপ: --সেট ilum-livy-proxy.enabled=false এটি নিষ্ক্রিয় করতে।

ইলুম-লিভি-প্রক্সি সম্পর্কে আরও পড়ুন এখানে

জুপিটার

জুপিটার একটি নোটবুক - অত্যাধুনিক উন্নয়ন পরিবেশ যা আপনাকে একটি এক্সিকিউটেবল ডকুমেন্টে কোড, চার্ট, ব্যাখ্যা এবং আরও অনেক কিছু রাখতে দেয়।

জুপিটার সক্ষম করা হয়েছে ডিফল্টরূপে ইলুমে।

তবে, আপনি যদি এটি সক্ষম কিনা তা নিয়ন্ত্রণ করতে চান তবে আপনি হেলম মান ব্যবহার করতে পারেন ilum-jupyter.enabled . উদাহরণস্বরূপ, আপনি যোগ করতে পারেন --সেট ilum-jupyter.enabled=false এটি অক্ষম করতে আপনার ইনস্টলেশন কমান্ডে।

সচেতন থাকুন, যে জুপিটার ব্যবহার করে ইলুম-লিভি-প্রক্সি ইলাম গ্রুপের সাথে একীভূত করতে। অতএব, আপনার এটিও সক্ষম করা উচিত: --সেট ilum-livy-proxy.enabled=true

আপনি যদি জুপিটার ইউআই অ্যাক্সেস করতে চান তবে আপনি এটি করতে পারেন:

  • Ilum UI ব্যবহার করে: মডিউল > জুপিটারে যান
  • একটি ইনগ্রেস কনফিগার করা হচ্ছে
  • পোর্ট-ফরোয়ার্ড কমান্ড ব্যবহার করে কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / আইএলইউএম-জুপিটার 8888: 8888

Read more about জুপিটার এখানে

Apache Zeppelin

জেপেলিন একটি নোটবুক - অত্যাধুনিক উন্নয়ন পরিবেশ যা আপনাকে একটি এক্সিকিউটেবল ডকুমেন্টে কোড, চার্ট, ব্যাখ্যা এবং আরও অনেক কিছু রাখতে দেয়।

দয়া করে সচেতন থাকুন, জেপেলিন নোটবুকটি ডিফল্টরূপে ইলাম প্যাকেজে বান্ডিল করা হয় না। তুমি যদি এই পরিষেবাটি চালাতে চাও তবে যুক্ত করো --সেট ইলুম-জেপেলিন.সক্ষম = সত্য আপনার ইনস্টলেশন কমান্ডে।

সচেতন থাকুন, যে জেপেলিন ব্যবহার করে ইলুম-লিভি-প্রক্সি ইলাম গ্রুপের সাথে একীভূত করতে। অতএব, আপনার এটিও সক্ষম করা উচিত: --সেট ilum-livy-proxy.enabled=true

আপনি যদি জেপেলিন ইউআই অ্যাক্সেস করতে চান তবে এটি করার সর্বোত্তম উপায় হ'ল একটি ইনগ্রেস কনফিগার করা বা পোর্ট-ফরোয়ার্ড কমান্ডটি ব্যবহার করা কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / আইএলইউএম-জেপেলিন 8080: 8080

Zeppelin সম্পর্কে আরও পড়ুন এখানে

মৌচাক মেটাস্টোর

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 টেবিল এক্সপ্লোরার পৃষ্ঠা।

তথ্য

হাইভ মেটাস্টোর ডিফল্টরূপে ইলামে সক্ষম নয়।

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:

ইলুম-কোর : 
মেটাস্টোর :
সক্ষম : সত্য
টাইপ : nessie

nessie:
সক্ষম : সত্য

Ilum SQL

নোট: ইলাম এসকিউএল ডিফল্টরূপে ইলামে সক্ষম নয়।

এটি সক্ষম করতে, যোগ করুন --সেট ilum-sql.enabled=true এসকিউএল এক্সিকিউশন হোস্ট সক্ষম করতে এবং --সেট ilum-core.sql.সক্ষম=সত্য ইলুমের ভিতরে এসকিউএল ভিউয়ারকে সক্ষম করতে।

আইলাম এসকিউএল ইউআইতে আপনার ডেটাতে এসকিউএল ক্যোয়ারী চালাতে পারে। এ সম্পর্কে আরও পড়ুন এসকিউএল ভিউয়ার পৃষ্ঠা .

ট্রিনো

নোট: ইলাম এসকিউএল ডিফল্টরূপে ইলামে সক্ষম নয়। এটি সক্ষম করতে, যোগ করুন --সেট ট্রিনো.সক্ষম = সত্য একটি অন্তর্নির্মিত ট্রিনো বিতরণ সক্ষম করতে।

ট্রিনো একটি বিতরণ করা এসকিউএল ক্যোয়ারী ইঞ্জিন যা আপনাকে দ্রুত প্রশ্নগুলি চালাতে দেয়। ইন্টারেক্টিভ প্রশ্নের ক্ষেত্রে এটি স্পার্কের চেয়ে যথেষ্ট কার্যকর।

ইউআইতে আপনার ডেটাতে এসকিউএল ক্যোয়ারী চালানোর জন্য ইলাম ট্রিনো ব্যবহার করে। এ সম্পর্কে আরও পড়ুন এসকিউএল ভিউয়ার পৃষ্ঠা .

n8n

নোট: n8n ডিফল্টরূপে ইলুমে সক্ষম নয়। এটি সক্ষম করতে, যোগ করুন --সেট ilum-N8n.enabled=true একটি অন্তর্নির্মিত এন 8 এন বিতরণ সক্ষম করতে।

এন 8 এন হ'ল নেটিভ এআই ক্ষমতা সহ একটি ফেয়ার-কোড ওয়ার্কফ্লো অটোমেশন প্ল্যাটফর্ম।

এ সম্পর্কে আরও পড়ুন এন 8 এন পৃষ্ঠা .

Apache Airflow

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 --সেট এয়ারফ্লো.সক্ষম = সত্য আপনার ইনস্টলেশন কমান্ডে।

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 is an open-source metadata management tool that focuses on capturing, aggregating, and visualizing the lineage of data assets within an organization’s data ecosystem. It tracks how datasets are produced and consumed by different jobs and provides a central view of these dependencies.

দয়া করে সচেতন থাকুন যে মার্কেজ ডিফল্টরূপে ইলুম প্যাকেজে বান্ডিল হয় না। আপনি যদি এই পরিষেবাটি চালাতে চান, যুক্ত --set global.lineage.enabled=true আপনার ইনস্টলেশন কমান্ডে।

মার্কেজ যে ব্যবহার করেছেন তা বিবেচনায় নিন PostgreSQL ডাটাবেস মেটাডেটা সংরক্ষণ করতে। আপনি এটি সম্পর্কে পড়তে পারেন নিচে .

Additionally, if you wish to use Marquez’s web client instead of Ilum’s UI, enable the default web client with --সেট ilum-marquez.web.enabled=true এবং অ্যাক্সেস পদ্ধতিগুলির মধ্যে একটি সেট আপ করুন:

  • পোর্ট-ফরোয়ার্ড কমান্ড ব্যবহার করুন কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / আইএলইউএম-মার্কেজ-ওয়েব 9444: 9444
  • একটি ইনগ্রেস কনফিগার করুন

Read more about মার্কেজ ও ইলুম বংশ এখানে

কেস্ত্র

কেস্ত্র একটি ওপেন সোর্স ডেটা অর্কেস্ট্রেশন এবং ডেটা স্বয়ংক্রিয় করার জন্য ডিজাইন করা ডেটা অর্কেস্ট্রেশন প্ল্যাটফর্ম পাইপলাইন এবং ব্যবসায়িক কর্মপ্রবাহ। আপনি এটি সম্পর্কে পড়তে পারেন এখানে .

কেস্ট্রা ডিফল্টরূপে ইলুমে সক্ষম নয়। এটি সক্ষম করতে, যোগ করুন --সেট কেস্ট্রা.সক্ষম=সত্য আপনার ইনস্টলেশন কমান্ডে।

কেস্ট্রা ব্যবহার করে PostgreSQL ডাটাবেস কাজ এবং কার্য সম্পর্কে তথ্য সংরক্ষণ করতে এবং মিনিয়াম সাধারণ ফাইল স্টোরেজের জন্য

Mage

Mage 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

Apache 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 ডকুমেন্টেশন পৃষ্ঠা .

কিউব প্রমিথিউস স্ট্যাক

কুব প্রমিথিউস স্ট্যাকে আপনার ডেটা অবকাঠামো নিরীক্ষণের জন্য প্রমিথিউস, গ্রাফানা এবং অন্যান্য সরঞ্জাম অন্তর্ভুক্ত রয়েছে

দয়া করে সচেতন থাকুন, যে কুবে প্রমিথিউস স্ট্যাক ডিফল্টরূপে ইলাম প্যাকেজে বান্ডিল করা হয় না। তুমি যদি এই পরিষেবাটি চালাতে চাও তবে যুক্ত করো --সেট কুব-প্রমিথিউস-স্ট্যাক.সক্ষম = সত্য আপনার ইনস্টলেশন কমান্ডে।

আপনি যদি পূর্বে করা একটি বিদ্যমান ইলাম হেলম চার্ট আপগ্রেড করছেন না কুবে প্রমিথিউস স্ট্যাক সক্ষম করুন, আপগ্রেড করার আগে আপনাকে প্রথমে প্রয়োজনীয় প্রমিথিউস কাস্টম রিসোর্স সংজ্ঞা (সিআরডি) ইনস্টল করতে হবে। এটি করতে, নিম্নলিখিত কমান্ডগুলি চালান:

Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagerconfigs.yaml 
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_alertmanagers.yaml
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_podmonitors.yaml
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_probes.yaml
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusagents.yaml
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheuses.yaml
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_prometheusrules.yaml
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
Kubectl Apply --server-side -f https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/v0.80.0/example/prometheus-operator-crd/monitoring.coreos.com_thanosrulers.yaml

আপনি যদি প্রমিথিউস ইউআই অ্যাক্সেস করতে চান তবে এটি করার সর্বোত্তম উপায় হ'ল একটি ইনগ্রেস কনফিগার করা বা পোর্ট-ফরোয়ার্ড কমান্ড ব্যবহার করা - কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / প্রমিথিউস-পরিচালিত 9090: 9090

আপনি যদি গ্রাফানা ইউআই অ্যাক্সেস করতে চান তবে এটি করার সর্বোত্তম উপায় হ'ল একটি ইনগ্রেস কনফিগার করা বা পোর্ট-ফরোয়ার্ড কমান্ড ব্যবহার করা কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / আইএলইউএম-গ্রাফিনা 8080: 80

লোকি এবং প্রমটেল

লোকি আপনার ডেটা অবকাঠামোর লগগুলি সংগ্রহ এবং পরিচালনা করতে ব্যবহৃত হয়। প্রমটেল একটি এজেন্ট হিসাবে ব্যবহৃত হয় যা লোকিতে লগগুলি ঠেলে দেয়

দয়া করে সচেতন হোন, যে লোকি সক্ষম করা হয় না ডিফল্টরূপে ইলুমে। তুমি যদি এই পরিষেবাটি চালাতে চাও তবে যুক্ত করো --set global.logAggregation.loki.enabled=true আপনার ইনস্টলেশন কমান্ডে।

প্রমটেলও সক্ষম করা হয় না ডিফল্টরূপে ইলুমে। এটি সক্ষম করতে যোগ করুন --set global.logAggreagtion.promtail.enabled=true আপনার ইনস্টলেশন কমান্ডে

আপনি যদি লোকি অ্যাক্সেস করতে চান এবং লোকি কোয়েরিজ চালাতে চান তবে আপনি একটি প্রবেশ কনফিগার করতে পারেন বা পোর্ট-ফরোয়ার্ড কমান্ডটি ব্যবহার করতে পারেন কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / আইএলইউএম-লোকি-রিড 3100: 3100 পড়া প্রশ্নের জন্য এবং কুবেক্টল পোর্ট-ফরোয়ার্ড এসভিসি / আইএলইউএম-লোকি-রাইট 3100: 3100 প্রশ্ন লেখার জন্য। আপনিও ব্যবহার করতে পারেন সেবা ilum-loki-gateway গ্রাফিনাকে লোকির সাথে লিঙ্ক করতে

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 নামস্থান ইলুম তৈরি করুন

# 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) ব্যবহার করে। ডিফল্টরূপে, অ্যাপ্লিকেশনটি একটি আরএসএ কী নিয়োগ করে জোড়া, যা রানটাইমে এলোমেলোভাবে উত্পন্ন হয়, এই টোকেনগুলিতে স্বাক্ষর করতে।

এর স্ট্যান্ডার্ড কনফিগারেশনে, অ্যাপ্লিকেশনটি প্রতিবার শুরু হওয়ার সময় একটি নতুন আরএসএ কী জোড়া তৈরি করে। এই পদ্ধতি মূল প্রজন্মের প্রক্রিয়াটি স্বয়ংক্রিয়ভাবে পরিচালনা করে স্থানীয় উন্নয়ন এবং পরীক্ষাকে সহজতর করে। তবে এটা অবশ্যই হতে হবে জোর দিয়েছিলেন যে এই পদ্ধতিটি উত্পাদন পরিবেশের জন্য উপযুক্ত নয়।

উত্পাদন পরিবেশে এলোমেলোভাবে উত্পন্ন কীগুলি ব্যবহার করার প্রাথমিক সমস্যা হ'ল অধ্যবসায়ের অভাব। প্রতিবার অ্যাপ্লিকেশনটি পুনরায় চালু হয়, এটি একটি নতুন আরএসএ কী জোড়া তৈরি করে, পূর্বে জারি করা সমস্ত টোকেনকে অকার্যকর করে। এর ফলে হতে পারে সমস্ত ব্যবহারকারীর জন্য একটি আকস্মিক এবং অপ্রত্যাশিত লগআউট, ব্যবহারকারীর অভিজ্ঞতা ব্যাহত করে এবং সম্ভাব্যভাবে ডেটা ক্ষতির দিকে পরিচালিত করে।

ব্যক্তিগত কী তৈরি করুন

একটি উত্পাদন পরিবেশের জন্য, একটি স্থিতিশীল এবং সুরক্ষিত কী জোড়া ম্যানুয়ালি উত্পন্ন এবং ধারাবাহিকভাবে ব্যবহার করা উচিত। এই নিশ্চিত করে যে টোকেনগুলি একাধিক অ্যাপ্লিকেশন পুনরায় চালু করার সময় বৈধ থাকে, এইভাবে একটি সামঞ্জস্যপূর্ণ ব্যবহারকারীর অভিজ্ঞতা সরবরাহ করে।

আপনি ওপেনএসএসএল এর মতো সরঞ্জামগুলি ব্যবহার করে ম্যানুয়ালি একটি আরএসএ কী জোড়া তৈরি করতে পারেন। 2048-বিট আরএসএ প্রাইভেট কী তৈরি করার জন্য একটি সাধারণ কমান্ড নিম্নরূপ:

openssl genpkey -algorithm RSA \ 
-pkeyopt rsa_keygen_bits:2048 \
-pkeyopt rsa_keygen_pubexp:65537 | \
Openssl pkcs8 -topk8 -nocrypt -outform pem > private-key.p8

ব্যক্তিগত কীটির সামগ্রীগুলি নিম্নলিখিতগুলির মতো দেখতে হবে:

-----প্রাইভেট কী শুরু করুন----- 
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAoIBAQCsRnE83rm6BJya
nTyzVqX0SG+D4zBjkyWsOmGG+CoDdgQ6Z8AaocmnjP1SbRykQsQSMf6SeW+fdpH+
ccmzuHe7pZIa2o2Mg8xbk/UszJDaPztwoQbUt/2gHi/rZP8cIVkquzhnN/yxrMls
...
-----এন্ড প্রাইভেট কী-----

সেটিং হিসাবে ব্যক্তিগত কী ব্যবহার করার জন্য ilum-core.security.jwt.privateKey, কী থেকে শিরোনাম এবং পাদচরণ সরান।

সর্বজনীন কী তৈরি করুন

সংশ্লিষ্ট সর্বজনীন কী তৈরি করতে, ব্যবহার করুন:

ওপেনএসএসএল পিকেওয়াই -পাবআউট -ইনফর্ম পিইএম -আউটফর্ম পিইএম -ইন প্রাইভেট-কী.পি 8 -আউট পাবলিক-কী.এসপিকেআই 

সর্বজনীন কীটির বিষয়বস্তু নিম্নলিখিতগুলির মতো দেখতে হবে:

-----পাবলিক কী শুরু করুন----- 
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArEZxPN65ugScmp08s1al
9Ehvg+MwY5MlrDphhvgqA3YEOmfAGqHJp4z9Um0cpELEEjH+knlvn3aR/nHJs7h3
u6WSGtqNjIPMW5P1LMyQ2j87cKEG1Lf9oB4v62T/HCFZKrs4Zzf8sazJbMN3E/mJ
...
-----এন্ড পাবলিক কী-----

সেটিং হিসাবে সর্বজনীন কী ব্যবহার করার জন্য ilum-core.security.jwt.publicKey, কী থেকে শিরোনাম এবং পাদচরণ সরান।

Authentication Methods

- পরিচয় সরবরাহকারী হিসাবে ইলাম

আইলুম একটি পরিচয় প্রদানকারী হিসাবে মোতায়েন করা যেতে পারে। এই বৈশিষ্ট্যটির সাহায্যে আপনি ইলুমের মধ্যে একচেটিয়াভাবে ব্যবহারকারীদের পরিচালনা করতে পারেন এবং এয়ারফ্লো, সুপারসেট, গ্রাফানা, গিটিয়া এবং মিনিওর মতো অন্যান্য মাইক্রোসার্ভিসগুলিতে তাদের প্রমাণীকরণ করতে পারেন।

ইলামের পরিচয় সরবরাহকারী সক্ষম করতে, নিম্নলিখিত পতাকাগুলি যুক্ত করুন: --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.

মঙ্গোডিবি

Deploy MongoDB in a dedicated namespace with high availability

1. Add Bitnami Repository

helm repo add bitnami https://charts.bitnami.com/bitnami
হেলম রেপো আপডেট

2. Create MongoDB Values File

# mongodb-values.yaml
প্রতিচ্ছবি :
registry: docker.io
সংগ্রহস্থল : ilum/mongodb
ট্যাগ : 6.0.5
পুরো নাম ওভাররাইড : "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
হেলম রেপো আপডেট

2. Create Kafka Values File

# kafka-values.yaml
extraConfig: |
auto.create.topics.enable=false
message.max.bytes=20000000
পুরো নাম ওভাররাইড : "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
হেলম রেপো আপডেট

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
পুরো নাম ওভাররাইড : "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:
টাইপ : এস৩
এস৩ :
আয়োজক : "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/"
টাইপ : "এস 3"
এস৩ :
আয়োজক : "ilum-minio.ilum-minio"
পোর্ট : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"

# If trino is deployed with minio as the storage
তৃণমূল :
ক্যাটালগ :
ইলুম-ডেল্টা : |
সংযোগকারী.নাম=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: ইলুম - ফাইল
অ্যাডমিন : ইলুম - ফাইল
টাইপ : এস৩
এস৩ :
শেষ বিন্দু : এইচটিটিপি : ইলুম - minio.ilum- মিনিও : 9000
region: us- পূর্ব - 1
secretAccessKey: মিনিওঅ্যাডমিন
accessKeyId: মিনিওঅ্যাডমিন
s3ForcePathStyle: সত্য
insecure: সত্য

# If minio is deployed
minioExtensions:
আয়োজক : এইচটিটিপি : ইলুম - 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: মিনিওঅ্যাডমিন
secretKey: মিনিওঅ্যাডমিন
region: "ডিফল্ট"
bucket: ইলুম - kestra

PostgreSQL Deployment

Deploy PostgreSQL for metadata storage:

1. Add Bitnami Repository

helm repo add bitnami https://charts.bitnami.com/bitnami
হেলম রেপো আপডেট

2. Create PostgreSQL Values File

# postgresql-values.yaml
পুরো নাম ওভাররাইড : ইলুম - postgresql
অথ :
postgresPassword: "চেঞ্জ মিপ্লিজ"
ব্যবহারকারীর নাম : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"

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, গিটিয়া , n8n , হাইড্রা , kestra
অথ :
ব্যবহারকারীর নাম : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"

# Configure hydra database if hydra is enabled in ilum-core deployment
ইলুম-কোর :
হাইড্রা :
dns: পোস্টগ্রেস : ইলুম : 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: মেটাস্টোর
অথ :
ব্যবহারকারীর নাম : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"

# If lineage is enabled
ilum-marquez:
marquez:
db:
প্রতিচ্ছবি : "বিটনামি / পোস্টগ্রেএসকিউএল: 16"
আয়োজক : "ilum-postgresql-0.ilum-postgresql-hl.ilum-postgresql"
পোর্ট : 5432
নাম : marquez
ব্যবহারকারী : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"

# 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 : এইচটিটিপি : //gitea.example.com/external/gitea
database:
DB_TYPE: পোস্টগ্রেস
HOST: "ilum-postgresql-hl.ilum-postgresql:5432"
NAME: গিটিয়া
ব্যবহারকারী : ইলুম
PASSWD: "চেঞ্জ মিপ্লিজ"

# If airflow is deployed with postgres as metadata connection
airflow:
ডাটা :
metadataConnection:
ব্যবহারকারী : পোস্টগ্রেস
দিন : "চেঞ্জ মিপ্লিজ"
প্রোটোকল : 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: "চেঞ্জ মিপ্লিজ"
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
n8n :
db:
টাইপ : postgresdb
externalPostgresql:
আয়োজক : "ilum-postgresql-hl.ilum-postgresql"
ব্যবহারকারীর নাম : "ilum"
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"
database: "n8n"

# If kestra is deployed
kestra:
configuration:
datasources:
পোস্টগ্রেস :
ইউআরএল : "jdbc:postgresql://ilum-postgresql-hl.ilum-postgresql:5432/kestra"
driverClassName: "org.postgresql.Driver"
ব্যবহারকারীর নাম : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"
initContainers:
- নাম : wait- জন্য - পোস্টগ্রেস
প্রতিচ্ছবি : "বিটনামি / পোস্টগ্রেএসকিউএল: 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
হেলম রেপো আপডেট

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
নামস্থান : ইলুম - kps
লেবেলসমূহ :
ilum.prometheus: "সত্যি"
স্পেসিফিকেশন :
নির্বাচক :
ম্যাচলেবেল :
ilum.prometheus: "সত্যি"
podMetricsEndpoints:
- interval: 5s
পোর্ট : এইচটিটিপি
পথ : /actuator/prometheus
namespaceSelector:
matchNames:
- ইলুম

Spark Driver Pods Monitor

apiVersion :  monitoring.coreos.com/v1
প্রকার : PodMonitor
মেটাডেটা :
নাম : ইলুম - ড্রাইভার - pods- monitor
নামস্থান : ইলুম - kps
লেবেলসমূহ :
ilum.resourceType: ড্রাইভার
স্পেসিফিকেশন :
নির্বাচক :
ম্যাচলেবেল :
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
হেলম রেপো আপডেট

2. Create Loki and Promtail Values File

# loki-values.yaml
নামওভাররাইড : ইলুম - loki
নজরদারি :
selfMonitoring:
সক্ষম : মিথ্যা
grafanaAgent:
installOperator: মিথ্যা
lokiCanary:
সক্ষম : মিথ্যা
test:
সক্ষম : মিথ্যা
loki:
auth_enabled: মিথ্যা
storage:
bucketNames:
chunks: ইলুম - ফাইল
ruler: ইলুম - ফাইল
অ্যাডমিন : ইলুম - ফাইল
টাইপ : এস৩
এস৩ :
শেষ বিন্দু : এইচটিটিপি : ইলুম - minio.ilum- মিনিও : 9000
region: us- পূর্ব - 1
secretAccessKey: মিনিওঅ্যাডমিন
accessKeyId: মিনিওঅ্যাডমিন
s3ForcePathStyle: সত্য
insecure: সত্য
compactor:
retention_enabled: সত্য
deletion_mode: ফিল্টার - এবং - বিলোপ
shared_store: এস৩
limits_config:
allow_deletes: সত্য
# promtail-values.yaml
কনফিগার :
clients:
- ইউআরএল : এইচটিটিপি : ইলুম - 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:
সক্ষম : মিথ্যা
ইউআরএল : এইচটিটিপি : ইলুম - 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 এলডিএপি বা 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
এসকিউএল :
সক্ষম : সত্য
মেটাস্টোর :
সক্ষম : সত্য
টাইপ : মৌচাক
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:
টাইপ : এস৩
এস৩ :
আয়োজক : "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 : এইচটিটিপি : //gitea.example.com/external/gitea
database:
DB_TYPE: পোস্টগ্রেস
HOST: "ilum-postgresql-hl.ilum-postgresql:5432"
NAME: গিটিয়া
ব্যবহারকারী : ইলুম
PASSWD: "চেঞ্জ মিপ্লিজ"

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/"
টাইপ : "এস 3"
এস৩ :
আয়োজক : "ilum-minio.ilum-minio"
পোর্ট : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"
postgresql:
আয়োজক : "ilum-postgresql-hl.ilum-postgresql"
পোর্ট : 5432
database: মেটাস্টোর
অথ :
ব্যবহারকারীর নাম : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"

# Ilum add-ons
postgresExtensions:
আয়োজক : "ilum-postgresql-hl.ilum-postgresql"
পোর্ট : 5432
databasesToCreate: marquez, airflow, মেটাস্টোর , এমএলফ্লো , mlflow_auth, superset, গিটিয়া , n8n , হাইড্রা , kestra
অথ :
ব্যবহারকারীর নাম : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"

minioExtensions:
আয়োজক : এইচটিটিপি : ইলুম - 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
  • এমএলফ্লো
  • Kube-prometheus-stack
  • 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:
সক্ষম : মিথ্যা
ইউআরএল : এইচটিটিপি : ইলুম - loki- gateway.ilum- logs
promtail:
সক্ষম : মিথ্যা

ইলুম-কোর :
নিরাপত্তা :
jwt:
privateKey: Key generated as described in Security- keys section
publicKey: Key generated as described in Security- keys section
এসকিউএল :
সক্ষম : সত্য
মেটাস্টোর :
সক্ষম : সত্য
টাইপ : মৌচাক
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:
টাইপ : এস৩
এস৩ :
আয়োজক : "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 : এইচটিটিপি : //gitea.example.com/external/gitea
database:
DB_TYPE: পোস্টগ্রেস
HOST: "ilum-postgresql-hl.ilum-postgresql:5432"
NAME: গিটিয়া
ব্যবহারকারী : ইলুম
PASSWD: "চেঞ্জ মিপ্লিজ"

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/"
টাইপ : "এস 3"
এস৩ :
আয়োজক : "ilum-minio.ilum-minio"
পোর্ট : 9000
accessKey: "minioadmin"
secretKey: "minioadmin"
postgresql:
আয়োজক : "ilum-postgresql-hl.ilum-postgresql"
পোর্ট : 5432
database: মেটাস্টোর
অথ :
ব্যবহারকারীর নাম : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"

# Ilum add-ons
postgresExtensions:
আয়োজক : "ilum-postgresql-hl.ilum-postgresql"
পোর্ট : 5432
databasesToCreate: marquez, মেটাস্টোর , এমএলফ্লো , mlflow_auth, superset, গিটিয়া
অথ :
ব্যবহারকারীর নাম : ইলুম
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ"

minioExtensions:
আয়োজক : এইচটিটিপি : ইলুম - minio.ilum- মিনিও : 9000

superset:
সক্ষম : সত্য
supersetNode:
connections:
db_host: "ilum-postgresql-hl.ilum-postgresql"
db_port: "5432"
db_user: ইলুম
db_pass: "চেঞ্জ মিপ্লিজ"
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

ইলাম ইনস্টল করুন

Helm installation il and ile/el \ 
--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

সমস্যা সমাধান

চিত্র টানা ত্রুটি

আপনার ক্লাস্টারে ইলাম ইনস্টল করার সময়, হেলম ডকার চিত্রগুলি টানবে যা আপনার সক্ষম অতিরিক্ত মডিউলগুলির উপর নির্ভর করে 10 গিগাবাইটের মতো বড় হতে পারে। ফলস্বরূপ, ধীর গতির ইন্টারনেট সংযোগের সাথে, চিত্র ডাউনলোডের সময়টি কনফিগার করা সময়সীমা ছাড়িয়ে গেলে আপনি চিত্র পুল টাইমআউট ত্রুটির মুখোমুখি হতে পারেন। এই সমস্যা সমাধানের জন্য, আপনি এটি করতে পারেন:

  1. দৌড়ে ডকার চিত্র ম্যানুয়ালি টানুন:
মিনিকিউব এসএসএইচ ডকার পুল ইমেজ 
# উদাহরণ স্বরূপ
মিনিকিউব এসএসএইচ ডকার পুল ইলম/কোর-৬.১.৩

  1. আপনার কুবারনেটস কনফিগারেশনে চিত্র টানার সময়সীমাটি পরিবর্তন করুন:
মিনিকুব শুরু --অতিরিক্ত-কনফিগ = kubelet.runtime-request-timeout=5m 

অথবা এভাবে:

মিনিকুব শুরু --অতিরিক্ত-কনফিগ = Kubelet.image-pull-progress-deadline=5m 

ডিফল্ট পাসওয়ার্ড / প্রমাণপত্রাদি

প্রাথমিক সেটআপ এবং পরীক্ষার সহজ করার জন্য ইলাম বিভিন্ন মডিউলগুলির জন্য পূর্বনির্ধারিত শংসাপত্রের সাথে আসে। তবে এর জন্য উৎপাদন স্থাপনা এটা এই ডিফল্ট শংসাপত্রগুলি পরিবর্তন করা গুরুত্বপূর্ণ নিরাপত্তা নিশ্চিত করতে এবং অননুমোদিত প্রবেশ প্রতিরোধ করতে।

ডিফল্ট প্রমাণপত্রাদি

প্রয়োগ ডিফল্ট ইউজারনেম ডিফল্ট পাসওয়ার্ড
Ilum UI অ্যাডমিন অ্যাডমিন
মিনিও কনসোল মিনিওঅ্যাডমিন মিনিওঅ্যাডমিন
এয়ারফ্লো ওয়েব UI অ্যাডমিন অ্যাডমিন
সুপারসেট UI অ্যাডমিন অ্যাডমিন
Gitea UI ইলুম ইলুম
গ্রাফানা অ্যাডমিন অ্যাডমিন

ডাটাবেস শংসাপত্র (অভ্যন্তরীণ ব্যবহারের জন্য)

ডাটাবেস ডিফল্ট ইউজারনেম ডিফল্ট পাসওয়ার্ড
PostgreSQL পোস্টগ্রেস দয়া করে আমাকে পরিবর্তন করুন
মার্কেজ পোস্টগ্রেস দয়া করে আমাকে পরিবর্তন করুন
মৌচাক মেটাস্টোর পোস্টগ্রেস দয়া করে আমাকে পরিবর্তন করুন