Ingress এবং Routing Policy হলো Kubernetes এবং OpenShift-এর গুরুত্বপূর্ণ নেটওয়ার্কিং ফিচার, যা বাইরের ট্র্যাফিককে ক্লাস্টারের মধ্যে নিয়ে আসে এবং অ্যাপ্লিকেশন বা সার্ভিসগুলোর মধ্যে সঠিকভাবে রাউট করে। এগুলোর মাধ্যমে অ্যাপ্লিকেশনের নিরাপত্তা, লোড ব্যালেন্সিং, এবং ট্র্যাফিক ম্যানেজমেন্ট নিশ্চিত করা যায়।
১. Ingress: সংজ্ঞা এবং কাজ
Ingress হলো Kubernetes-এর একটি অবজেক্ট, যা ক্লাস্টারের বাইরের HTTP এবং HTTPS ট্র্যাফিককে পড বা সার্ভিসগুলোর মধ্যে নিয়ে আসে এবং সঠিক রাউটিং পরিচালনা করে। Ingress ব্যবহার করে একাধিক সার্ভিসকে এক্সপোজ করা যায়, এবং এটি TLS সার্টিফিকেটের মাধ্যমে সিকিউর HTTP (HTTPS) ট্র্যাফিক পরিচালনা করতে পারে।
Ingress-এর বৈশিষ্ট্য:
- HTTP/HTTPS Routing:
- Ingress মূলত HTTP/HTTPS প্রোটোকলের মাধ্যমে বাইরের ট্র্যাফিক ক্লাস্টারের মধ্যে নিয়ে আসে এবং অ্যাপ্লিকেশনের নির্দিষ্ট রুট বা URI এর ভিত্তিতে রাউট করে।
- TLS Termination:
- Ingress TLS সার্টিফিকেট ব্যবহার করে HTTPS ট্র্যাফিক পরিচালনা করতে পারে। এটি ট্র্যাফিককে এনক্রিপ্ট করে, যা নিরাপত্তা নিশ্চিত করে।
- Path-based Routing:
- Ingress URI পাথের ভিত্তিতে বিভিন্ন সার্ভিস বা অ্যাপ্লিকেশনে ট্র্যাফিক রাউট করতে পারে। উদাহরণস্বরূপ,
/app1পাথ একটি সার্ভিসে এবং/app2পাথ অন্য সার্ভিসে রাউট করা যেতে পারে।
- Ingress URI পাথের ভিত্তিতে বিভিন্ন সার্ভিস বা অ্যাপ্লিকেশনে ট্র্যাফিক রাউট করতে পারে। উদাহরণস্বরূপ,
- Load Balancing:
- Ingress বিভিন্ন পডের মধ্যে লোড ব্যালেন্স করতে পারে, যাতে ইনকামিং ট্র্যাফিক সমানভাবে পডগুলোর মধ্যে বিতরণ হয়।
Ingress কনফিগারেশনের উদাহরণ:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /app1
pathType: Prefix
backend:
service:
name: app1-service
port:
number: 80
- path: /app2
pathType: Prefix
backend:
service:
name: app2-service
port:
number: 80
tls:
- hosts:
- example.com
secretName: example-tls
ব্যাখ্যা:
- rules: এখানে
example.comহোস্টনেম ব্যবহার করে/app1এবং/app2পাথ দুটি ভিন্ন সার্ভিসে রাউট করা হয়েছে। - tls:
example-tlsনামে একটি TLS সার্টিফিকেট ব্যবহার করা হয়েছে, যা HTTPS ট্র্যাফিক পরিচালনা করবে।
Ingress Controller
Ingress Controller হলো Ingress পরিচালনার জন্য প্রয়োজনীয় একটি কম্পোনেন্ট, যা Kubernetes ক্লাস্টারে Ingress অবজেক্ট দেখে এবং সেই অনুযায়ী ট্র্যাফিক পরিচালনা করে। কিছু জনপ্রিয় Ingress Controller হলো:
- NGINX Ingress Controller
- HAProxy Ingress Controller
- Traefik Ingress Controller
Ingress Controller নিশ্চিত করে যে Ingress অবজেক্ট অনুযায়ী ট্র্যাফিক সঠিকভাবে সার্ভিস বা পডগুলোতে পৌঁছায় এবং TLS এবং লোড ব্যালেন্সিংয়ের ফিচারগুলো সঠিকভাবে কাজ করে।
২. Routing Policy: সংজ্ঞা এবং কাজ
Routing Policy হলো ট্র্যাফিক রাউটিং নিয়ন্ত্রণের একটি কৌশল, যা Ingress বা Routes-এর মাধ্যমে নির্দিষ্ট ট্র্যাফিক প্যাটার্ন এবং নিয়ম অনুযায়ী ট্র্যাফিক পরিচালনা করে। Kubernetes এবং OpenShift-এ Routing Policy ব্যবহার করে ট্র্যাফিক নিয়ন্ত্রণ এবং ব্যবস্থাপনা নিশ্চিত করা যায়। এটি প্রাথমিকভাবে নিম্নলিখিত বিষয়গুলো নিয়ন্ত্রণ করে:
Path-based Routing:
- নির্দিষ্ট URI পাথ অনুযায়ী ট্র্যাফিক রাউট করা হয়, যাতে বিভিন্ন অ্যাপ্লিকেশন বা সার্ভিস ট্র্যাফিক পায়। উদাহরণস্বরূপ,
/loginপাথ একটি অ্যাপ্লিকেশন সার্ভিসে এবং/dashboardঅন্য অ্যাপ্লিকেশনে রাউট করা যেতে পারে।
Host-based Routing:
- হোস্টনেম বা সাব-ডোমেইনের ভিত্তিতে ট্র্যাফিক রাউট করা যায়। উদাহরণস্বরূপ,
api.example.comএকটি API সার্ভিসে এবংapp.example.comএকটি ফ্রন্ট-এন্ড সার্ভিসে রাউট করা যেতে পারে।
TLS Policy:
- Routing Policy TLS/SSL ব্যবস্থাপনা করে HTTPS ট্র্যাফিক পরিচালনা করতে পারে। এটি TLS সার্টিফিকেট ব্যবহার করে ট্র্যাফিক এনক্রিপ্ট করে এবং নিরাপদ যোগাযোগ নিশ্চিত করে।
Traffic Splitting এবং Canary Releases:
- Routing Policy ট্র্যাফিক ভাগ করতে পারে, যাতে বিভিন্ন ভার্সনের অ্যাপ্লিকেশনে ট্র্যাফিক পাঠানো যায়। উদাহরণস্বরূপ, ১০% ট্র্যাফিক নতুন ভার্সনে এবং ৯০% ট্র্যাফিক পুরোনো ভার্সনে রাউট করা যেতে পারে।
Ingress এবং Routing Policy-এর মধ্যে সম্পর্ক
- Ingress হলো একটি Kubernetes অবজেক্ট যা Routing Policy অনুযায়ী ট্র্যাফিক পরিচালনা করে। Ingress একটি রুট বা URI নির্দিষ্ট করে সার্ভিসে ট্র্যাফিক রাউট করে এবং Routing Policy ব্যবহার করে ট্র্যাফিক নিয়ন্ত্রণ করে।
- Routing Policy Ingress-এর কাজ করার কৌশল নির্ধারণ করে এবং ট্র্যাফিক ম্যানেজমেন্টের নিয়ম অনুসরণ করে। এটি নির্ধারণ করে কোন URI বা হোস্টনেম কোন সার্ভিসে রাউট হবে, কিভাবে TLS ব্যবহৃত হবে, এবং ট্র্যাফিক ভাগাভাগি হবে।
উদাহরণ: Routing Policy সেটআপ করা
OpenShift বা Kubernetes-এ Ingress-এর মাধ্যমে Routing Policy সেটআপ করতে নিচের মত একটি YAML ফাইল ব্যবহার করা যায়:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: my-ingress
spec:
rules:
- host: example.com
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: api-service
port:
number: 8080
- path: /app
pathType: Prefix
backend:
service:
name: app-service
port:
number: 8080
tls:
- hosts:
- example.com
secretName: example-tls
ব্যাখ্যা:
- /api পাথটি
api-serviceসার্ভিসে রাউট করা হয়েছে এবং /app পাথটিapp-serviceসার্ভিসে রাউট করা হয়েছে। - TLS ব্যবহার করে ট্র্যাফিক এনক্রিপ্ট করা হয়েছে।
সংক্ষেপে
| বৈশিষ্ট্য | Ingress | Routing Policy |
|---|---|---|
| কাজ | বাইরের HTTP/HTTPS ট্র্যাফিক ক্লাস্টারে নিয়ে আসে | ট্র্যাফিক নিয়ন্ত্রণ করে এবং সার্ভিসগুলোতে রাউট করে |
| প্রোটোকল | HTTP/HTTPS এবং TLS | HTTP, HTTPS, এবং TLS |
| বৈশিষ্ট্য | Path-based, Host-based Routing, TLS | Path-based Routing, Host-based Routing, Traffic Splitting, TLS |
উপসংহার
Ingress এবং Routing Policy Kubernetes এবং OpenShift-এ ক্লাস্টারের মধ্যে ট্র্যাফিক রাউটিং এবং ম্যানেজমেন্ট নিশ্চিত করে। এগুলো ব্যবহার করে বিভিন্ন পাথ এবং হোস্টনেমের মাধ্যমে ট্র্যাফিক পরিচালনা করা, লোড ব্যালেন্সিং করা, এবং সিকিউরিটি নিশ্চিত করা যায়। Ingress এবং Routing Policy-এর মাধ্যমে অ্যাপ্লিকেশন এক্সপোজ করা এবং ম্যানেজ করা আরও সহজ এবং কার্যকরী হয়।
Read more