Production Deployment Guide
This comprehensive guide provides detailed instructions for deploying Ilum in production environments with enhanced security, namespace separation, and multiple configuration options to meet diverse operational requirements.
সুচিপত্র
- সংক্ষিপ্ত বিবরণ
- Kubernetes পূর্বশর্ত
- স্থাপত্য
- High Availability Configuration
- Failure Domains & Resilience
- Dynamic Resource Scaling
- Namespace Separation Strategy
- Security Configuration
- Dependency Deployment
- Pre-configured Stack Options
- Helm Values Configuration
- Installation Instructions
- Post-Installation Configuration
- সমস্যা সমাধান
সংক্ষিপ্ত বিবরণ
For production environments, it's strongly recommended to deploy critical dependencies in separate namespaces to achieve:
- Enhanced Security: Namespace-level isolation and RBAC policies
- 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
| 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
মঙ্গোডিবি
ইলাম মঙ্গোডিবিকে তার স্টোরেজ স্তর হিসাবে নিয়োগ করে, মঙ্গোডিবি ডাটাবেসের মধ্যে পুনঃসূচনার মধ্যে প্রয়োজনীয় সমস্ত ডেটা সংরক্ষণ করে। ইলাম স্টার্টআপ প্রক্রিয়া চলাকালীন স্বয়ংক্রিয়ভাবে সমস্ত প্রয়োজনীয় ডাটাবেস এবং সংগ্রহ তৈরি করে।
অ্যাপাচি কাফকা
অ্যাপাচি কাফকা ইলুমের যোগাযোগের স্তর হিসাবে কাজ করে, ইলুম-কোর এবং স্পার্ক কাজের পাশাপাশি যোগাযোগের সুবিধার্থে স্কেল করা হলে বিভিন্ন ইলুম-কোর দৃষ্টান্তগুলির মধ্যে। অ্যাপাচি কাফকা ব্রোকারগুলি উভয়ের দ্বারা অ্যাক্সেসযোগ্য তা নিশ্চিত করা গুরুত্বপূর্ণ ইলাম-কোর এবং স্পার্ক কাজ, বিশেষত যখন স্পার্ক কাজগুলি একটি ভিন্ন কুবারনেটস ক্লাস্টারে চালু করা হয়।
ইলাম কাফকাকে বেশ কয়েকটি বিষয় ব্যবহার করে যোগাযোগ চালানোর জন্য ব্যবহার করে, সবই ইলুমের স্টার্টআপের সময় তৈরি হয়েছিল। অতএব, ব্যবহারকারীরা এই বিষয়গুলি ম্যানুয়ালি পরিচালনা করার দরকার নেই।
মিনিও
ইলাম স্পার্ক অ্যাপ্লিকেশন উপাদানগুলির জন্য স্টোরেজ স্তর হিসাবে মিনিও ব্যবহার করে। সমস্ত ফাইল (জার, কনফিগারেশন, ডেটা সহ) স্পার্ক উপাদানগুলির অপারেশনের জন্য প্রয়োজনীয় ফাইলগুলি (ড্রাইভার, এক্সিকিউটর) সংরক্ষণ করা হয় এবং ডাউনলোডের জন্য উপলব্ধ করা হয় মিনিও।
মিনিও এস 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
ইলাম এসকিউএল ডিফল্টরূপে ইলামে সক্ষম নয়।
To enable Ilum SQL, add --সেট ilum-sql.enabled=true এসকিউএল এক্সিকিউশন হোস্ট সক্ষম করতে এবং --সেট ilum-core.sql.সক্ষম=সত্য to enable the SQL featues inside Ilum itself.
Ilum SQL can execute SQL queries on your data in the UI. Read more about it on the এসকিউএল ভিউয়ার পৃষ্ঠা .
ট্রিনো
নোট: ইলাম এসকিউএল ডিফল্টরূপে ইলামে সক্ষম নয়। এটি সক্ষম করতে, যোগ করুন --সেট ট্রিনো.সক্ষম = সত্য একটি অন্তর্নির্মিত ট্রিনো বিতরণ সক্ষম করতে।
ট্রিনো একটি বিতরণ করা এসকিউএল ক্যোয়ারী ইঞ্জিন যা আপনাকে দ্রুত প্রশ্নগুলি চালাতে দেয়। ইন্টারেক্টিভ প্রশ্নের ক্ষেত্রে এটি স্পার্কের চেয়ে যথেষ্ট কার্যকর।
ইউআইতে আপনার ডেটাতে এসকিউএল ক্যোয়ারী চালানোর জন্য ইলাম ট্রিনো ব্যবহার করে। এ সম্পর্কে আরও পড়ুন এসকিউএল ভিউয়ার পৃষ্ঠা .
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 ** │