OpenShift-এ Service এবং Route তৈরি করার মাধ্যমে আমরা অ্যাপ্লিকেশনকে বাইরের ট্র্যাফিকের জন্য এক্সপোজ করতে পারি এবং পডগুলোর মধ্যে যোগাযোগ স্থাপন করতে পারি। নিচে উদাহরণসহ একটি Service এবং একটি Route তৈরি করার প্রক্রিয়া ব্যাখ্যা করা হয়েছে।
উদাহরণ অ্যাপ্লিকেশন: Nginx
এই উদাহরণে আমরা একটি Nginx অ্যাপ্লিকেশন তৈরি করবো এবং সেটি একটি Service এবং Route-এর মাধ্যমে বাইরের ট্র্যাফিকের জন্য এক্সপোজ করবো।
১. Service তৈরি করা
Service হলো Kubernetes বা OpenShift-এর একটি অবজেক্ট, যা পডগুলোর জন্য একটি লজিক্যাল ইউনিট তৈরি করে এবং পডগুলোর মধ্যে যোগাযোগ স্থাপন করে। এটি পডগুলোর জন্য একটি স্থিতিশীল IP প্রদান করে এবং লোড ব্যালেন্সিং নিশ্চিত করে।
Service তৈরি করার YAML ফাইল:
apiVersion: v1
kind: Service
metadata:
name: nginx-service
labels:
app: nginx
spec:
selector:
app: nginx
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP
ব্যাখ্যা:
- metadata:
name: সার্ভিসের নাম দেওয়া হয়েছেnginx-service।labels: সার্ভিসের লেবেল হিসেবেapp: nginxব্যবহার করা হয়েছে।
- spec:
selector: এই সার্ভিসapp: nginxলেবেলযুক্ত পডগুলোকে টার্গেট করবে।ports: সার্ভিস80পোর্টে ট্র্যাফিক গ্রহণ করবে এবং এটি পডের80পোর্টে ফরওয়ার্ড করবে।type:ClusterIPটাইপ ব্যবহার করা হয়েছে, যা ক্লাস্টারের মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়।
Service তৈরি করার জন্য কমান্ড:
oc apply -f nginx-service.yaml
এটি সার্ভিস তৈরি করবে এবং ক্লাস্টারের মধ্যে app: nginx লেবেলযুক্ত পডগুলোর জন্য একটি স্টেবল IP প্রদান করবে।
২. Route তৈরি করা
Route হলো OpenShift-এর একটি ফিচার, যা সার্ভিসগুলোকে বাইরের (এক্সটারনাল) ট্র্যাফিকের জন্য এক্সপোজ করে। এটি সার্ভিসের উপর ভিত্তি করে কাজ করে এবং বাইরের ট্র্যাফিককে সার্ভিস বা পডে রাউট করে।
Route তৈরি করার YAML ফাইল:
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: nginx-route
spec:
host: nginx-app.example.com
to:
kind: Service
name: nginx-service
port:
targetPort: 80
tls:
termination: edge
ব্যাখ্যা:
- metadata:
name: রাউটের নাম দেওয়া হয়েছেnginx-route।
- spec:
host: এখানেnginx-app.example.comহোস্টনেম ব্যবহার করা হয়েছে, যা বাইরের ট্র্যাফিকের জন্য ব্যবহার করা হবে।to: এখানেnginx-serviceসার্ভিস টার্গেট করা হয়েছে, যাতে Route সার্ভিসের মাধ্যমে পডগুলোতে ট্র্যাফিক পৌঁছে দিতে পারে।port: সার্ভিসের80পোর্টে ট্র্যাফিক রাউট করা হবে।tls:edgeটার্মিনেশন ব্যবহৃত হয়েছে, যা ট্র্যাফিক ডিক্রিপ্ট করবে এবং সার্ভারে পাঠাবে।
Route তৈরি করার জন্য কমান্ড:
oc apply -f nginx-route.yaml
এই কমান্ডটি Route তৈরি করবে এবং nginx-app.example.com হোস্টনেমের মাধ্যমে সার্ভিসকে বাইরের ট্র্যাফিকের জন্য উন্মুক্ত করবে।
সার্ভিস এবং রাউট তৈরি করার পরে যাচাই করা
সার্ভিসের স্টেটাস যাচাই করা:
oc get svc nginx-service
এই কমান্ডটি সার্ভিসের স্টেটাস এবং এর বিস্তারিত দেখাবে, যেমন এর Cluster IP এবং পোর্ট।
রাউটের স্টেটাস যাচাই করা:
oc get route nginx-route
এই কমান্ডটি রাউটের স্টেটাস দেখাবে এবং রাউটটি যে হোস্টনেম ব্যবহার করে এক্সপোজ করা হয়েছে তা দেখাবে।
সার্ভিস এবং রাউটের সম্পর্ক
- Service: পডগুলোর জন্য একটি স্টেবল ইন্টারফেস তৈরি করে এবং তাদের মধ্যে যোগাযোগ স্থাপন করে। এটি ক্লাস্টারের ভেতরে অ্যাপ্লিকেশন লেভেলে লোড ব্যালেন্সিং করে।
- Route: সার্ভিসের উপর ভিত্তি করে বাইরের ট্র্যাফিককে ক্লাস্টারে নিয়ে আসে এবং সার্ভিসের মাধ্যমে পডগুলোর মধ্যে ট্র্যাফিক পৌঁছে দেয়। এটি HTTP/HTTPS বা TLS ব্যবহার করে সিকিউর ট্র্যাফিক পরিচালনা করতে পারে।
উপসংহার
এই উদাহরণে, আমরা একটি Nginx সার্ভিস এবং একটি Route তৈরি করেছি, যা OpenShift-এ একটি অ্যাপ্লিকেশনকে বাইরের ট্র্যাফিকের জন্য এক্সপোজ করতে ব্যবহৃত হয়। Service এবং Route একসাথে কাজ করে নিশ্চিত করে যে অ্যাপ্লিকেশনটি বাইরের ক্লায়েন্টদের কাছে সহজে এবং নিরাপদে পৌঁছায়।
Read more